From 980c674a43a0b1ce2eed6d1707c7a9fb6b36615a Mon Sep 17 00:00:00 2001 From: Max Koon Date: Thu, 2 Oct 2025 13:02:53 -0400 Subject: [PATCH] feat: elytra fix --- flake.lock | 6 ++--- flake.nix | 6 +++-- host/ark/service/elytra.nix | 45 ++++++++++++++++++++++++++++++------- host/max/home/desktop.nix | 2 +- secrets | 2 +- 5 files changed, 46 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 540123d..79da665 100644 --- a/flake.lock +++ b/flake.lock @@ -9,11 +9,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1758288107, - "narHash": "sha256-5RSrpXvOixzXGUKagXHkcJyXe0MzBLSF36SELu9welg=", + "lastModified": 1759166975, + "narHash": "sha256-QEs164tIjxuprOt4H9A335ymMMXhVZCVJXWFvHutGL8=", "owner": "k2on", "repo": "elytrarides", - "rev": "dc282388bbfa41c61dc0f04f582c09361c9b22c8", + "rev": "863d3491b89b52c8193d882c8b1c4a858376b1d7", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 34b4397..ba5f911 100644 --- a/flake.nix +++ b/flake.nix @@ -124,10 +124,12 @@ ]; }; - ark = let system = "x86_64-linux"; + ark = let + system = "x86_64-linux"; + secrets = import ./secrets; in unstable.lib.nixosSystem { inherit system; - specialArgs = { inherit elytrarides; }; + specialArgs = { inherit elytrarides secrets; }; modules = [ ./host/ark/default.nix sops-nix.nixosModules.sops diff --git a/host/ark/service/elytra.nix b/host/ark/service/elytra.nix index bb7f74d..e87fcef 100644 --- a/host/ark/service/elytra.nix +++ b/host/ark/service/elytra.nix @@ -1,4 +1,4 @@ -{ config, pkgs, elytrarides, ... }: +{ secrets, config, pkgs, elytrarides, ... }: { users.users.elytra-web = { @@ -33,11 +33,10 @@ User = "elytra-web"; Group = "elytra-web"; - WorkingDirectory = "${elytrarides.packages.${pkgs.system}.web}/lib/node_modules/web"; + WorkingDirectory = "${pkgs.web}/lib/node_modules/web"; ExecStart = - "${pkgs.nodejs}/bin/node ${elytrarides.packages.${pkgs.system}.web}/lib/node_modules/web/node_modules/next/dist/bin/next start"; + "${pkgs.nodejs}/bin/node ${pkgs.web}/lib/node_modules/web/node_modules/next/dist/bin/next start"; EnvironmentFile = config.sops.secrets."elytra-frontend-env".path; - Restart = "on-failure"; RestartSec = 10; @@ -48,24 +47,54 @@ ProtectSystem = "strict"; ProtectHome = true; - # State directory for Next.js cache/data StateDirectory = "elytra-web"; StateDirectoryMode = "0750"; - # Logging StandardOutput = "journal"; StandardError = "journal"; SyslogIdentifier = "elytra-web"; }; }; + services.postgresql = { + enable = true; + ensureDatabases = [ "backend" ]; + ensureUsers = [ + { + name = "backend"; + ensureDBOwnership = true; + } + ]; + }; + services.redis = { + enable = true; + }; + + nixpkgs.overlays = [ + (final: prev: { + web = elytrarides.packages.${pkgs.system}.web.overrideAttrs (old: { + buildPhase = '' + export NEXT_PUBLIC_GOOGLE_MAPS_API_KEY="${config.environment.sessionVariables.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY}" + ${old.buildPhase or "runHook preBuild; npm run build --if-present; runHook postBuild"} + ''; + }); + }) + ]; + + environment.sessionVariables.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY = secrets.ark.elytra.google-maps-api-key; + systemd.services.elytra-backend = { description = "Elytra Rides Backend Service"; after = [ "network.target" "postgresql.service" ]; wants = [ "network-online.target" ]; serviceConfig = { - ExecStart = "${elytrarides.packages.${pkgs.system}.backend}/bin/backend"; + + ExecStart = "${elytrarides.packages.${pkgs.system}.backend}/bin/nujade_backend"; + ExecStartPre = [ + "${pkgs.diesel-cli}/bin/diesel --database-url=\"postgresql:///backend?user=backend\" migration run --migration-dir=${elytrarides.packages.${pkgs.system}.backend}/migrations" + ]; + Restart = "always"; RestartSec = 5; User = "backend"; @@ -75,7 +104,7 @@ }; environment = { - DATABASE_URL="postgresql://backend:password@localhost:5432/backend"; + DATABASE_URL="postgresql:///backend?user=backend"; }; wantedBy = [ "multi-user.target" ]; diff --git a/host/max/home/desktop.nix b/host/max/home/desktop.nix index 61f21f8..3689c0d 100644 --- a/host/max/home/desktop.nix +++ b/host/max/home/desktop.nix @@ -3,7 +3,7 @@ enable = true; workspace = { wallpaper = "/home/max/bg.jpg"; }; - kwin = { virtualDesktops = { number = 9; }; }; + kwin = { virtualDesktops = { number = 4; }; }; input = { keyboard = { diff --git a/secrets b/secrets index cfc7b11..e13ba45 160000 --- a/secrets +++ b/secrets @@ -1 +1 @@ -Subproject commit cfc7b119bd5162a05336165f944f9a44d222e961 +Subproject commit e13ba457d4a3f964df8a34765fd753c6678f6d9e