Update to nixos 23.05

- Update using patch notes
- Remove etherpad which didn't work
- Remove code-server which depended on deprecated nodejs versions and was unused
- Remove pkgs-unstable
- Update nodejs to nodejs-20
diff --git a/modules/code-server.nix b/modules/code-server.nix
deleted file mode 100644
index 39b7f3e..0000000
--- a/modules/code-server.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ pkgs, ... }: {
-  services.code-server = {
-    enable = true;
-    host = "0.0.0.0";
-    auth = "none";
-    package = (pkgs.buildFHSUserEnv {
-      name = "code-server";
-      targetPkgs = pkgs: with pkgs; [ code-server git ];
-      runScript = "code-server";
-    });
-  };
-}
diff --git a/modules/dmarc.nix b/modules/dmarc.nix
index 7ab2e7a..c79721d 100644
--- a/modules/dmarc.nix
+++ b/modules/dmarc.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, pkgs-unstable, ... }: {
+{ config, lib, pkgs, ... }: {
   users.users.parsedmarc = {
     isSystemUser = true;
     createHome = true;
@@ -29,6 +29,8 @@
       host = "mail.clicks.codes";
       user = "dmarc@clicks.codes";
       password = { _secret = config.sops.secrets.imap_password.path; };
+    };
+    settings.mailbox = {
       watch = true;
       delete = false;
     };
@@ -47,5 +49,4 @@
     chgrp clicks ${config.services.geoipupdate.settings.DatabaseDirectory}
     # The license agreement does not allow us to let non-clicks users access the database
   '';
-  services.elasticsearch.package = pkgs-unstable.elasticsearch;
 }
diff --git a/modules/dnsmasq.nix b/modules/dnsmasq.nix
index 3d3b6bd..51dd06d 100644
--- a/modules/dnsmasq.nix
+++ b/modules/dnsmasq.nix
@@ -3,12 +3,12 @@
     nscd.enableNsncd = true;
     dnsmasq = {
       enable = true;
-      servers = [ "1.1.1.1" "1.0.0.1" ];
-      extraConfig = ''
-        local=/local/
-        domain=local
-        expand-hosts
-      '';
+      settings = {
+        servers = [ "1.1.1.1" "1.0.0.1" ];
+        local = "/local/";
+        domain = "local";
+        expand-hosts = true;
+      };
     };
     avahi = {
       enable = true;
diff --git a/modules/git.nix b/modules/git.nix
index dac2036..747f686 100644
--- a/modules/git.nix
+++ b/modules/git.nix
@@ -3,8 +3,6 @@
 
   services.gitea = {
     enable = false;
-    rootUrl = "https://git.clicks.codes/";
-    httpPort = 6064;
     settings.mailer = {
       ENABLED = true;
       FROM = "git@clicks.codes";
@@ -25,6 +23,8 @@
       DEFAULT_ENABLE_TIMETRACKING = true;
     };
     settings.server = {
+      ROOT_URL = "https://git.clicks.codes/";
+      HTTP_PORT = 6064;
       SSH_DOMAIN = "ssh.clicks.codes";
       DOMAIN = "localhost";
       DISABLE_SSH = false;
diff --git a/modules/node.nix b/modules/node.nix
index d5f832f..0de7e98 100644
--- a/modules/node.nix
+++ b/modules/node.nix
@@ -1,6 +1,6 @@
 { config, pkgs, ... }: {
   environment.systemPackages = with pkgs; [
-    nodejs-19_x
+    nodejs_20
     nodePackages.typescript
     yarn
     nodePackages.pm2
diff --git a/modules/ssh.nix b/modules/ssh.nix
new file mode 100644
index 0000000..70e1ebb
--- /dev/null
+++ b/modules/ssh.nix
@@ -0,0 +1,7 @@
+{
+  services.openssh = {
+    enable = true;
+    settings.PasswordAuthentication = false;
+  };
+  networking.firewall.allowedTCPPorts = [ 22 ];
+}