Files
2026-03-23 14:29:32 -03:00

98 lines
3.2 KiB
Django/Jinja

services:
nextcloud-db:
image: mariadb:10.11
container_name: nextcloud-db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
environment:
MYSQL_ROOT_PASSWORD: "{{ nextcloud_db_root_password }}"
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: "{{ nextcloud_db_password }}"
volumes:
- {{ nextcloud_data_dir }}/db:/var/lib/mysql
networks:
- internal
logging:
driver: gelf
options:
gelf-address: "udp://{{ graylog_host }}:{{ graylog_gelf_port }}"
tag: "nextcloud-db"
nextcloud-redis:
image: redis:alpine
container_name: nextcloud-redis
restart: unless-stopped
networks:
- internal
nextcloud:
image: nextcloud:{{ nextcloud_version }}
container_name: nextcloud
restart: unless-stopped
depends_on:
- nextcloud-db
- nextcloud-redis
environment:
MYSQL_HOST: nextcloud-db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: "{{ nextcloud_db_password }}"
REDIS_HOST: nextcloud-redis
NEXTCLOUD_ADMIN_USER: "{{ nextcloud_admin_user }}"
NEXTCLOUD_ADMIN_PASSWORD: "{{ nextcloud_admin_password }}"
NEXTCLOUD_TRUSTED_DOMAINS: "{{ nextcloud_domain }}"
OVERWRITEPROTOCOL: https
OVERWRITECLIURL: "https://{{ nextcloud_domain }}"
SMTP_HOST: "{{ smtp_host }}"
SMTP_PORT: "{{ smtp_port }}"
SMTP_NAME: "{{ smtp_user }}"
SMTP_PASSWORD: "{{ smtp_password }}"
MAIL_FROM_ADDRESS: "noreply"
MAIL_DOMAIN: "{{ base_domain }}"
OBJECTSTORE_S3_HOST: minio
OBJECTSTORE_S3_PORT: 9000
OBJECTSTORE_S3_SSL: "false"
OBJECTSTORE_S3_BUCKET: "{{ minio_nextcloud_bucket }}"
OBJECTSTORE_S3_KEY: "{{ minio_nextcloud_access_key }}"
OBJECTSTORE_S3_SECRET: "{{ minio_nextcloud_secret_key }}"
OBJECTSTORE_S3_USEPATH_STYLE: "true"
volumes:
- {{ nextcloud_data_dir }}/data:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.http.routers.nextcloud.rule=Host(`{{ nextcloud_domain }}`)"
- "traefik.http.routers.nextcloud.tls=true"
- "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt"
- "traefik.http.services.nextcloud.loadbalancer.server.port=80"
- "traefik.http.middlewares.nextcloud-redirect.redirectregex.permanent=true"
- "traefik.http.middlewares.nextcloud-redirect.redirectregex.regex=https://(.*)/.well-known/(?:card|cal)dav"
- "traefik.http.middlewares.nextcloud-redirect.redirectregex.replacement=https://$${1}/remote.php/dav"
- "traefik.http.routers.nextcloud.middlewares=nextcloud-redirect"
networks:
- internal
- {{ sovereign_network_name }}
logging:
driver: gelf
options:
gelf-address: "udp://{{ graylog_host }}:{{ graylog_gelf_port }}"
tag: "nextcloud"
nextcloud-cron:
image: nextcloud:{{ nextcloud_version }}
container_name: nextcloud-cron
restart: unless-stopped
volumes:
- {{ nextcloud_data_dir }}/data:/var/www/html
entrypoint: /cron.sh
depends_on:
- nextcloud-db
- nextcloud-redis
networks:
- internal
networks:
internal:
{{ sovereign_network_name }}:
external: true