From 8389336215c6abaa8224efe6a8aab725434dd663 Mon Sep 17 00:00:00 2001 From: Richie Cahill Date: Mon, 27 May 2024 16:08:29 -0400 Subject: [PATCH] added web.nix --- systems/jeeves/docker/default.nix | 1 + systems/jeeves/docker/web.nix | 72 +++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 systems/jeeves/docker/web.nix diff --git a/systems/jeeves/docker/default.nix b/systems/jeeves/docker/default.nix index 36914b9..50b46c6 100644 --- a/systems/jeeves/docker/default.nix +++ b/systems/jeeves/docker/default.nix @@ -2,6 +2,7 @@ imports = [ ./filebrowser.nix ./internal.nix + ./web.nix ]; virtualisation.oci-containers.backend = "docker"; diff --git a/systems/jeeves/docker/web.nix b/systems/jeeves/docker/web.nix new file mode 100644 index 0000000..638dc5e --- /dev/null +++ b/systems/jeeves/docker/web.nix @@ -0,0 +1,72 @@ +{ + virtualisation.oci-containers.containers = { + qbit = { + image = "ghcr.io/linuxserver/qbittorrent"; + ports = [ + "6881:6881" + "6881:6881/udp" + "8082:8082" + "29432:29432" + ]; + volumes = [ + "/ZFS/Media/Docker/Docker/Storage/qbit:/config" + "/ZFS/Torenting/Qbit/:/data" + ]; + environment = { + PUID = "998"; + PGID = "100"; + TZ = "America/New_York"; + WEBUI_PORT = "8082"; + }; + autoStart = true; + }; + grafana = { + image = "grafana/grafana-enterprise"; + volumes = [ "/ZFS/Media/Docker/Docker/Storage/grafana:/var/lib/grafana" ]; + user = "998:998"; + autoStart = true; + }; + dnd_file_server = { + image = "ubuntu/apache2:latest"; + volumes = [ + "/ZFS/Media/Docker/Docker/templates/file_server/sites/:/etc/apache2/sites-enabled/" + "/ZFS/Storage/Main/Table_Top/:/data" + ]; + autoStart = true; + }; + arch_mirror = { + image = "ubuntu/apache2:latest"; + volumes = [ + "/ZFS/Media/Docker/Docker/templates/file_server/sites/:/etc/apache2/sites-enabled/" + "/ZFS/Media/Mirror/:/data" + ]; + ports = [ "800:80" ]; + autoStart = true; + }; + haproxy = { + image = "haproxy:latest"; + user = "998:998"; + environment = { + TZ = "Etc/EST"; + }; + volumes = [ + "/ZFS/Media/Docker/Docker/jeeves/web/haproxy/cloudflare.pem:/etc/ssl/certs/cloudflare.pem" + "/ZFS/Media/Docker/Docker/jeeves/web/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg" + "/ZFS/Media/Docker/Docker/jeeves/web/haproxy/API:/run/haproxy/" + ]; + dependsOn = [ + "grafana" + "arch_mirror" + "dnd_file_server" + ]; + autoStart = true; + }; + cloud_flare_tunnel = { + image = "cloudflare/cloudflared:latest"; + command = "tunnel run"; + environmentFiles = [ "/ZFS/Media/Docker/Docker/jeeves/web/cloudflare_tunnel.env" ]; + dependsOn = [ "haproxy" ]; + autoStart = true; + }; + }; +}