110 lines
4.3 KiB
YAML
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:25.0.5-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
|