{ config, ... }: { virtualisation.pods.nextcloud = { hostname = "nextcloud.tlater.net"; publish = [ "3001:80" ]; network = "slirp4netns"; containers = { nextcloud = { image = "nextcloud:fpm-alpine"; dependsOn = [ "postgres" ]; volumes = [ "nextcloud-root:/var/www/html" "nextcloud-apps:/var/www/html/custom_apps" "nextcloud-config:/var/www/html/config" "nextcloud-data:/var/www/html/data" ]; environment = { POSTGRES_DB = "nextcloud"; POSTGRES_USER = "nextcloud"; POSTGRES_HOST = "localhost"; OVERWRITEPROTOCOL = "https"; TRUSTED_PROXIES = "127.0.0.1"; }; }; cron = { image = "nextcloud:fpm-alpine"; entrypoint = "/cron.sh"; dependsOn = [ "postgres" "nextcloud" ]; extraOptions = [ "--volumes-from=nextcloud-nextcloud" ]; }; nginx = { image = "nginx:alpine"; dependsOn = [ "nextcloud" ]; volumes = [ "nextcloud-root:/var/www/html:ro" "${./configs/nginx-nextcloud.conf}:/etc/nginx/nginx.conf:ro" ]; extraOptions = [ "--volumes-from=nextcloud-nextcloud" ]; }; postgres = { image = "postgres:alpine"; environment = { POSTGRES_DB = "nextcloud"; POSTGRES_USER = "nextcloud"; }; volumes = [ "nextcloud-postgres-14:/var/lib/postgresql/data" ]; }; }; }; }