Add Nextcloud Docker configuration with secure password handling
- Complete Docker Compose setup with MariaDB and Redis - External storage mounts for existing homelab folders - Secure password handling using Docker secrets from ~/creds/ - Configured for /cloud path with proper reverse proxy settings Note: Nextcloud was tested but disabled in favor of copyparty for file server functionality due to performance and complexity concerns. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
83
config/docker/nextcloud/docker-compose.yml
Normal file
83
config/docker/nextcloud/docker-compose.yml
Normal file
@@ -0,0 +1,83 @@
|
||||
# DEPLOYMENT LOCATION: /opt/docker/nextcloud/docker-compose.yml
|
||||
# Deploy with:
|
||||
# sudo mkdir -p /opt/docker/nextcloud
|
||||
# sudo cp config/docker/nextcloud/docker-compose.yml /opt/docker/nextcloud/
|
||||
# sudo cp config/docker/nextcloud/.env /opt/docker/nextcloud/
|
||||
# cd /opt/docker/nextcloud && sudo docker-compose up -d
|
||||
|
||||
services:
|
||||
nextcloud-db:
|
||||
image: mariadb:10.11
|
||||
restart: unless-stopped
|
||||
container_name: nextcloud-db
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password
|
||||
- MYSQL_PASSWORD_FILE=/run/secrets/mysql_password
|
||||
- MYSQL_DATABASE=nextcloud
|
||||
- MYSQL_USER=nextcloud
|
||||
volumes:
|
||||
- nextcloud_db:/var/lib/mysql
|
||||
networks:
|
||||
- nextcloud
|
||||
secrets:
|
||||
- mysql_root_password
|
||||
- mysql_password
|
||||
|
||||
nextcloud-redis:
|
||||
image: redis:7-alpine
|
||||
restart: unless-stopped
|
||||
container_name: nextcloud-redis
|
||||
networks:
|
||||
- nextcloud
|
||||
|
||||
nextcloud-app:
|
||||
image: nextcloud:29
|
||||
restart: unless-stopped
|
||||
container_name: nextcloud-app
|
||||
ports:
|
||||
- "8083:80"
|
||||
environment:
|
||||
- MYSQL_PASSWORD_FILE=/run/secrets/mysql_password
|
||||
- MYSQL_DATABASE=nextcloud
|
||||
- MYSQL_USER=nextcloud
|
||||
- MYSQL_HOST=nextcloud-db
|
||||
- REDIS_HOST=nextcloud-redis
|
||||
- NEXTCLOUD_TRUSTED_DOMAINS=ak-homelab.duckdns.org 192.168.0.100 localhost
|
||||
- NEXTCLOUD_ADMIN_USER=hoborg
|
||||
- NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password
|
||||
- OVERWRITEPROTOCOL=https
|
||||
- OVERWRITEHOST=ak-homelab.duckdns.org
|
||||
- OVERWRITEWEBROOT=/cloud
|
||||
volumes:
|
||||
- nextcloud_data:/var/www/html
|
||||
# External storage mounts for existing folders
|
||||
- /home/hoborg/shared:/external_storage/shared:rw
|
||||
- /home/hoborg/Documents:/external_storage/documents:rw
|
||||
- /home/hoborg/Music:/external_storage/music:rw
|
||||
- /home/hoborg/Videos:/external_storage/videos:rw
|
||||
- /home/hoborg/Pictures:/external_storage/pictures:rw
|
||||
- /home/hoborg/private:/external_storage/private:rw
|
||||
depends_on:
|
||||
- nextcloud-db
|
||||
- nextcloud-redis
|
||||
networks:
|
||||
- nextcloud
|
||||
secrets:
|
||||
- mysql_password
|
||||
- nextcloud_admin_password
|
||||
|
||||
secrets:
|
||||
mysql_root_password:
|
||||
file: /home/hoborg/creds/nextcloud_mysql_root_password.txt
|
||||
mysql_password:
|
||||
file: /home/hoborg/creds/nextcloud_mysql_password.txt
|
||||
nextcloud_admin_password:
|
||||
file: /home/hoborg/creds/nextcloud_admin_password.txt
|
||||
|
||||
volumes:
|
||||
nextcloud_db:
|
||||
nextcloud_data:
|
||||
|
||||
networks:
|
||||
nextcloud:
|
||||
driver: bridge
|
||||
Reference in New Issue
Block a user