From d0c690a99079b17cc5eff45070b4523d4ed5703f Mon Sep 17 00:00:00 2001 From: Menno van Leeuwen Date: Tue, 5 Nov 2024 23:25:14 +0100 Subject: [PATCH] adds factorio adds duplicati adds golink updates vpn config --- config/nixos/docker/default.nix | 7 ++++++- config/nixos/docker/duplicati.nix | 19 +++++++++++++++++++ .../nixos/docker/duplicati/docker-compose.yml | 13 +++++++++++++ config/nixos/docker/factorio.nix | 19 +++++++++++++++++++ .../nixos/docker/factorio/docker-compose.yml | 16 ++++++++++++++++ config/nixos/docker/golink.nix | 19 +++++++++++++++++++ config/nixos/docker/golink/docker-compose.yml | 8 ++++++++ config/nixos/docker/vpn.nix | 2 +- .../{vpn.yml => vpn/docker-compose.yml} | 0 9 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 config/nixos/docker/duplicati.nix create mode 100644 config/nixos/docker/duplicati/docker-compose.yml create mode 100644 config/nixos/docker/factorio.nix create mode 100644 config/nixos/docker/factorio/docker-compose.yml create mode 100644 config/nixos/docker/golink.nix create mode 100644 config/nixos/docker/golink/docker-compose.yml rename config/nixos/docker/{vpn.yml => vpn/docker-compose.yml} (100%) diff --git a/config/nixos/docker/default.nix b/config/nixos/docker/default.nix index e02bd09..b698360 100644 --- a/config/nixos/docker/default.nix +++ b/config/nixos/docker/default.nix @@ -1,4 +1,9 @@ { ... }: { - imports = [ ./vpn.nix ]; + imports = [ + ./vpn.nix + ./duplicati.nix + ./factorio.nix + ./golink.nix + ]; } diff --git a/config/nixos/docker/duplicati.nix b/config/nixos/docker/duplicati.nix new file mode 100644 index 0000000..6409c05 --- /dev/null +++ b/config/nixos/docker/duplicati.nix @@ -0,0 +1,19 @@ +{ config, pkgs, ... }: + +{ + environment.etc."docker/duplicati".source = ./duplicati; + + systemd.services.duplicati = { + description = "Duplicati Backup Server Docker Compose Service"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + serviceConfig = { + ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/duplicati/docker-compose.yml up"; + ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/duplicati/docker-compose.yml down"; + WorkingDirectory = "/etc/docker/duplicati"; + Restart = "always"; + RestartSec = 10; + }; + wantedBy = [ "multi-user.target" ]; + }; +} diff --git a/config/nixos/docker/duplicati/docker-compose.yml b/config/nixos/docker/duplicati/docker-compose.yml new file mode 100644 index 0000000..d2d7396 --- /dev/null +++ b/config/nixos/docker/duplicati/docker-compose.yml @@ -0,0 +1,13 @@ +services: + duplicati: + image: lscr.io/linuxserver/duplicati:latest + environment: + - TZ=Europe/Amsterdam + - CLI_ARGS= + volumes: + - ./config:/config + - /mnt:/source/mnt + - /etc/docker:/source/etc/docker + ports: + - 8200:8200 + restart: unless-stopped diff --git a/config/nixos/docker/factorio.nix b/config/nixos/docker/factorio.nix new file mode 100644 index 0000000..3d87e20 --- /dev/null +++ b/config/nixos/docker/factorio.nix @@ -0,0 +1,19 @@ +{ config, pkgs, ... }: + +{ + environment.etc."docker/factorio".source = ./factorio; + + systemd.services.factorio = { + description = "Factorio Server Manager Docker Compose Service"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + serviceConfig = { + ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/factorio/docker-compose.yml up"; + ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/factorio/docker-compose.yml down"; + WorkingDirectory = "/etc/docker/factorio"; + Restart = "always"; + RestartSec = 10; + }; + wantedBy = [ "multi-user.target" ]; + }; +} diff --git a/config/nixos/docker/factorio/docker-compose.yml b/config/nixos/docker/factorio/docker-compose.yml new file mode 100644 index 0000000..e03dc61 --- /dev/null +++ b/config/nixos/docker/factorio/docker-compose.yml @@ -0,0 +1,16 @@ +services: + factorio-server-manager: + image: "ofsm/ofsm:latest" + container_name: "factorio-server-manager" + restart: "unless-stopped" + environment: + - "FACTORIO_VERSION=stable" + ports: + - "5080:80" + - "34197:34197/udp" + volumes: + - "./fsm:/opt/fsm-data" + - "./saves:/opt/factorio/saves" + - "./mods:/opt/factorio/mods" + - "./config:/opt/factorio/config" + - "./mod_packs:/opt/fsm/mod_packs" diff --git a/config/nixos/docker/golink.nix b/config/nixos/docker/golink.nix new file mode 100644 index 0000000..f45d50f --- /dev/null +++ b/config/nixos/docker/golink.nix @@ -0,0 +1,19 @@ +{ config, pkgs, ... }: + +{ + environment.etc."docker/golink".source = ./golink; + + systemd.services.golink = { + description = "GoLink Docker Compose Service"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + serviceConfig = { + ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/golink/docker-compose.yml up"; + ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/golink/docker-compose.yml down"; + WorkingDirectory = "/etc/docker/golink"; + Restart = "always"; + RestartSec = 10; + }; + wantedBy = [ "multi-user.target" ]; + }; +} diff --git a/config/nixos/docker/golink/docker-compose.yml b/config/nixos/docker/golink/docker-compose.yml new file mode 100644 index 0000000..2ed3356 --- /dev/null +++ b/config/nixos/docker/golink/docker-compose.yml @@ -0,0 +1,8 @@ +services: + golink: + image: ghcr.io/tailscale/golink:main + environment: + - TS_AUTHKEY=${TS_AUTHKEY} + volumes: + - ./data:/home/nonroot + restart: "unless-stopped" diff --git a/config/nixos/docker/vpn.nix b/config/nixos/docker/vpn.nix index 952d1ce..35777e0 100644 --- a/config/nixos/docker/vpn.nix +++ b/config/nixos/docker/vpn.nix @@ -1,7 +1,7 @@ { config, pkgs, ... }: { - environment.etc."docker/vpn/docker-compose.yml".source = ./vpn.yml; + environment.etc."docker/vpn".source = ./vpn; systemd.services.wireguard = { description = "Wireguard Docker Compose Service"; diff --git a/config/nixos/docker/vpn.yml b/config/nixos/docker/vpn/docker-compose.yml similarity index 100% rename from config/nixos/docker/vpn.yml rename to config/nixos/docker/vpn/docker-compose.yml