diff --git a/config/nixos/docker/default.nix b/config/nixos/docker/default.nix index 782acad..b9174fd 100644 --- a/config/nixos/docker/default.nix +++ b/config/nixos/docker/default.nix @@ -9,6 +9,7 @@ ./gitea.nix ./golink.nix ./plex.nix + ./upnp.nix ]; } # TODO: Import all the package modules, disabled for testing one by one. diff --git a/config/nixos/docker/upnp.nix b/config/nixos/docker/upnp.nix new file mode 100644 index 0000000..6846916 --- /dev/null +++ b/config/nixos/docker/upnp.nix @@ -0,0 +1,19 @@ +{ config, pkgs, ... }: + +{ + environment.etc."docker/upnp/docker-compose.yml".source = ./upnp/docker-compose.yml; + + systemd.services.upnp = { + description = "UPnP Docker Compose Service"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + serviceConfig = { + ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/upnp/docker-compose.yml up"; + ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/upnp/docker-compose.yml down"; + WorkingDirectory = "/etc/docker/upnp"; + Restart = "always"; + RestartSec = 10; + }; + wantedBy = [ "multi-user.target" ]; + }; +} diff --git a/config/nixos/docker/upnp/docker-compose.yml b/config/nixos/docker/upnp/docker-compose.yml new file mode 100644 index 0000000..0087e7f --- /dev/null +++ b/config/nixos/docker/upnp/docker-compose.yml @@ -0,0 +1,13 @@ +name: upnp +services: + service: + image: ghcr.io/vleeuwenmenno/auto-upnp:latest + restart: unless-stopped + network_mode: host + environment: + UPNP_DURATION: 86400 # 24 hours in seconds + PORTS: | + [ + {"port": 80, "protocol": "tcp"}, + {"port": 443, "protocol": "tcp"} + ] \ No newline at end of file