diff --git a/nix/apps/hugo-chat/default.nix b/nix/apps/hugo-chat/default.nix index 17d3a26..9f78f6b 100644 --- a/nix/apps/hugo-chat/default.nix +++ b/nix/apps/hugo-chat/default.nix @@ -1,36 +1,32 @@ { config, lib, pkgs, ... }: let - dockerLogin = { - registry = "docker.noratrieb.dev"; - username = "nils"; - passwordFile = config.age.secrets.docker_registry_password.path; + jarfile = pkgs.fetchurl { + url = + "https://github.com/C0RR1T/HugoChat/releases/download/2024-08-05/HugoServer.jar"; + hash = "sha256-hCe2UPqrSR6u3/UxsURI2KzRxN5saeTteCRq5Zfay4M="; }; in { age.secrets.hugochat_db_password.file = ../../secrets/hugochat_db_password.age; + systemd.services.hugo-chat-server = { + description = "HugoChat server, a chat platform"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + environment = { + SPRING_DATASOURCE_URL = "jdbc:postgresql://localhost:5003/postgres"; + }; + serviceConfig = { + DynamicUser = true; + ExecStart = "${lib.getExe' pkgs.jdk21 "java"} -jar ${jarfile} --server.port=5001"; + EnvironmentFile = [ config.age.secrets.hugochat_db_password.path ]; + }; + }; + virtualisation.oci-containers.containers = { - hugo-chat-client = { - image = "docker.noratrieb.dev/hugo-chat-client:89ce0b07"; - login = dockerLogin; - ports = [ "127.0.0.1:5002:80" ]; - }; - - hugo-chat-server = { - image = "docker.noratrieb.dev/hugo-chat-server:89ce0b07"; - ports = [ "127.0.0.1:5001:8080" ]; - environment = { - SPRING_DATASOURCE_URL = "jdbc:postgresql://hugo-chat-db:5432/postgres"; - }; - environmentFiles = [ config.age.secrets.hugochat_db_password.path ]; - extraOptions = [ "--network=hugo-chat" ]; - - dependsOn = [ "hugo-chat-db" ]; - login = dockerLogin; - }; - hugo-chat-db = { image = "postgres:16"; + ports = [ "127.0.0.1:5003:5432" ]; volumes = [ "/var/lib/hugo-chat/data:/var/lib/postgresql/data" ]; environment = { PGDATA = "/var/lib/postgresql/data/pgdata"; diff --git a/nix/modules/caddy/default.nix b/nix/modules/caddy/default.nix index 0116fa0..c2f132f 100644 --- a/nix/modules/caddy/default.nix +++ b/nix/modules/caddy/default.nix @@ -15,6 +15,11 @@ let blog = fetchTarball "https://github.com/Noratrieb/blog/archive/${my-projects-versions.blog}.tar.gz"; slides = fetchTarball "https://github.com/Noratrieb/slides/archive/${my-projects-versions.slides}.tar.gz"; website-build = website { inherit pkgs slides blog; }; + hugo-chat-client = fetchTarball { + url = + "https://github.com/C0RR1T/HugoChat/releases/download/2024-08-05/hugo-client.tar.xz"; + sha256 = "sha256:121ai8q6bm7gp0pl1ajfk0k2nrfg05zid61i20z0j5gpb2qyhsib"; + }; in { environment.systemPackages = [ caddy ]; @@ -84,6 +89,23 @@ in '' else "" } + ${if name == "vps1" then '' + hugo-chat.noratrieb.dev { + log + encode zstd gzip + root * ${import ./caddy-static-prepare { + name = "hugo-chat-client"; + src = hugo-chat-client; + inherit pkgs lib; + }} + try_files {path} /index.html + file_server { + etag_file_extensions .sha256 + precompressed zstd gzip br + } + } + '' else ""} + ${ if name == "vps1" || name == "vps3" || name == "vps4" then builtins.readFile ./${name}.Caddyfile else "" diff --git a/nix/modules/caddy/vps1.Caddyfile b/nix/modules/caddy/vps1.Caddyfile index 4b3c58f..11712b2 100644 --- a/nix/modules/caddy/vps1.Caddyfile +++ b/nix/modules/caddy/vps1.Caddyfile @@ -3,12 +3,6 @@ www.noratrieb.dev { redir https://noratrieb.dev{uri} permanent } -hugo-chat.noratrieb.dev { - log - encode zstd gzip - reverse_proxy * localhost:5002 -} - api.hugo-chat.noratrieb.dev { log import cors https://hugo-chat.noratrieb.dev "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"