diff --git a/caddy.nix b/caddy.nix index 2cc1e95..0b69523 100755 --- a/caddy.nix +++ b/caddy.nix @@ -3,6 +3,10 @@ services.caddy = { enable = true; email = "admin@srazka.com"; + extraConfig = '' + # Generated app routes from the panel backend. + import /home/reudy/containers/routes/*.caddy + ''; # Authelia's own login portal virtualHosts."auth.srazka.com".extraConfig = '' diff --git a/configuration.nix b/configuration.nix index d9e729a..867ba85 100644 --- a/configuration.nix +++ b/configuration.nix @@ -9,11 +9,22 @@ pkgs.vim pkgs.git pkgs.agenix + pkgs.podman-compose ]; + virtualisation.podman = { + enable = true; + dockerCompat = true; + defaultNetwork.settings.dns_enabled = true; + }; + + users.groups.panelroutes = { }; + users.users.reudy = { isNormalUser = true; - extraGroups = [ "wheel" ]; #sudo + # Keep home traversable so caddy can import generated snippets from ~/containers/routes. + homeMode = "0755"; + extraGroups = [ "wheel" "podman" "panelroutes" ]; #sudo openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC6TOSFZ+P0oWTa9U3fX/L9c3btv/lCgzPrwKu621aLDjSbWbaddGhAXQtJvl7GJvs7QN52z+icftK94gdeyTbZyzQtY6JNUVmUs5EHlZlYTkAYSFN/rkn6N7/n9aYRN+vd8r0B4IrP5gTPtGglLD16dfukpOgwtQj/eK6tqZpVlZ7LnKK7UaA6a4OXMYgJZAwdzAOfFGfbO++5q+igBdfNJmh5LtYMI6te8AlJGBSVierzeStEzTVbIys1EsyNrEMzAljHBxxco2L7enNmz4xciRNCQ/za5xPmhf8nOoZTIalBziM52DGH6rFzUEBVsqez1U2U4ajVzdSIudOlku4w63YnClHeGNu9AdHJjR7PbIHwui17aGKM/l/Qv/LOWWo+nfO1hbCl0fGZwVkl8p4yR3WM73OWEHn1f+Uc4cWAUDZ/ZDPE0qyA/HAnSA6dfzY66y2evjRBeekA4zcxgmc7Q/2XfKHDYMEKTNkgdO6UAFoUqW4BiyF36FcS1ccjUok= root@DESKTOP-40EVMS3" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJahgKnADam4PGc9TiANkWGx09uNuS42tllj70UuyzPf u0_a279@localhost" @@ -22,6 +33,19 @@ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICKwpcTESCEAiQ+/c8bM9Y2b53nCCl3qFI5KRuEkR+Ya jacob@DESKTOP-40EVMS3" ]; }; + + users.users.caddy.extraGroups = [ "panelroutes" ]; + + systemd.tmpfiles.rules = [ + "d /home/reudy/containers 0750 reudy panelroutes -" + "d /home/reudy/containers/stacks 0750 reudy panelroutes -" + "d /home/reudy/containers/volumes 0750 reudy panelroutes -" + "d /home/reudy/containers/routes 0750 reudy panelroutes -" + "d /home/reudy/containers/state 0750 reudy panelroutes -" + "d /home/reudy/containers/state/apps 0750 reudy panelroutes -" + "f /home/reudy/containers/routes/_placeholder.caddy 0640 reudy panelroutes -" + ]; + security.sudo.wheelNeedsPassword = true;