6e7de6bbd5
deployment note: - use nextcloud for groupware - consider replacing vikunja and opencloud
48 lines
1.8 KiB
Django/Jinja
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
|