From c79f7bdb4e3cdd1d06fd10becf27610507a11386 Mon Sep 17 00:00:00 2001 From: Cian Hughes Date: Thu, 30 Jan 2025 00:13:28 +0000 Subject: [PATCH] Added properly configured vikunja container --- .sops.yaml | 7 +++++ flake.nix | 12 ++++++++ .../homeserver/containers/work_tools.nix | 29 +++++++------------ home-manager/homeserver/packages.nix | 1 + 4 files changed, 30 insertions(+), 19 deletions(-) create mode 100644 .sops.yaml diff --git a/.sops.yaml b/.sops.yaml new file mode 100644 index 0000000..1417f26 --- /dev/null +++ b/.sops.yaml @@ -0,0 +1,7 @@ +keys: + - &host_key age15x4h66uk6ct3436e6r4l0tkpf86e7jzl3lqd2acndq2jjvq5za3stqg2fy +creation_rules: + - path_regex: secrets\.yaml$ + key_groups: + - age: + - *host_key diff --git a/flake.nix b/flake.nix index a781f46..1ac0cb7 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,8 @@ # Home manager home-manager.url = "github:nix-community/home-manager/release-24.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; + # Add sops for secret management + sops-nix.url = "github:Mic92/sops-nix"; # add phinger hyprcursor flake hyprcursor-phinger.url = "github:jappie3/hyprcursor-phinger"; # add zen browser flake @@ -122,6 +124,16 @@ }; }; modules = [ + inputs.sops-nix.homeManagerModules.sops + { + sops = { + defaultSopsFile = ./secrets.yaml; + secrets = { + # Define your secrets here + vikunja_jwtsecret = {}; + }; + }; + } ./home-manager/homeserver.nix ]; }; diff --git a/home-manager/homeserver/containers/work_tools.nix b/home-manager/homeserver/containers/work_tools.nix index 2826188..401d9ba 100644 --- a/home-manager/homeserver/containers/work_tools.nix +++ b/home-manager/homeserver/containers/work_tools.nix @@ -10,29 +10,20 @@ services.podman.containers = { vikunja = { image = "docker.io/vikunja/vikunja:latest"; + autoUpdate = "registry"; environment = { - VIKUNJA_SERVICE_JWTSECRET = ""; + VIKUNJA_SERVICE_JWTSECRET = config.sops.secrets.vikunja_jwt_secret.path; VIKUNJA_SERVICE_PUBLICURL = "http://bulba.space/"; - # Note the default path is /app/vikunja/vikunja.db. - # This config variable moves it to a different folder so you can use a volume and - # store the database file outside the container so state is persisted even if the container is destroyed. VIKUNJA_DATABASE_PATH = "/db/vikunja.db"; }; + environmentFiles = [ + config.sops.secrets.vikunja_jwt_secret.path + ]; + volumes = [ + "/home/cianh/vikunja/files:/app/vikunja/files" + "/home/cianh/vikunja/db:/db" + ]; + ports = ["3456:3456"]; }; }; - # vikunja: - # image: vikunja/vikunja - # environment: - # VIKUNJA_SERVICE_JWTSECRET: - # VIKUNJA_SERVICE_PUBLICURL: http:/// - # # Note the default path is /app/vikunja/vikunja.db. - # # This config variable moves it to a different folder so you can use a volume and - # # store the database file outside the container so state is persisted even if the container is destroyed. - # VIKUNJA_DATABASE_PATH: /db/vikunja.db - # ports: - # - 3456:3456 - # volumes: - # - ./files:/app/vikunja/files - # - ./db:/db - # restart: unless-stopped } diff --git a/home-manager/homeserver/packages.nix b/home-manager/homeserver/packages.nix index ba31a80..656b7aa 100644 --- a/home-manager/homeserver/packages.nix +++ b/home-manager/homeserver/packages.nix @@ -20,6 +20,7 @@ lua54Packages.lua luajitPackages.luarocks nodejs-slim + sops stylua ]) ++ (with unstablePkgs; [