From ae341630bd528db7ff514d9afb324a0550c3a61d Mon Sep 17 00:00:00 2001 From: Yan Lin Date: Sun, 7 Sep 2025 10:53:51 +0200 Subject: [PATCH] Add nextcloud stack --- modules/podman.nix | 52 +++++++++++++++++++++++++++++++++++++++++++++ modules/traefik.nix | 17 +++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/modules/podman.nix b/modules/podman.nix index f4a3fc1..81385e5 100644 --- a/modules/podman.nix +++ b/modules/podman.nix @@ -365,6 +365,58 @@ autoStart = true; }; + + # Nextcloud cloud storage and file sharing + containers.cloud = { + image = "docker.io/linuxserver/nextcloud:latest"; + + volumes = [ + "/home/yanlin/deploy/data/cloud/config:/config" + "/mnt/storage/appbulk/cloud:/data" + ]; + + environment = { + PUID = "1000"; + PGID = "100"; + TZ = "Europe/Copenhagen"; + }; + + ports = [ + "5001:80" + ]; + + extraOptions = [ + "--network=podman" + ]; + + dependsOn = [ "cloud-db" ]; + autoStart = true; + }; + + # MariaDB database for Nextcloud + containers.cloud-db = { + image = "docker.io/linuxserver/mariadb:latest"; + + volumes = [ + "/home/yanlin/deploy/data/cloud/db:/config" + ]; + + environment = { + PUID = "1000"; + PGID = "100"; + TZ = "Europe/Copenhagen"; + MYSQL_ROOT_PASSWORD = "nextcloud"; + MYSQL_DATABASE = "nextcloud"; + MYSQL_USER = "nextcloud"; + MYSQL_PASSWORD = "nextcloud"; + }; + + extraOptions = [ + "--network=podman" + ]; + + autoStart = true; + }; }; }; } diff --git a/modules/traefik.nix b/modules/traefik.nix index 875f0b8..0410956 100644 --- a/modules/traefik.nix +++ b/modules/traefik.nix @@ -171,6 +171,16 @@ }]; }; }; + cloud = { + rule = "Host(`cloud.hs.yanlincs.com`)"; + service = "cloud"; + tls = { + certResolver = "cloudflare"; + domains = [{ + main = "*.hs.yanlincs.com"; + }]; + }; + }; }; services = { homeassistant = { @@ -250,6 +260,13 @@ }]; }; }; + cloud = { + loadBalancer = { + servers = [{ + url = "http://localhost:5001"; + }]; + }; + }; }; }; };