digitaldemocratic/dd-apps/docker/nextcloud/nextcloud.yml

110 lines
4.3 KiB
YAML

#
# Copyright © 2021,2022 IsardVDI S.L.
# Copyright © 2023 Evilham <contact@evilham.com>
#
# This file is part of DD
#
# DD is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# DD is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License
# along with DD. If not, see <https://www.gnu.org/licenses/>.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
version: '3.7'
services:
dd-apps-nextcloud-app:
build:
context: ${BUILD_APPS_ROOT_PATH}/docker/nextcloud
dockerfile: Dockerfile
args:
# Update dd.conf.sample when bumping this version in main
- IMG=${NEXTCLOUD_IMG_OVERRIDE-nextcloud:24.0.10-fpm-alpine}
container_name: dd-apps-nextcloud-app
image: registry.dd-work.space/dd/apps-nextcloud:${DD_BUILD:-latest}
restart: unless-stopped
depends_on:
- dd-apps-postgresql
volumes:
- /etc/localtime:/etc/localtime:ro
# According to the documentation: https://hub.docker.com/_/nextcloud
# We need the full dir for upgrades, only version.php should matter though?
- ${SRC_FOLDER}/nextcloud:/var/www/html
# Making these dirs explicit so we can segregate them easier in the future
#- ${SRC_FOLDER}/nextcloud/custom_apps:/var/www/html/custom_apps
#- ${SRC_FOLDER}/nextcloud/config:/var/www/html/config
- ${DATA_FOLDER}/nextcloud:/var/www/html/data:rw
- ${BUILD_APPS_ROOT_PATH}/docker/nextcloud/src/themes/dd:/var/www/html/themes/dd:ro
# We need this to configure the custom logos and background
- ${CUSTOM_PATH}/custom/img:/custom/img:ro
# SAML certificates
- ${DATA_FOLDER}/saml/nextcloud:/saml:ro
# NC mail client update queue
- ${DATA_FOLDER}/nc-mail-queue:/nc-mail-queue:rw
environment:
# DD-specific settings
- DOMAIN=${DOMAIN}
# General Nextcloud settings
- NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}
- NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}
- POSTGRES_DB=nextcloud
- POSTGRES_USER=${NEXTCLOUD_POSTGRES_USER}
- POSTGRES_PASSWORD=${NEXTCLOUD_POSTGRES_PASSWORD}
- POSTGRES_HOST=dd-apps-postgresql
- REDIS_HOST=dd-apps-redis
- NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.${DOMAIN}
# SMTP settings
- SMTP_HOST=${SMTP_HOST}
- SMTP_PORT=${SMTP_PORT}
- SMTP_SECURE=${SMTP_PROTOCOL}
- SMTP_NAME=${SMTP_USER}
- SMTP_PASSWORD=${SMTP_PASSWORD}
- MAIL_FROM_ADDRESS=${SMTP_LOCAL_PART}
- MAIL_DOMAIN=${SMTP_DOMAIN}
# PHP-specific settings
- PHP_UPLOAD_LIMIT=${NEXTCLOUD_UPLOAD_LIMIT-512M}
- PHP_MEMORY_LIMIT=${NEXTCLOUD_MEMORY_LIMIT-512M}
# Proxy-specific settings
- OVERWRITEPROTOCOL=https
# BBB settings
- BBB_HOST=${BBB_HOST:-}
- BBB_API_SECRET=${BBB_API_SECRET:-}
# Operator preferences
- EXTRA_PLUGINS_ENABLE=${NEXTCLOUD_PLUGINS_ENABLE:-}
- EXTRA_PLUGINS_DISABLE=${NEXTCLOUD_PLUGINS_DISABLE:-}
networks:
- dd_net
dd-apps-nextcloud-nginx:
image: ${NGINX_ALPINE_IMG-nginx:1.22.1-alpine}
container_name: dd-apps-nextcloud-nginx
restart: unless-stopped
links:
- dd-apps-nextcloud-app
volumes:
# Customised nginx config
- ${BUILD_APPS_ROOT_PATH}/docker/nextcloud/nginx.conf:/etc/nginx/nginx.conf:ro
# By mounting these, nginx can serve static files when possible
- ${SRC_FOLDER}/nextcloud:/var/www/html:ro
- ${BUILD_APPS_ROOT_PATH}/docker/nextcloud/src/themes/dd:/var/www/html/themes/dd:ro
# This image does not require access to any environment variables
environment: []
healthcheck:
test: |
curl -L --max-redirs 1 \
--proxy-basic 'http://localhost:8080' \
-sw '%{redirect_url}' \
'https://nextcloud.${DOMAIN}/login' | grep -q 'https://sso.${DOMAIN}'
interval: 30s
timeout: 10s
retries: 5
networks:
- dd_net