From c36a3f09dee81bded5256c546c64cc270c09f485 Mon Sep 17 00:00:00 2001 From: Cilly Leang Date: Tue, 16 Jun 2026 23:02:43 +1000 Subject: [PATCH] services/soulbeet: init and add to alyssum --- containers/fluorite/flake.nix | 8 ++++++++ hosts/alyssum/default.nix | 2 ++ modules/default.nix | 1 + modules/services/soulbeet.nix | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 modules/services/soulbeet.nix diff --git a/containers/fluorite/flake.nix b/containers/fluorite/flake.nix index 33fcdb1..8c87fac 100644 --- a/containers/fluorite/flake.nix +++ b/containers/fluorite/flake.nix @@ -6,6 +6,7 @@ let name = "fluorite"; fqdn = "fluorite.lava.moe"; + altfqdn = hostname: "fluorite.${hostname}.lava.moe"; subnetId = "6"; subnet = x: "fd0d:1::${subnetId}:${toString x}"; @@ -42,6 +43,13 @@ listenAddresses = [ "10.0.0.1" "[fd0d::1]" "100.67.1.1" ]; }; + services.nginx.virtualHosts."${altfqdn config.networking.hostname}" = { + useACMEHost = "lava.moe"; + forceSSL = true; + locations."/".proxyPass = "http://[${client}]:5030"; + listenAddresses = [ "10.0.0.1" "[fd0d::1]" "100.67.1.1" ]; + }; + systemd.tmpfiles.rules = [ "d /persist/containers/${name} 755 root users" "d /persist/media/music 075 nobody users" diff --git a/hosts/alyssum/default.nix b/hosts/alyssum/default.nix index 3eb7289..2deecfb 100644 --- a/hosts/alyssum/default.nix +++ b/hosts/alyssum/default.nix @@ -24,8 +24,10 @@ tailscale modules.services.nginx + modules.services.soulbeet modules.services.syncthing + inputs.c-fluorite.nixosModule inputs.c-garnet.nixosModule ./filesystem.nix diff --git a/modules/default.nix b/modules/default.nix index 6775c55..c52cde3 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -22,6 +22,7 @@ in { ./services/nginx.nix ./services/postgres.nix ./services/sonarr.nix + ./services/soulbeet.nix ./services/synapse.nix ./services/syncthing.nix ./services/tmptsync.nix diff --git a/modules/services/soulbeet.nix b/modules/services/soulbeet.nix new file mode 100644 index 0000000..57b7cc0 --- /dev/null +++ b/modules/services/soulbeet.nix @@ -0,0 +1,32 @@ +{ ... }: +let + dir_data = "/persist/services/soulbeet/data"; + dir_downloads = "/persist/containers/fluorite/slskd/downloads"; + dir_music = "/persist/media/music"; +in { + systemd.tmpfiles.rules = [ + "d ${dir_data} 700 root root" + "d ${dir_downloads} 755 root users" + "d ${dir_music} 075 nobody users" + ]; + virtualisation.oci-containers.backend = "docker"; + virtualisation.oci-containers.containers = { + container-name = { + image = "docker.io/docccccc/soulbeet:latest"; + autoStart = true; + ports = [ "9765:9765" ]; + environment = { + DATABASE_URL = "sqlite:/data/soulbeet.db"; + DOWNLOAD_PATH = "/downloads"; + SECRET_KEY = "change-me-in-production"; + NAVIDROME_URL = "http://navidrome:4533"; + BEETS_CONFIG = "/config/config.yaml"; + }; + volumes = [ + "${dir_data}:/data" + "${dir_downloads}:/downloads" + "${dir_music}:/music" + ]; + }; + }; +}