diff --git a/nixos/docker/homepage/compose.nix b/nixos/docker/homepage/compose.nix index f4dec3d..c138090 100644 --- a/nixos/docker/homepage/compose.nix +++ b/nixos/docker/homepage/compose.nix @@ -1,69 +1,67 @@ # Auto-generated using compose2nix v0.3.1. -{ pkgs, lib, ... }: { +{ pkgs, lib, ... }: + +{ # Runtime virtualisation.docker = { - enable = true; - autoPrune.enable = true; + enable = true; + autoPrune.enable = true; }; virtualisation.oci-containers.backend = "docker"; # Containers virtualisation.oci-containers.containers."homepage" = { - image = "ghcr.io/gethomepage/homepage:latest"; - volumes = [ - "/etc/homepage-dashboard:/app/config:rw" - "/home/rae/.dotfiles/assets/wallpapers:/app/public/images:rw" - "/var/run/docker.sock:/var/run/docker.sock:rw" - ]; - ports = [ - "3000:3000/tcp" - ]; - log-driver = "journald"; - extraOptions = [ - "--network-alias=homepage" - "--network=homepage_default" - ]; + image = "ghcr.io/gethomepage/homepage:latest"; + volumes = [ + "/etc/homepage-dashboard:/app/config:rw" + "/var/run/docker.sock:/var/run/docker.sock:rw" + ]; + log-driver = "journald"; + extraOptions = [ + "--network-alias=homepage" + "--network=homepage_default" + ]; }; systemd.services."docker-homepage" = { - serviceConfig = { - Restart = lib.mkOverride 90 "no"; - }; - after = [ - "docker-network-homepage_default.service" - ]; - requires = [ - "docker-network-homepage_default.service" - ]; - partOf = [ - "docker-compose-homepage-root.target" - ]; - wantedBy = [ - "docker-compose-homepage-root.target" - ]; + serviceConfig = { + Restart = lib.mkOverride 90 "no"; + }; + after = [ + "docker-network-homepage_default.service" + ]; + requires = [ + "docker-network-homepage_default.service" + ]; + partOf = [ + "docker-compose-homepage-root.target" + ]; + wantedBy = [ + "docker-compose-homepage-root.target" + ]; }; # Networks systemd.services."docker-network-homepage_default" = { - path = [ pkgs.docker ]; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - ExecStop = "docker network rm -f homepage_default"; - }; - script = '' - docker network inspect homepage_default || docker network create homepage_default - ''; - partOf = [ "docker-compose-homepage-root.target" ]; - wantedBy = [ "docker-compose-homepage-root.target" ]; + path = [ pkgs.docker ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStop = "docker network rm -f homepage_default"; + }; + script = '' + docker network inspect homepage_default || docker network create homepage_default + ''; + partOf = [ "docker-compose-homepage-root.target" ]; + wantedBy = [ "docker-compose-homepage-root.target" ]; }; # Root service # When started, this will automatically create all resources and start # the containers. When stopped, this will teardown all resources. systemd.targets."docker-compose-homepage-root" = { - unitConfig = { - Description = "Root target generated by compose2nix."; - }; - wantedBy = [ "multi-user.target" ]; + unitConfig = { + Description = "Root target generated by compose2nix."; + }; + wantedBy = [ "multi-user.target" ]; }; } diff --git a/nixos/docker/homepage/default.nix b/nixos/docker/homepage/default.nix index 60ad5e1..e8900bf 100644 --- a/nixos/docker/homepage/default.nix +++ b/nixos/docker/homepage/default.nix @@ -4,6 +4,10 @@ in { options.r5e.containers.homepage = { enable = lib.mkEnableOption "homepage"; + listenPort = { + type = lib.types.int; + default = 3000; + }; openFirewall = lib.mkOption { type = lib.types.bool; default = false; @@ -18,6 +22,10 @@ in { description = "See https://gethomepage.dev/widgets/"; default = []; }; + imagesDir = lib.mkOption { + type = lib.types.path; + default = ""; + } }; config = lib.mkMerge [ @@ -29,7 +37,12 @@ in { }; networking.firewall = lib.mkIf cfg.openFirewall { - allowedTCPPorts = [ 3000 ]; + allowedTCPPorts = [ builtins.toString cfg.listenPort ]; + }; + + virtualisation.oci-containers.containers.homepage = { + ports = [ builtins.toString cfg.listenPort + ":3000/tcp" ]; + volumes = lib.mkIf cfg.imagesDir [ builtins.toString cfg.imagesDir + "/app/public/images:rw" ]; }; } ]; diff --git a/nixos/docker/homepage/docker-compose.yml b/nixos/docker/homepage/docker-compose.yml index 055a5b5..57bd5d7 100644 --- a/nixos/docker/homepage/docker-compose.yml +++ b/nixos/docker/homepage/docker-compose.yml @@ -8,4 +8,3 @@ services: volumes: - /etc/homepage-dashboard:/app/config # Make sure your local config directory exists - /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations - - /home/rae/.dotfiles/assets/wallpapers:/app/public/images diff --git a/nixos/hosts/near/configuration.nix b/nixos/hosts/near/configuration.nix index 99b3873..f202beb 100644 --- a/nixos/hosts/near/configuration.nix +++ b/nixos/hosts/near/configuration.nix @@ -18,6 +18,7 @@ # maybe make your own dashboard page yourself or something homepage = { enable = false; + listenPort = 80; openFirewall = true; settings = { title = "near"; @@ -51,6 +52,7 @@ }; } ]; + imagesDir = /home/rae/.dotfiles/assets/wallpapers; }; };