Files
dotfiles_serv/podman/nextcloud/docker-compose.yml
2025-12-19 22:53:46 +00:00

158 lines
4.0 KiB
YAML
Executable File

version: '3.8'
services:
# Database (PostgreSQL)
next-db:
image: docker.io/postgres:18
container_name: next-db
environment:
- POSTGRES_DB=${DB_DATABASE_NAME}
- POSTGRES_USER=${DB_USERNAME}
- POSTGRES_PASSWORD=${DB_PASSWORD}
volumes:
- /mnt/flash1/podman/nextcloud/config/db:/var/lib/postgresql
restart: unless-stopped
networks:
- nextcloud_network
# # Redis Cache
# next_redis:
# image: docker.io/redis:latest
# container_name: next-redis
# command: redis-server --save 60 1 --loglevel warning
# volumes:
# - ./data/redis:/data
# restart: unless-stopped
# networks:
# - nextcloud_network
# Nextcloud Main Application
next:
image: docker.io/nextcloud:latest
container_name: next
depends_on:
- next-db
ports:
- "8808:80"
environment:
- POSTGRES_DB=${DB_DATABASE_NAME}
- POSTGRES_USER=${DB_USERNAME}
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_HOST=${DB_HOST}
- NEXTCLOUD_TRUSTED_DOMAINS=next.liphlink.xyz
- NEXTCLOUD_ADMIN_USER=liph
- NEXTCLOUD_ADMIN_PASSWORD=1ChagenexT
volumes:
- /mnt/flash1/podman/nextcloud/config/nextcloud/data:/var/www/html
- /mnt/flash1/podman/nextcloud/config/nextcloud/config:/var/www/html/config:Z
- /mnt/flash1/podman/nextcloud/config/nextcloud/apps:/var/www/html/custom_apps
- /mnt/tank/ebooks_phil:/ebooks_phil:z
- /mnt/tank/cloud_phil:/cloud_phil:z
- /mnt/tank/ebooks_miri:/ebooks_miri:z
- /mnt/tank/cloud_miri:/cloud_miri:z
restart: unless-stopped
networks:
- nextcloud_network
# # Collabora Online Office
# collabora:
# image: collabora/code:latest
# container_name: collabora
# ports:
# - 9980:9980
# environment:
# - domain=liphlink.xyz
# - username=liph
# - password=1ChagecolL
# - extra_params=--o:ssl.enable=false
# restart: unless-stopped
# networks:
# - nextcloud_network
# OnlyOffice (alternative to Collabora)
onlyoffice:
image: docker.io/onlyoffice/documentserver:latest
container_name: onlyoffice
ports:
- 8000:80
environment:
- JWT_SECRET= 'joJVOvGpHYCahLnEeAShgm78r58VJl4C'
volumes:
- /mnt/flash1/podman/nextcloud/config/onlyoffice:/var/www/onlyoffice/Data
restart: unless-stopped
networks:
- nextcloud_network
obsidian:
image: lscr.io/linuxserver/obsidian:latest
container_name: obsidian
security_opt:
- seccomp:unconfined #optional
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- /mnt/flash1/podman/nextcloud/config/obsidian:/config:z
- /mnt/flash1/podman/nextcloud/config/vaults:/vault:z
ports:
- 3004:3000
- 3003:3001
shm_size: "1gb"
restart: unless-stopped
# # Talk (Video Conferencing)
# talk:
# image: jvillafa/turn:latest
# container_name: nextcloud_talk
# ports:
# - 3478:3478/udp
# - 3478:3478/tcp
# - 65000-65535:65000-65535/udp
# environment:
# - TURN_SECRET=yourturnsecret
# - NEXTCLOUD_TALK_IP=your_server_ip
# restart: unless-stopped
# networks:
# - nextcloud_network
# # Full-Text Search (optional)
# fulltextsearch:
# image: nextcloud/fulltextsearch:latest
# container_name: nextcloud_fulltext
# depends_on:
# - nextcloud
# environment:
# - NEXTCLOUD_URL=http://nextcloud
# volumes:
# - nextcloud_data:/var/www/html
# restart: unless-stopped
# networks:
# - nextcloud_network
# # Cron for background jobs
# cron:
# image: nextcloud:latest
# container_name: nextcloud_cron
# depends_on:
# - nextcloud
# volumes:
# - nextcloud_data:/var/www/html
# - nextcloud_config:/var/www/html/config
# - nextcloud_apps:/var/www/html/custom_apps
# entrypoint: /cron.sh
# restart: unless-stopped
# networks:
# - nextcloud_network
volumes:
pg_data:
redis_data:
nextcloud_data:
nextcloud_config:
nextcloud_apps:
onlyoffice_data:
networks:
nextcloud_network:
name: nextcloud_network