diff --git a/config/hardware/socrates.nix b/config/hardware/socrates.nix
new file mode 100644
index 0000000..2ca7ca5
--- /dev/null
+++ b/config/hardware/socrates.nix
@@ -0,0 +1,113 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix> ];
+
+  config = {
+
+    boot = {
+      initrd = {
+        luks.devices.socrates-unlocked = {
+          device = "/dev/socrates/socrates-locked";
+          preLVM = false;
+          allowDiscards = true;
+        };
+        availableKernelModules = [
+          "xhci_pci"
+          "ehci_pci"
+          "ahci"
+          "usb_storage"
+          "usbhid"
+          "sd_mod"
+          "r8169"
+        ];
+        kernelModules = [ "dm-snapshot" ];
+        network = {
+          enable = true;
+          ssh = {
+            enable = true;
+            port = 22;
+            authorizedKeys = [
+              "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDPwh522lvafTJYA0X2uFdP7Ws+Um1f8gZsARK1Y5nMzf6ZcWBF1jplTOKUVSOl4isMWni0Tu0TnX4zqCcgocWUVbwIwXSIRYqdiCPvVOH+/Ibc97n1/dYxk5JPMtbrsEw6/gWZxVg0qwe0J3dQWldEMiDY7iWhlrmIr7YL+Y3PUd7DOwp3PbfWfNyzTfE1kXcz5YvTeN+txFhbbXT0oS2R2wtc1vYXFZ/KbNstjqd+i8jszAq3ZkbbwL3aNR0RO4n8+GoIILGw8Ya4eP7D6+mYk608IhAoxpGyMrUch2TC2uvOK3rd/rw1hsTxf4AKjAZbrfd/FJaYru9ZeoLjD4bRGMdVp56F1m7pLvRiWRK62pV2Q/fjx+4KjHUrgyPd601eUIP0ayS/Rfuq8ijLpBJgO5/Y/6mFus/kjZIfRR9dXfLM67IMpyEzEITYrc/R2sedWf+YHxSh6eguAZ/kLzioar1nHLR7Wzgeu0tgWkD78WQGjpXGoefAz3xHeBg3Et0="
+              "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDGVez4of30f+j0cWKj5kYCKeFjyNsYvG9UbOMxF5hImD2lP5MSbFBv31gFgHjx3yCG4zQRZlpuyU5uWo0qIwe9N84/LcZcB9WrWKZXDmuof7zPFy0J+Hj+LVLDQI/mVXHNwkMhBMHpPrdwA05EYDAYCYklWT4cSByu10pHtST+olF8i+A+UQgUzgNZzdJVeiYZv6MBDTYsJWptGeDUkl2B0Es3gtbGYcCCfnyS3RC7DIXlDo3NBbAr7WaHY2MBbT+R/+jicn9E3IY3NCM5jENxqmvHy9MDsxEEYgFNm7IDwq4V1VRUWy277YsvRbmEaHb+osOA5u1VNN4z3UftOZcSZgR5C/vR71cENXoPt1YQpCzu7i38ojtvL+tDVEKT7sIovrQw8q1sszNlW2nXh8RSPiIq5TMnrV73MP0egKcr9n3tfxwi1BIkLjvfom/02BkTK9R9v+VMNhYU1YwROhORCiMIgoxUGiUvtH8u38JGr7E0hhMoAjCE5k80WPUivl0="
+            ];
+            hostKeys = [
+              "/state/ssh/ssh_host_ed25519_key"
+              "/state/ssh/ssh_host_rsa_key"
+            ];
+          };
+        };
+      };
+
+      loader = {
+        grub = {
+          enable = true;
+          version = 2;
+          device = "/dev/sda";
+        };
+      };
+
+      kernelModules = [ ];
+      extraModulePackages = [ ];
+    };
+
+    fileSystems = {
+      "/" = {
+        device = "socrates-root";
+        fsType = "tmpfs";
+        options = [ "mode=755" "noexec" ];
+      };
+
+      "/boot" = {
+        device = "/dev/disk/by-label/socrates-boot";
+        fsType = "ext4";
+        options = [ "noatime" "nodiratime" "noexec" ];
+      };
+
+      "/nix" = {
+        device = "/dev/disk/by-label/socrates-data";
+        fsType = "btrfs";
+        options = [ "subvol=@nix" "compress=zstd" "noatime" "nodiratime" ];
+      };
+
+      "/var/log" = {
+        device = "/dev/disk/by-label/socrates-data";
+        fsType = "btrfs";
+        options = [ "subvol=@log" "compress=zstd" "noatime" "nodiratime" "noexec" ];
+      };
+
+      "/state" = {
+        device = "/dev/disk/by-label/socrates-data";
+        fsType = "btrfs";
+        options = [ "subvol=@state" "compress=zstd" "noatime" "nodiratime" "noexec" ];
+      };
+
+      "/home" = {
+        device = "/dev/disk/by-label/socrates-data";
+        fsType = "btrfs";
+        options = [ "subvol=@home" "compress=zstd" "noatime" "nodiratime" "noexec" ];
+      };
+    };
+
+    swapDevices = [{
+      device = "/dev/socrates/socrates-swap";
+      randomEncryption.enable = true;
+    }];
+
+    networking = {
+      macvlans = {
+        intif0 = {
+          interface = "enp1s0";
+          mode = "bridge";
+        };
+      };
+
+      interfaces = {
+        enp1s0.useDHCP = false;
+        intif0 = {
+          macAddress = "02:f2:30:b8:71:42";
+        };
+      };
+    };
+  };
+}
diff --git a/config/host-config/limina.nix b/config/host-config/limina.nix
index 9be41e6..c81c90a 100644
--- a/config/host-config/limina.nix
+++ b/config/host-config/limina.nix
@@ -158,12 +158,9 @@ in {
 
     systemd.tmpfiles.rules = [
       "L /root/.gnupg - - - - /state/root/gnupg"
-      "L /root/.emacs.d - - - - /state/root/emacs.d"
       "L /root/.ssh/id_rsa - - - - /state/root/ssh/id_rsa"
       "L /root/.ssh/id_rsa.pub - - - - /state/root/ssh/id_rsa.pub"
       "L /root/.ssh/known_hosts - - - - /state/root/ssh/known_hosts"
-      "L /etc/ssh/ssh_host_ed25519_key - - - - /state/ssh/ssh_host_ed25519_key"
-      "L /etc/ssh/ssh_host_rsa_key - - - - /state/ssh/ssh_host_rsa_key"
     ];
 
     security.acme.certs."sea-camera.fudo.link".email = "niten@fudo.org";
diff --git a/config/host-config/socrates.nix b/config/host-config/socrates.nix
new file mode 100644
index 0000000..9ac3c8b
--- /dev/null
+++ b/config/host-config/socrates.nix
@@ -0,0 +1,63 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  primary-ip = "10.0.0.20";
+
+in {
+  config = {
+    networking = {
+      useDHCP = false;
+
+      defaultGateway = {
+        address = "10.0.0.1";
+        interface = "intif0";
+      };
+
+      interfaces.intif0 = {
+        ipv4.addresses = [{
+          address = primary-ip;
+          prefixLength = 22;
+        }];
+      };
+    };
+
+    systemd.tmpfiles.rules = [
+      "L /root/.gnupg - - - - /state/root/gnupg"
+      "L /root/.ssh/id_rsa - - - - /state/root/ssh/id_rsa"
+      "L /root/.ssh/id_rsa.pub - - - - /state/root/ssh/id_rsa.pub"
+      "L /root/.ssh/known_hosts - - - - /state/root/ssh/known_hosts"
+    ];
+
+    environment.etc = {
+      nixos.source = "/state/nixos";
+      adjtime.source = "/state/etc/adjtime";
+      NIXOS.source = "/state/etc/NIXOS";
+      machine-id.source = "/state/etc/machine-id";
+      "host-config.nix".source = "/state/etc/host-config.nix";
+    };
+
+    system.stateVersion = "21.05";
+
+    security.sudo.extraConfig = ''
+      # Due to tmpfs home, it'll always lecture otherwise
+      Defaults lecture = never
+    '';
+
+    services = {
+      openssh = {
+        hostKeys = [
+          {
+            path = "/state/ssh/ssh_host_ed25519_key";
+            type = "ed25519";
+          }
+          {
+            path = "/state/ssh/ssh_host_rsa_key";
+            type = "rsa";
+            bits = 4096;
+          }
+        ];
+      };
+    };
+  };
+}
diff --git a/config/hosts/socrates.nix b/config/hosts/socrates.nix
index 29072c0..2413030 100644
--- a/config/hosts/socrates.nix
+++ b/config/hosts/socrates.nix
@@ -1,6 +1,10 @@
 {
   description = "sea.fudo.org deploy server.";
   ssh-fingerprints = [
+    "1 1 4055c1d922ec858e703856dd76237f09219261e5"
+    "1 2 0f7bfa92fa0435785782b68ca4c9b71786d67df60804ea4b4c42ebb37d061659"
+    "4 1 5dc2b674554df5e042171b4045fcfe31f03ad01a"
+    "4 2 9bcf664a191e31bf53aa4728828480babdab5377da39a002324303c719b16a55"
   ];
   rp = "niten";
   admin-email = "niten@fudo.org";
@@ -8,6 +12,6 @@
   site = "seattle";
   profile = "server";
   ssh-pubkey =
-    "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGuClWAtkOMBOVFAFFdWosCT8NvuJBps46P4RV+Qqz4b";
+    "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP4TqqumZwSDLkg8cTpR734zM+nuqEp1ufaQPoFdqCab";
   tmp-on-tmpfs = false;
 }
diff --git a/config/networks/sea.fudo.org.nix b/config/networks/sea.fudo.org.nix
index 00f4e26..b226fb0 100644
--- a/config/networks/sea.fudo.org.nix
+++ b/config/networks/sea.fudo.org.nix
@@ -3,7 +3,7 @@
 let local-domain = "sea.fudo.org";
 in {
   aliases = {
-    deploy = "plato";
+    deploy = "socrates";
     gateway = "limina";
     # kadmin = "nostromo";
     # kdc = "nostromo";
@@ -82,7 +82,10 @@ in {
       ipv4-address = "10.0.0.11";
       mac-address = "02:f5:fe:8c:22:fe";
     };
-    socrates = { ipv4-address = "10.0.0.20"; };
+    socrates = {
+      ipv4-address = "10.0.0.20";
+      mac-address = "02:f2:30:b8:71:42";
+    };
     plato = { ipv4-address = "10.0.0.21"; };
     cam-entrance = {
       ipv4-address = "10.0.0.31";
diff --git a/config/sites.nix b/config/sites.nix
index f6e08f3..68d1cd5 100644
--- a/config/sites.nix
+++ b/config/sites.nix
@@ -9,8 +9,9 @@
       dynamic-network = "10.0.1.0/24";
       timezone = "America/Los_Angeles";
       gateway-host = "nostromo";
-      deploy-pubkey =
-        "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDPwh522lvafTJYA0X2uFdP7Ws+Um1f8gZsARK1Y5nMzf6ZcWBF1jplTOKUVSOl4isMWni0Tu0TnX4zqCcgocWUVbwIwXSIRYqdiCPvVOH+/Ibc97n1/dYxk5JPMtbrsEw6/gWZxVg0qwe0J3dQWldEMiDY7iWhlrmIr7YL+Y3PUd7DOwp3PbfWfNyzTfE1kXcz5YvTeN+txFhbbXT0oS2R2wtc1vYXFZ/KbNstjqd+i8jszAq3ZkbbwL3aNR0RO4n8+GoIILGw8Ya4eP7D6+mYk608IhAoxpGyMrUch2TC2uvOK3rd/rw1hsTxf4AKjAZbrfd/FJaYru9ZeoLjD4bRGMdVp56F1m7pLvRiWRK62pV2Q/fjx+4KjHUrgyPd601eUIP0ayS/Rfuq8ijLpBJgO5/Y/6mFus/kjZIfRR9dXfLM67IMpyEzEITYrc/R2sedWf+YHxSh6eguAZ/kLzioar1nHLR7Wzgeu0tgWkD78WQGjpXGoefAz3xHeBg3Et0=";
+      deploy-pubkeys = [
+        "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDPwh522lvafTJYA0X2uFdP7Ws+Um1f8gZsARK1Y5nMzf6ZcWBF1jplTOKUVSOl4isMWni0Tu0TnX4zqCcgocWUVbwIwXSIRYqdiCPvVOH+/Ibc97n1/dYxk5JPMtbrsEw6/gWZxVg0qwe0J3dQWldEMiDY7iWhlrmIr7YL+Y3PUd7DOwp3PbfWfNyzTfE1kXcz5YvTeN+txFhbbXT0oS2R2wtc1vYXFZ/KbNstjqd+i8jszAq3ZkbbwL3aNR0RO4n8+GoIILGw8Ya4eP7D6+mYk608IhAoxpGyMrUch2TC2uvOK3rd/rw1hsTxf4AKjAZbrfd/FJaYru9ZeoLjD4bRGMdVp56F1m7pLvRiWRK62pV2Q/fjx+4KjHUrgyPd601eUIP0ayS/Rfuq8ijLpBJgO5/Y/6mFus/kjZIfRR9dXfLM67IMpyEzEITYrc/R2sedWf+YHxSh6eguAZ/kLzioar1nHLR7Wzgeu0tgWkD78WQGjpXGoefAz3xHeBg3Et0="
+      ];
       build-servers = {
         nostromo = {
           max-jobs = 2;
@@ -54,7 +55,6 @@
 
     portage = {
       gateway-v4 = "208.81.3.113";
-      # gateway-v6 = "265:e200:d200:1::1";
       network = "208.81.3.112/28";
       nameservers = [ "1.1.1.1" "208.81.7.14" "2606:4700:4700::1111" ];
       timezone = "America/Winnipeg";
@@ -71,11 +71,11 @@
 
     joes-datacenter-0 = {
       gateway-v4 = "172.86.179.17";
-      # network = "FIXME";
       nameservers = [ "1.1.1.1" "2606:4700:4700::1111" ];
       timezone = "America/Winnipeg";
-      deploy-pubkey =
-        "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDPwh522lvafTJYA0X2uFdP7Ws+Um1f8gZsARK1Y5nMzf6ZcWBF1jplTOKUVSOl4isMWni0Tu0TnX4zqCcgocWUVbwIwXSIRYqdiCPvVOH+/Ibc97n1/dYxk5JPMtbrsEw6/gWZxVg0qwe0J3dQWldEMiDY7iWhlrmIr7YL+Y3PUd7DOwp3PbfWfNyzTfE1kXcz5YvTeN+txFhbbXT0oS2R2wtc1vYXFZ/KbNstjqd+i8jszAq3ZkbbwL3aNR0RO4n8+GoIILGw8Ya4eP7D6+mYk608IhAoxpGyMrUch2TC2uvOK3rd/rw1hsTxf4AKjAZbrfd/FJaYru9ZeoLjD4bRGMdVp56F1m7pLvRiWRK62pV2Q/fjx+4KjHUrgyPd601eUIP0ayS/Rfuq8ijLpBJgO5/Y/6mFus/kjZIfRR9dXfLM67IMpyEzEITYrc/R2sedWf+YHxSh6eguAZ/kLzioar1nHLR7Wzgeu0tgWkD78WQGjpXGoefAz3xHeBg3Et0=";
+      deploy-pubkeys = [
+        "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDPwh522lvafTJYA0X2uFdP7Ws+Um1f8gZsARK1Y5nMzf6ZcWBF1jplTOKUVSOl4isMWni0Tu0TnX4zqCcgocWUVbwIwXSIRYqdiCPvVOH+/Ibc97n1/dYxk5JPMtbrsEw6/gWZxVg0qwe0J3dQWldEMiDY7iWhlrmIr7YL+Y3PUd7DOwp3PbfWfNyzTfE1kXcz5YvTeN+txFhbbXT0oS2R2wtc1vYXFZ/KbNstjqd+i8jszAq3ZkbbwL3aNR0RO4n8+GoIILGw8Ya4eP7D6+mYk608IhAoxpGyMrUch2TC2uvOK3rd/rw1hsTxf4AKjAZbrfd/FJaYru9ZeoLjD4bRGMdVp56F1m7pLvRiWRK62pV2Q/fjx+4KjHUrgyPd601eUIP0ayS/Rfuq8ijLpBJgO5/Y/6mFus/kjZIfRR9dXfLM67IMpyEzEITYrc/R2sedWf+YHxSh6eguAZ/kLzioar1nHLR7Wzgeu0tgWkD78WQGjpXGoefAz3xHeBg3Et0="
+      ];
       keytab-directory = "/state/secrets/kerberos";
     };
   };
diff --git a/fudo-pkgs b/fudo-pkgs
index 8ff5dfa..3304caa 160000
--- a/fudo-pkgs
+++ b/fudo-pkgs
@@ -1 +1 @@
-Subproject commit 8ff5dfa3481c1e625f612e0b01a899dd1c37420b
+Subproject commit 3304caa8ee5891d05320375b5dc825871e53172d
diff --git a/lib/fudo/sites.nix b/lib/fudo/sites.nix
index e8ef282..9cd2cd6 100644
--- a/lib/fudo/sites.nix
+++ b/lib/fudo/sites.nix
@@ -81,8 +81,8 @@ let
         example = "America/Winnipeg";
       };
 
-      deploy-pubkey = mkOption {
-        type = nullOr str;
+      deploy-pubkeys = mkOption {
+        type = nullOr (listOf str);
         description = "SSH pubkey of site deploy key. Used by dropbear daemon.";
         default = null;
       };
@@ -197,7 +197,7 @@ in {
   config = {
     users.users = {
       root.openssh.authorizedKeys.keys =
-        mkIf (site-cfg.deploy-pubkey != null) [ site-cfg.deploy-pubkey ];
+        mkIf (site-cfg.deploy-pubkeys != null) site-cfg.deploy-pubkeys;
 
       ${site-cfg.build-user} = mkIf
         (any (build-host: build-host == config.instance.hostname)
diff --git a/nix-home b/nix-home
index 0d213bd..dcab432 160000
--- a/nix-home
+++ b/nix-home
@@ -1 +1 @@
-Subproject commit 0d213bdbf0838a0571582659aaf18ea5700eed4b
+Subproject commit dcab43275a732e9a3e3c66c9a92132b4290838d3
diff --git a/nixops/seattle.nix b/nixops/seattle.nix
index 6472b95..fd2c36d 100644
--- a/nixops/seattle.nix
+++ b/nixops/seattle.nix
@@ -33,6 +33,7 @@ in {
   limina = define-host "10.0.0.1" "limina";
   nostromo = define-host "10.0.0.10" "nostromo";
   plato = define-host "10.0.0.21" "plato";
+  socrates = define-host "10.0.0.20" "socrates";
   spark = define-host "10.0.0.108" "spark";
   system3 = define-host "10.0.0.111" "system3";
   zbox = define-host "10.0.0.110" "zbox";