diff --git a/manifests/init.pp b/manifests/init.pp
new file mode 100644
index 0000000000000000000000000000000000000000..37a8b98aea153cd3270aea41a4056dcbde56ce68
--- /dev/null
+++ b/manifests/init.pp
@@ -0,0 +1,38 @@
+# @summary A short summary of the purpose of this class
+#
+# A description of what this class does
+#
+# @example
+#   include ontodeside
+class ontodeside {
+  $hostname = fact( 'networking.fqdn' )
+  profiles::letsencrypt::cert { $hostname :
+    common_name  => $hostname,
+  }
+
+  firewalld_service { 'Allow SSH in the liu zone':
+    ensure  => present,
+    zone    => 'liu',
+    service => 'ssh',
+  }
+  firewalld_service { 'Allow http in the liu Zone':
+    ensure  => present,
+    zone    => 'liu',
+    service => 'http',
+  }
+  firewalld_service { 'Allow https in the liu Zone':
+    ensure  => present,
+    zone    => 'liu',
+    service => 'https',
+  }
+  firewalld_service { 'Allow http in the public Zone':
+    ensure  => present,
+    zone    => 'public',
+    service => 'http',
+  }
+  firewalld_service { 'Allow https in the public Zone':
+    ensure  => present,
+    zone    => 'public',
+    service => 'https',
+  }
+}
diff --git a/spec/classes/ontodeside_spec.rb b/spec/classes/ontodeside_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..c83ea01431947641b0923982ea98f69d4e5e91ef
--- /dev/null
+++ b/spec/classes/ontodeside_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe 'ontodeside' do
+  on_supported_os.each do |os, os_facts|
+    context "on #{os}" do
+      let(:facts) { os_facts }
+
+      it { is_expected.to compile }
+    end
+  end
+end