diff --git a/nixos/viridian/services/default.nix b/nixos/viridian/services/default.nix index d4e83aa..f2a826d 100644 --- a/nixos/viridian/services/default.nix +++ b/nixos/viridian/services/default.nix @@ -10,6 +10,7 @@ ./mpd ./murmur ./opengist + ./projectsend ./traefik ]; } diff --git a/nixos/viridian/services/projectsend/default.nix b/nixos/viridian/services/projectsend/default.nix new file mode 100644 index 0000000..8fa959f --- /dev/null +++ b/nixos/viridian/services/projectsend/default.nix @@ -0,0 +1,68 @@ +{config, ...}: { + # Environment variables for ProjectSend + age.secrets.projectsend = { + rekeyFile = ./environment.age; + }; + + # Setup for ProjectSend, a file sharing application + virtualisation.oci-containers.containers = { + projectsend = { + image = "linuxserver/projectsend:version-r1720"; + ports = [ + "9684:80" + ]; + volumes = [ + "/var/lib/projectsend/config:/config" + "/var/lib/projectsend/data:/data" + ]; + environment = { + PUID = "1000"; + PGID = "100"; + }; + extraOptions = [ + "--network=projectsend" + ]; + }; + + # MariaDB container for ProjectSend + projectsend-mariadb = { + image = "mariadb:lts-noble"; + volumes = [ + "/var/lib/projectsend/mysql:/var/lib/mysql" + ]; + environmentFiles = [ + config.age.secrets.projectsend.path + ]; + extraOptions = [ + "--network=projectsend" + ]; + }; + }; + + # Network for ProjectSend containers + services.traefik.dynamicConfigOptions.http = { + routers.projectsend = { + rule = "Host(`drop.ps7e.xyz`)"; + entryPoints = [ + "websecure" + ]; + service = "projectsend"; + }; + services.projectsend = { + loadBalancer.servers = [ + {url = "http://127.0.0.1:9684";} + ]; + }; + }; + + # Persistence configuration for ProjectSend + environment.persistence."/persist" = { + directories = [ + { + directory = "/var/lib/projectsend"; + user = "sajenim"; + group = "users"; + } + ]; + }; +} diff --git a/nixos/viridian/services/projectsend/environment.age b/nixos/viridian/services/projectsend/environment.age new file mode 100644 index 0000000..267e541 --- /dev/null +++ b/nixos/viridian/services/projectsend/environment.age @@ -0,0 +1,10 @@ +age-encryption.org/v1 +-> piv-p256 hdSnGw ArF/5zoX1WGrrBvli8JN/BU/zhX+uuSvHUZOr8xWT1jE +AVLiFe7B8jpeqy3twUGoOcuA4XKGv4wT9gKMNIipmuc +-> }S39,Y-grease Y`7mW +bOcAO2gpCv5yHpJyHI2omMPzeRjiTTagCwQfMZST5+D6A1mPk86C99e2bDNv +--- KbkF7enRjL7hkgek9CO5UcIOVZ087ji1oDMGViaThPI + '4[n7Y0YZ͉kzմp]v{_s; +fA +!.۱줮EWwlS ys8lmOlݠJbjݮn:q.8dd_3 +pNY)אțYY \ No newline at end of file