diff --git a/modules/collections/desktop.nix b/modules/collections/desktop.nix index 7f6bcf1..bbf02dd 100644 --- a/modules/collections/desktop.nix +++ b/modules/collections/desktop.nix @@ -1,7 +1,6 @@ {pkgs, config, ...}: { imports = [ - ../docker.nix #../fh/scanning.nix ../flatpak.nix ../gpg.nix @@ -27,6 +26,9 @@ ip = "192.168.0.11"; dns = "192.168.0.6"; }; + misc = { + docker.enable = true; + }; hardware = { vfio.enable = true; nvidia.enable = true; diff --git a/modules/collections/server.nix b/modules/collections/server.nix index 89b460e..668ce10 100644 --- a/modules/collections/server.nix +++ b/modules/collections/server.nix @@ -18,7 +18,6 @@ #../games/palworld.nix ../backup.nix ../cron.nix - ../docker.nix ../fail2ban.nix ../firewall.nix ../git.nix @@ -47,6 +46,9 @@ dir = "/mnt/1tbssd/kavita"; }; }; + misc = { + docker.enable = true; + }; hardware = { firmware.enable = true; ssd.enable = true; diff --git a/modules/misc/default.nix b/modules/misc/default.nix index 90c9d33..8ee2fce 100644 --- a/modules/misc/default.nix +++ b/modules/misc/default.nix @@ -7,5 +7,6 @@ ./cli-tools.nix ./tmpfs.nix ./static-ip.nix + ./docker.nix ]; } diff --git a/modules/docker.nix b/modules/misc/docker.nix similarity index 64% rename from modules/docker.nix rename to modules/misc/docker.nix index 7274598..2f0ac8d 100644 --- a/modules/docker.nix +++ b/modules/misc/docker.nix @@ -1,9 +1,18 @@ { config, pkgs, lib, inputs, ... }: +with lib; +let + cfg = config.custom.misc.docker; +in { + options.custom.misc.docker = { + enable = mkEnableOption "Enables docker"; + }; + config = lib.mkIf cfg.enable { virtualisation.docker.enable = true; virtualisation.docker.daemon.settings = { ip = "127.0.0.1"; }; environment.systemPackages = with pkgs; [ docker-compose ]; virtualisation.docker.enableNvidia = lib.mkIf config.custom.hardware.nvidia.enable true; + }; } diff --git a/modules/services/default.nix b/modules/services/default.nix index 3dae35a..93ca854 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -5,5 +5,6 @@ ./kubernetes.nix ./kavita.nix ./nginx.nix + ./fileshelter.nix ]; } diff --git a/modules/services/fileshelter.nix b/modules/services/fileshelter.nix new file mode 100644 index 0000000..bbabdf0 --- /dev/null +++ b/modules/services/fileshelter.nix @@ -0,0 +1,29 @@ +{ config, pkgs, lib, inputs, ... }: +with lib; +let + cfg = config.custom.services.fileshelter; +in +{ + options.custom.services.fileshelter = { + enable = mkEnableOption "Enables fileshelter"; + }; + config = lib.mkIf cfg.enable { + age.secrets.fileshelter-conf = { + file = ../../secrets/fileshelter-conf.age; + }; + custom.misc.docker.enable = true; + virtualisation.oci-containers.containers = { + "fileshelter" = { + autoStart = true; + image = "epoupon/fileshelter"; + ports = [ + "127.0.0.1:5091:5091" + ]; + volumes = [ + "/data/fileshelter:/var/fileshelter" + "/run/agenix/fileshelter.conf:/etc/fileshelter.conf" + ]; + }; + }; + }; +} diff --git a/secrets/fileshelter-conf.age b/secrets/fileshelter-conf.age new file mode 100644 index 0000000..b207686 Binary files /dev/null and b/secrets/fileshelter-conf.age differ diff --git a/secrets/secrets.nix b/secrets/secrets.nix index c28a354..55b6e50 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -23,4 +23,5 @@ in "step-ca-pw.age".publicKeys = [ mini-pc server kop ]; "step-ca-key.age".publicKeys = [ mini-pc server kop ]; "grafana-contact-points.age".publicKeys = [ mini-pc server kop ]; + "fileshelter-conf.age".publicKeys = [ mini-pc server kop ]; } diff --git a/systems/mini-pc/configuration.nix b/systems/mini-pc/configuration.nix index c3e465e..4c93461 100644 --- a/systems/mini-pc/configuration.nix +++ b/systems/mini-pc/configuration.nix @@ -32,6 +32,7 @@ services = { acme.enable = true; nginx.enable = true; + fileshelter.enable = true; kavita = { enable = true; dir = "/data/kavita"; @@ -39,6 +40,9 @@ }; nftables.enable = true; cli-tools.enable = true; + misc = { + docker.enable = true; + }; nix = { index.enable = true; ld.enable = true;