Files
ilnmors-homelab/config/services/containers/app/nextcloud/nextcloud.container.j2
T
il 6e7de6bbd5 feat(nextcloud): release nextcloud
deployment note:
- use nextcloud for groupware
- consider replacing vikunja and opencloud
2026-05-02 16:42:30 +09:00

48 lines
1.8 KiB
Django/Jinja

[Quadlet]
DefaultDependencies=false
[Unit]
Description=Nextcloud
[Container]
Image=docker.io/library/nextcloud:{{ version['containers']['nextcloud'] }}
ContainerName=nextcloud
HostName=nextcloud
PublishPort={{ services['nextcloud']['ports']['http'] }}:80
Volume=%h/containers/nextcloud/ssl:/etc/ssl/nextcloud:ro
Volume=%h/data/containers/nextcloud/html:/var/www/html:rw
# General
Environment="TZ=Asia/Seoul"
Environment="NEXTCLOUD_TRUSTED_DOMAINS={{ services['nextcloud']['domain']['public'] }}.{{ domain['public'] }}"
Environment="OVERWRITEHOST={{ services['nextcloud']['domain']['public'] }}.{{ domain['public'] }}"
Environment="OVERWRITEPROTOCOL=https"
Environment="OVERWRITECLIURL=https://{{ services['nextcloud']['domain']['public'] }}.{{ domain['public'] }}"
# Initial admin
Environment="NEXTCLOUD_ADMIN_USER=admin-local"
Environment="NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/ADMIN_PASSWORD"
Secret=NEXTCLOUD_ADMIN_PASSWORD,target=/run/secrets/ADMIN_PASSWORD
# PostgreSQL
Environment="POSTGRES_HOST={{ services['postgresql']['domain'] }}.{{ domain['internal'] }}:{{ services['postgresql']['ports']['tcp'] }}"
Environment="POSTGRES_DB=nextcloud_db"
Environment="POSTGRES_USER=nextcloud"
Environment="POSTGRES_PASSWORD_FILE=/run/secrets/DB_PASSWORD"
Secret=NEXTCLOUD_DB_PASSWORD,target=/run/secrets/DB_PASSWORD
Environment="PGSSLMODE=verify-full"
Environment="PGSSLROOTCERT=/etc/ssl/nextcloud/{{ root_cert_filename }}"
## libpq in Nextcloud automatically tries to use a client certificate for mTLS. Therefore, when only TLS is required, then disable the option explicitly.
Environment="PGSSLCERTMODE=disable"
# Redis
Environment="REDIS_HOST=host.containers.internal"
Environment="REDIS_HOST_PORT={{ services['nextcloud']['ports']['redis'] }}"
[Service]
Restart=always
RestartSec=10s
TimeoutStopSec=120
[Install]
WantedBy=default.target