From f828afd5d5f0f3e0cbdd6b3bec7ae447c4fbdc78 Mon Sep 17 00:00:00 2001
From: Kiara Grouwstra <kiara@procolix.eu>
Date: Thu, 27 Feb 2025 09:07:13 +0100
Subject: [PATCH] minimum setup i got working for deployment

---
 infra/machines/fedi201/fedipanel.nix |  2 +-
 panel/nix/configuration.nix          | 21 ++++++++++++++++++---
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/infra/machines/fedi201/fedipanel.nix b/infra/machines/fedi201/fedipanel.nix
index 896af61d..5312eafb 100644
--- a/infra/machines/fedi201/fedipanel.nix
+++ b/infra/machines/fedi201/fedipanel.nix
@@ -29,7 +29,7 @@ in
     secrets = {
       SECRET_KEY = config.age.secrets.panel-secret-key.path;
     };
-    port = 80;
+    port = 8000;
     settings = {
       DATABASE_URL = "sqlite:///var/lib/${name}/db.sqlite3";
       CREDENTIALS_DIRECTORY = "/var/lib/${name}/.credentials";
diff --git a/panel/nix/configuration.nix b/panel/nix/configuration.nix
index dae242b5..d790e30c 100644
--- a/panel/nix/configuration.nix
+++ b/panel/nix/configuration.nix
@@ -26,10 +26,19 @@ let
   database-url = "sqlite:////var/lib/${name}/db.sqlite3";
 
   python-environment = pkgs.python3.withPackages (
-    ps: with ps; [
-      cfg.package
+    ps:
+    with ps;
+    [
       uvicorn
+      cfg.package
+      dj-database-url
+      django-compressor
+      django-debug-toolbar
+      django-libsass
+      django_4
+      setuptools
     ]
+    ++ cfg.package.propagatedBuildInputs
   );
 
   configFile = pkgs.concatText "configuration.py" [
@@ -180,7 +189,8 @@ in
         fi
       '';
       script = ''
-        uvicorn ${name}.asgi:application --host ${cfg.host} --port ${toString cfg.port}
+        export PYTHONPATH=$PYTHONPATH:${cfg.package}/lib/python3.12/site-packages
+        ${python-environment}/bin/python -m uvicorn ${name}.asgi:application --host ${cfg.host} --port ${toString cfg.port}
       '';
       serviceConfig = {
         Restart = "always";
@@ -195,5 +205,10 @@ in
         DATABASE_URL = database-url;
       };
     };
+
+    networking.firewall.allowedTCPPorts = [
+      80
+      443
+    ];
   };
 }