diff --git a/infra/machines/fedi201/fedipanel.nix b/infra/machines/fedi201/fedipanel.nix
index 64e42ca0..14a74a16 100644
--- a/infra/machines/fedi201/fedipanel.nix
+++ b/infra/machines/fedi201/fedipanel.nix
@@ -1,5 +1,5 @@
 {
-  inputs,
+  # inputs,
   config,
   pkgs,
   ...
@@ -19,7 +19,8 @@ in
   };
 
   environment.systemPackages = [
-    inputs.self.outPath
+    # inputs.self.outPath
+    # ../../..
     panel
   ];
 
@@ -41,11 +42,12 @@ in
     settings = {
       DATABASE_URL = "sqlite:///var/lib/${name}/db.sqlite3";
       CREDENTIALS_DIRECTORY = "/var/lib/${name}/.credentials";
-      STATIC_ROOT = "/var/lib/${name}/static";
     };
   };
   systemd.services.${name}.environment = {
-    REPO_DIR = inputs.self.outPath;
+    STATIC_ROOT = "/var/lib/${name}/static";
+    # REPO_DIR = inputs.self.outPath;
+    REPO_DIR = ../../..;
     NIX_DIR = pkgs.nix;
   };
 }
diff --git a/keys/systems/fedi201.pub b/keys/systems/fedi201.pub
index 1e769352..6eadc66f 100644
--- a/keys/systems/fedi201.pub
+++ b/keys/systems/fedi201.pub
@@ -1 +1 @@
-ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILhSlUo7L/TjoAILfLv/BDxlBT+rGudh9VoK50Uiu2lZ root@fedi201
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKBpnV6zzgdJN5pjw2oWryneE6kZ5rQ343Ut4ed12Cm9 root@fedi201
diff --git a/secrets/forgejo-database-password.age b/secrets/forgejo-database-password.age
index b5229f4a..412a4d7d 100644
--- a/secrets/forgejo-database-password.age
+++ b/secrets/forgejo-database-password.age
@@ -1,18 +1,17 @@
 age-encryption.org/v1
--> ssh-ed25519 Jpc21A aY4iHQUrjmuTgBkIwG3vg8XBK458PWXpiZ5E/m/UHnU
-VCuYTllN1tW5RzIigPiN+p/W5uI3Urh0J3IpLXDL1H4
--> ssh-ed25519 BAs8QA pP6PTq+vp+fP1oOv3ep4dWspwANxj9DSS94t0a+1Q1o
-tpqUnXqp/wmfXFMe2iXRRda+JmW5ZgypduKOS8meCJw
--> ssh-ed25519 ofQnlg om0geQk3YR3+WXsPdIC46wL02M57Qror6MD/PynrTAs
-Yj5xcXf203kW70SndVBBagh62yAn0T41lzg3ReD1kEs
--> ssh-ed25519 COspvA bvBwdWb0kO89Myw3u2heNwd/4vN1+4tiWjNyoF3t+hM
-eCX26mAJy8stuYrRijqicgODAlyKt3zjeZchCkBpfOI
--> ssh-ed25519 2XrTgw wQMvYCYmw4Iql/EmUSW5HG0fz4POn/VIZrMsL5vuUBc
-RaDLMF7OadInlWbQ70/5gpQ4tpwae8i74hu5Wftf6Yg
--> ssh-ed25519 1MUEqQ ygipOVN6+Z09bfMZFdHRT8Wx+H4Ml0YM0w0vrUANugA
-XvtQMpD+iEpEKGwPVcq9mAftfaRlOJXTXUdcqyvVn9w
--> ssh-ed25519 Fa25Dw qc7z4aL3dHjoOTdPBVm4q6V458BuTGLMekP5Hlk0bk0
-kZuabCaiH7DBhO8mDta8AXUxH65Cpm8u9P9ntw8A5pI
---- zpGb6Td6MdLKxE3mkK1a7JqBH77th6045mcdGIsNth0
-�r*"DQ��-����`�U����`�ҹ�u{��C�]�GZ(p
-��Uf�
\ No newline at end of file
+-> ssh-ed25519 Jpc21A JzLWMEH98I5/A8O55mKUMy5zo2kg3Qk8SfXnHvkjwT4
+8f7zDHSp3AHoAQy0dVWMa1TurCBLnsHNtbNjaD++7ow
+-> ssh-ed25519 BAs8QA eCD3saYXdv1bjAoQghmyVqHjMBu/o2lWgu7grk1vgRs
+//pOnkzqQTK3xmeCjruo46ju2X136KEt6DpsegMouFQ
+-> ssh-ed25519 ofQnlg ePjq7GmM36qaGxcJ0qnW8FdKDjwlXtFqOBK8OgWY3Co
+gVmsDP9rMcQD/B6BpNhCn+avdgjhyyohNUXlatXpXo0
+-> ssh-ed25519 COspvA lrQB/NEmMUR2RWxfRzE2iTDkjMYsrIaiKn8thxZR+RA
+MU23Z28v+cNk2VxpAYaYoFb53js2Zr9/KAM9uMe6+EA
+-> ssh-ed25519 2XrTgw z1ixx5dYCNbgw6wWV45b4wn69X/5/4MzesTomWa4WB4
+eNSlP6+nUW9rpsGyzqOEQ+7IVpGeU3UcZpyfB9XT2/4
+-> ssh-ed25519 1MUEqQ c6ps9RB6Dw9JtR0+4eB1NDx44uUes8YjLrY7RCpD0jg
+GwVRqR5t07ctbWhwH76T+SAe2Y6Vv1uY/AHkzd/gw/c
+-> ssh-ed25519 Fa25Dw jTqtV2RWsXBH4zgWAYr9tBGC/BbXKBvr3uyL8IgmI1o
+qBirnzIpi9hB61xwyS+5U6XBobAquEJrV3cleDtG8/4
+--- j/vJgDV+47UmKokdvztXntBIhCLEyUm2aYoGJ2WMKbU
+����i���Q�f������DN��B"��vs�B6P�Q�orF���
\ No newline at end of file
diff --git a/secrets/forgejo-email-password.age b/secrets/forgejo-email-password.age
index 4fdc373c..d1fc3a85 100644
--- a/secrets/forgejo-email-password.age
+++ b/secrets/forgejo-email-password.age
@@ -1,18 +1,17 @@
 age-encryption.org/v1
--> ssh-ed25519 Jpc21A ExqTXUYWuoVsdKwuWzCD72NctIpGvAF4QknTU04he2M
-rN48eYUwPJtTc/UBpB79FayC0W2UnrKdjFTdWKShtc0
--> ssh-ed25519 BAs8QA xODgENkmP/KjT6IGiMW3cBkdrY+o5rbAGywY7Fx99EY
-DNAlVBdObTlgeVhKYtzPv46RCtn7zNm1aURWBOpBXEs
--> ssh-ed25519 ofQnlg cEM500igumTfcCWWCH55z22Pp8QqLcqmjTD5e1lp1T0
-oKBWnaFpaFiEGf51fPqObAkRfRE4gywjQrYGB9kygUs
--> ssh-ed25519 COspvA gQbazYgzv8oBeND0VtZ3P241kZM9klO2qysjkc20CFQ
-nW558CrEvtuUEpLo6EUeUTVK6EVUXbNZwP4+GLVVH3A
--> ssh-ed25519 2XrTgw QlyQRFaRkniJ4BrJEVEP5muS+POPdKSmpS5u4ORiRTc
-/UeO72Y/U9aml3S2s9wE9HUIXPoR+6GDSXF+PT141Qg
--> ssh-ed25519 1MUEqQ oMz1Cq68FuE1jm63H2Rfr/WqhkCeJ2SQrVtk88FBYGo
-ou2ZRPuGTlLxsV/DhXoRUhqaQq9Ub+1ZdOcqqazrBZM
--> ssh-ed25519 Fa25Dw USp87LMAo6HfD6gHdA+lrRlwHzKtMwXGjELImsQ7onk
-g8GvPArugT7KIdpgpfWjHFUNyXgL9rRuymQg/RIiQJw
---- 6oCFkdV4DmaxMe7lDoDSKgtCKySGqVqrbDv8aRa/h/o
-�W)E��{��b���rۛ�
-�3OVx)��Q�Ȭ6�b��O�O�ܗ�ȑ%�
\ No newline at end of file
+-> ssh-ed25519 Jpc21A l6Xwv4JBlTeRTC7RgjxY9gDrCk96atMUH/62P+u55Qs
+CrYsLZgDFAiR8up87lhGZqsbAEZtOXG+l5IzLh2uaqg
+-> ssh-ed25519 BAs8QA lgtmfoc4vKfRpI/XbIS258BMyIB4mTdquEx/Kxm5OTI
+3gQL8Rnqc7JfqsRmKYU3rD0cWMKdnIeVXbY3eFM07RU
+-> ssh-ed25519 ofQnlg 0vwuCrduMLjssA3CK3gfVPMSPYKO9cF7HH1JF/oJv18
+2KrZgQmpvw/tNDJrDArinnbEjopkkmuG8s7t6klBXcQ
+-> ssh-ed25519 COspvA NT+/h2KsiZN2XbaWAlrTlDwyAPmHWrwgr6f0uhSbEGs
+QpoAd+69VYrZwAC0LwDm1m/zfslVgzxpVFihQWDcqzE
+-> ssh-ed25519 2XrTgw QoJ/74FOqYFxHJYXJEkyzbGY0xptSjorNvnyUS1p6zk
+0sJ2F6IFuTrRvXO5ND1QL4CZ2lr1BAU3iQffC6Uc3h4
+-> ssh-ed25519 1MUEqQ xxgEUIhvWN/ZfRMGfu3fKQ+fWM5WSz8OexXPm6jaXDk
+RXe0JMZ0sYMdQvrbi+zAs9F3d98ocRFnsSGUuUWccRk
+-> ssh-ed25519 Fa25Dw tw4sqQcO86Gh0FGUD+O3bJ+8OcaN5rm8R6qocXvDbRg
+7hiWa4qznHTV45kvC7ucj7j7FbPrqYK5OcCcByrcSxg
+--- kvZDYq5n/OXu7xe2Kf5vGN0zosl9fgH4CAf3K0Tq3U4
+�D!��j]2�݃T+�
�U��cg�oP�� �F.޿_vb���d�9
\ No newline at end of file
diff --git a/secrets/forgejo-runner-token.age b/secrets/forgejo-runner-token.age
index 9abc8a98..e541a38e 100644
Binary files a/secrets/forgejo-runner-token.age and b/secrets/forgejo-runner-token.age differ
diff --git a/secrets/panel-secret-key.age b/secrets/panel-secret-key.age
index 2b51856d..fd5e8892 100644
--- a/secrets/panel-secret-key.age
+++ b/secrets/panel-secret-key.age
@@ -1,17 +1,17 @@
 age-encryption.org/v1
--> ssh-ed25519 Jpc21A jzJ5wTSLBsJ0DxelUDsT7BxM9qc73hPsCvB/1R3qGC4
-5giHjKIjnBVmn4NAtGLSIgKQGts9kOc+EPS6AKugn1s
--> ssh-ed25519 BAs8QA J/y7P+A4z1iETfzta1UBf2AnKOD5lFTuGRo7EjWF4Qw
-zUBV+byTPL2kbKS6ZCbu8mk9Lp/fq1iF2Sii0XHxB5I
--> ssh-ed25519 ofQnlg w1RFmJnfOSpKu9tiVvPy3WdLVGO1vUdPW1exb+M7xEM
-jk6/yzZMJCvzW1/5T+DKze+PxduLcWDrBGcVN6k5Vfo
--> ssh-ed25519 COspvA DEBQL0y8GQpdib3WUkj1a/FVLVF8aMAZ77MdxLqJkVE
-V96fUeVJD3v2/V1H5GLo5YIKlIU7fuyYBr7F48gzJ60
--> ssh-ed25519 2XrTgw ixdrdSfgH9Ch1Y4aflWP1QG6khhKN8mD1jFyOXhDTyA
-Kd8QfZ1IqWqiaAY4C8+J/AE6vqIRNAZtU6jbIjRYvCA
--> ssh-ed25519 1MUEqQ Mwda57DHcYYsBJr0L6q9IcO4xyr6NvfTlXyRK/sfjWk
-WX2CsIJBJL1Q9ZMsLzLS2s2L1b+7Mm0WXF+PqRVh1p4
--> ssh-ed25519 ChtTUw trZu9wftz3Hjd2xTKf8TYM9oLpNBcwQX47Pfi/cetjE
-5F1McxV1iLHyIVYdPDeR2twB5aq1fz9g/nrjAF5ys2w
---- 7p/n8TyrrtmVay+dPSX+bdlEqzFByuWk/6FyKFKh758
-I�B�U�3M:ƶ,����?n��-{�7�h�3�#7����'�g�~L&�)�=�bB:9h�A�TOS�
\ No newline at end of file
+-> ssh-ed25519 Jpc21A fBhVzGFs61K63QtA8RdOuuGfHFjMe/Dp0M6TXGLGWDU
+qppnUZ+LQCXhuMCFMYv2D2CkmEfjb7mpmJufIeVjjaM
+-> ssh-ed25519 BAs8QA PNicZCWLkbvM4ih77/F4z6FzHomL9EsJCuSCjbdRTwA
+qIpTl/v7Xl08qBB//dFeW9qQiZg10YrYLnfyQrgDRfQ
+-> ssh-ed25519 ofQnlg 9/vSN3V25ysXBOvS4UJQEzm0734zqO0gXjhgzX63tTs
+AH9Q1lWr+RgICfW3h+D2SgCTFr+azI0x3J3eFnaz/XA
+-> ssh-ed25519 COspvA IB1nWOMaVZVcvEog6UaqCak2fcKxIUN2yXvvRSTDxGw
+Ti7JuBgU6phlI+oXfDDvx42dRu95kTwesRUKu4QsXZ4
+-> ssh-ed25519 2XrTgw 7S9ZhJvUFMw9tDCc0HvkRsRqjvmn47GFGVg/jkxIy1I
+cj27gqqihSZG3Jcab9h9FyNJ1J8FjlUiyVlDot+sbWQ
+-> ssh-ed25519 1MUEqQ l9mVTLD9rZXisBEz0sU2AdFNrJQ/+zuFTiIod5R/HCI
+2q3csSEvMW5vtzqGHYTtZ1nZ0J1vT23bjhuj9HTsdWk
+-> ssh-ed25519 kXy85Q BCrDvkPZLvx2Kvgapa3BT+AmpS6Fa5kpkgBnRVso2BE
+ZBi+x/2ilJIzhzGipdZQJoGOjSqCuAttsqCDVFlYJ8Y
+--- iWtseKyfUMBkQTUl9QzwXXLQcodEJeZt1Wuj5sR18yY
++2,�	���JrҨ>���z?�i������x�M0z��Ԓqҙ���^�Ⱥ�H����I+1���
\ No newline at end of file
diff --git a/secrets/wiki-basicauth-htpasswd.age b/secrets/wiki-basicauth-htpasswd.age
index cb5e2274..cae51926 100644
--- a/secrets/wiki-basicauth-htpasswd.age
+++ b/secrets/wiki-basicauth-htpasswd.age
@@ -1,18 +1,18 @@
 age-encryption.org/v1
--> ssh-ed25519 Jpc21A vsNSibhHXdlRVArHkFqPy2vapvpo+lfs6QNESfZHk0c
-ArMZEQCONAIGQwyEh/QkJ3m5Bnru2/A1fQdJNtPraII
--> ssh-ed25519 BAs8QA 7vfPIUymPXpfX7vhUyNVqBmTllXgJ99gCSHOgWH66HA
-gaueu0eHyqY+VAkNIzPb/aLQ1VG13kSpth2tJfhK7sU
--> ssh-ed25519 ofQnlg iaJY3mcaKyLjTAqNVnzyivIVRwXxxFzP0ru35s/TU3Q
-mfKliFvPT+hEOpOPtkdR/UEmEadXZGpQ8+iWg+S/Q8c
--> ssh-ed25519 COspvA +LC5rnZIS2R5DA3mIyeo2hR45mcBwNUjRS051qN+q2w
-yLYl5g8o29ApSCn+H4Df8P8y+eFv2Hbj6b/nHrzFMdA
--> ssh-ed25519 2XrTgw dG9hmRFpaCBgaoHIkWmJM1Ls/mBqnV5gueGjCTEmRE0
-YkIQDWAwpr3pjjFozGEa3+4+WqJan0KQzUeYNxRjUPc
--> ssh-ed25519 1MUEqQ 0Mtf2NGpVP3TYuFGrTPyQM+h6PjpgJNwW9amz1w7h0w
-J8RM+vl/e8JifUP3dqwH5L9AUqu24pALv6wqxaNhy3g
--> ssh-ed25519 dgBsjw 9Y1n4J8E5T022V8QCApLykKoX56Zto8eLiy5KZvPuR4
-3piVQigR7rFry43YTTHmXkBSDIAFa/ife1Vuq6/3ubk
---- 5Mr3Xe9RF1mneoWBno4SVkNqHx76EilFG0UvsHbqRQo
-��&�mu�.��N���:%����P�	]`L<���	����]���e/T(s"a�ō���-��$M�A�%L�ɜv�
-�m���@+9����%oa/�K*��&
\ No newline at end of file
+-> ssh-ed25519 Jpc21A BfHJN3vILbsfY91kEjSQ+STrn6vQfn83Fx3cBCNshRQ
+0O8GJYfF8WFS4Xsgj5v1cly4JP1MgSN40OgRdW/i0rA
+-> ssh-ed25519 BAs8QA Ue0NLMpmZDSTGvwZ8lhzes7pcmit9F6uwzeT4XhiwC0
+jsvvuOW344i8GR4B139SX0LwTqzKQEgBvsy8oRppqBU
+-> ssh-ed25519 ofQnlg 9iSMQeTJn1OUqTF+M2sHpp69lblb8E6TVbgZs7vgD2U
+uMQI1gTTMvYW7ea9xBAln118JEeNvv3nqbq32zJoat8
+-> ssh-ed25519 COspvA YxCyfe0li23JoI2q4XFVUx4vrWApLwSnJD31PHXuPBg
+8xuT9+W2mnTag9tm6F6LXzHkIh2Nou/8lgxd64OpvWk
+-> ssh-ed25519 2XrTgw jEzw0A9Wd1b1Zoryzp/W/QZ6bd99E7sySnr/W2xcnDs
+IyMrojJ3AChS6lhj599caNM+02i16qtpc6cocln14b4
+-> ssh-ed25519 1MUEqQ haiI/5EkuTZ2YHxsqSVlqfM0VVR24DIDrMS3RmXwAhU
+qVIAvLp2qG4A3f3OKUqAKqH1eOicJz54nfblPSUKrSw
+-> ssh-ed25519 dgBsjw /vCnznu73U99onCWcM0aQlW0azscyUe4BB2kKeZvtHs
+MPnvXR/WVsl/tJ1YPoc7nk2Ls2x9bbtJdNp3CQTuuWI
+--- OzkqKlw4xu3McMk20orQN0h+VPYfUUSDC+DsgRU1tSw
+�^@�m���`B��#{��� GUu��|�� �� r��jb�:ԓd��]	G�Ω���-�–M�����l�3m��)��@���e?���e��Z
+Y}�!f�
\ No newline at end of file
diff --git a/secrets/wiki-password.age b/secrets/wiki-password.age
index e3d26a37..c38c1279 100644
Binary files a/secrets/wiki-password.age and b/secrets/wiki-password.age differ
diff --git a/secrets/wiki-smtp-password.age b/secrets/wiki-smtp-password.age
index 01be849e..26145509 100644
Binary files a/secrets/wiki-smtp-password.age and b/secrets/wiki-smtp-password.age differ