Files
portainer-core/stacks/nextcloud.yml
T

100 lines
2.9 KiB
YAML

version: '3.8'
# Nextcloud - Cloud Storage with Database and Redis
# Backlog: Application Deployment
# Ports: 8082
# GPU: No
# Storage: SSD (config/database), HDD (user data)
services:
nextcloud-db:
image: mariadb:10.11
container_name: nextcloud-db
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
restart: unless-stopped
volumes:
# Database on SSD for performance
- /home/jpmschweitzer/docker-data/nextcloud/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=xDgobrmzXOl+GgvBdXC9+z5v0OrWb29t
- MYSQL_PASSWORD=maF91Sw9is6Zb57JVxU/gPGP8O/DsxFq
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- TZ=Europe/Amsterdam
networks:
- nextcloud-network
nextcloud-redis:
image: redis:alpine
container_name: nextcloud-redis
restart: unless-stopped
environment:
- TZ=Europe/Amsterdam
networks:
- nextcloud-network
nextcloud:
image: nextcloud:stable
container_name: nextcloud
restart: unless-stopped
ports:
- "8082:80"
volumes:
# App config on SSD
- /home/jpmschweitzer/docker-data/nextcloud/config:/var/www/html
# User data on HDD (large files)
- /mnt/media/nextcloud/data:/var/www/html/data
environment:
- MYSQL_HOST=nextcloud-db
- MYSQL_PASSWORD=maF91Sw9is6Zb57JVxU/gPGP8O/DsxFq
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- REDIS_HOST=nextcloud-redis
- TZ=Europe/Amsterdam
depends_on:
- nextcloud-db
- nextcloud-redis
networks:
- nextcloud-network
networks:
nextcloud-network:
driver: bridge
# ⚠️ SECURITY WARNING:
# Change MYSQL_ROOT_PASSWORD and MYSQL_PASSWORD before deploying!
# Use strong, unique passwords.
#
# After Deployment:
# 1. Access http://localhost:8082
# 2. First-time setup:
# - Create admin account (strong password!)
# - Data folder: /var/www/html/data (default)
# - Database: MySQL/MariaDB
# - Database user: nextcloud
# - Database password: (the one you set above)
# - Database name: nextcloud
# - Database host: nextcloud-db
# 3. Wait for installation (may take a few minutes)
# 4. Configure trusted domains:
# docker exec -u www-data nextcloud php occ config:system:set trusted_domains 1 --value=tower-of-joy
# docker exec -u www-data nextcloud php occ config:system:set trusted_domains 2 --value=192.168.x.x
#
# Optimization (recommended):
# docker exec -u www-data nextcloud php occ db:add-missing-indices
# docker exec -u www-data nextcloud php occ db:convert-filecache-bigint
# docker exec -u www-data nextcloud php occ background:cron
#
# Add cron job for background tasks:
# echo "*/5 * * * * docker exec -u www-data nextcloud php cron.php" | sudo tee -a /etc/crontab
#
# Features:
# - File sync and share
# - Calendar and contacts
# - Collaborative editing
# - Photo gallery
# - Mobile apps (iOS/Android)
# - Desktop sync client
# - External storage support