Files
public/stacks/productivity/nextcloud/docker-compose.yaml
thesabear bebcd714af Restructure compose mirror: stacks/ grouped by purpose, not by host
Replaces rocky-docker-lxc/, caddy-vm/, monitoring-vm/, and automation/
with a single stacks/ tree grouped by function (identity-and-security,
platform, media, productivity, dev-tools) - 55 stacks total, every one
a real directory in the private repos today.

Resolves all outstanding drift: adds Wazuh (previously entirely
missing), Firefly III and Postiz (never mirrored), the internal-zone
Caddy instance and the Cron Scheduler's separate NocoDB instance
(both previously conflated with their counterparts under one shared
folder); renames Calibre-Web to calibre-web-automated and splits
Kodi-MariaDB into kodi + mariadb-latest to match what the private
repos actually run now; drops the decommissioned NetBox stack.

Also removes automation/iac/old-content/ and
automation/ansible/old-playbooks/ in the same pass - both folders
were entirely stale content describing a superseded architecture
(GitLab instead of Gitea, HAProxy+mTLS SSO instead of the current
Caddy+Authentik setup), now replaced by docs/iac-pipeline.md.
2026-08-22 07:44:11 +03:00

83 lines
2.1 KiB
YAML

name: nextcloud
services:
db:
image: lscr.io/linuxserver/mariadb:latest
container_name: nextcloud_db
volumes:
- /path/to/nextcloud/data/db:/var/lib/mysql
- /path/to/nextcloud/data/db-config:/config
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- TZ=${TZ}
restart: unless-stopped
networks:
- nextcloud-net
redis:
image: redis:alpine
container_name: nextcloud_redis
environment:
- "TZ"
volumes:
- /path/to/nextcloud/data/redis:/data
restart: unless-stopped
networks:
- nextcloud-net
# Main Nextcloud container (custom image with SMB + cert trust)
nextcloud:
build:
context: ./nextcloud
dockerfile: Dockerfile
container_name: nextcloud
depends_on:
- db
- redis
volumes:
- /path/to/nextcloud/html:/var/www/html
- /path/to/nextcloud/html/data:/var/www/html/data
- /path/to/nextcloud/html/config:/var/www/html/config
- /path/to/nextcloud/html/custom_apps:/var/www/html/custom_apps
- /path/to/nextcloud/html/themes:/var/www/html/themes
env_file:
- ".env"
environment:
- "TZ"
- "DB_TYPE=mysql"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
restart: unless-stopped
networks:
- nextcloud-net
- caddy-net
euro-office:
build:
context: ./euro-office
dockerfile: Dockerfile
container_name: nextcloud_euro-office
restart: unless-stopped
ports:
- "8080:80"
environment:
- JWT_ENABLED=true
- JWT_SECRET=${ONLYOFFICE_JWT_SECRET}
volumes:
- /path/to/nextcloud/euro-office/data:/var/lib/euro-office/documentserver
- /path/to/nextcloud/euro-office/logs:/var/log/euro-office/documentserver
- /path/to/nextcloud/euro-office/config:/etc/euro-office/documentserver
networks:
- nextcloud-net
- caddy-net
networks:
nextcloud-net:
external: true
caddy-net:
external: true