Files
Homelab/services/standalone/Nextcloud/docker-compose.yml

108 lines
3.3 KiB
YAML

# Place this at ~/docker/docker-compose.yml (overwrite existing if ready)
# NOTE: the top-level "version" key is optional in modern Compose v2/v3 usage.
services:
tsdproxy:
image: almeidapaulopt/tsdproxy:1
container_name: tsdproxy
restart: unless-stopped
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- tsd_data:/data
- ./tsdproxy/config:/config
ports:
- "8080:8080"
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
# You may optionally set an auth key here, or add it to /config/tsdproxy.yaml later
TAILSCALE_AUTHKEY: "tskey-auth-kUFWCyDau321CNTRL-Vdt9PFUDUqAb7iQYLvCjqAkhcnq3aTTtg" # (optional — recommended to use config file)
TS_EXTRA_ARGS: "--accept-routes"
db:
image: mariadb:11
container_name: nextcloud-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: supersecurepassword
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: nextcloudpassword
volumes:
- db_data:/var/lib/mysql
nextcloud:
image: nextcloud:29
container_name: nextcloud-app
restart: unless-stopped
depends_on:
- db
environment:
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: nextcloudpassword
volumes:
- /mnt/nextcloud-data:/var/www/html/data
- /mnt/nextcloud-config:/var/www/html/config
labels:
- "traefik.enable=true"
- "traefik.http.routers.nextcloud.rule=Host(`nextcloud.sj98.duckdns.org`)"
- "traefik.http.routers.nextcloud.entrypoints=websecure"
- "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt"
- "traefik.http.services.nextcloud.loadbalancer.server.port=80"
- "tsdproxy.enable=true"
- "tsdproxy.name=nextcloud"
plex:
image: lscr.io/linuxserver/plex:latest
container_name: plex
restart: unless-stopped
network_mode: "host"
environment:
PLEX_CLAIM: claim-your-plex-claim
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- /mnt/media:/media
labels:
- "traefik.enable=true"
- "traefik.tcp.routers.plex.rule=HostSNI(`plex.sj98.duckdns.org`)"
- "traefik.tcp.routers.plex.entrypoints=websecure"
- "traefik.tcp.services.plex.loadbalancer.server.port=32400"
- "tsdproxy.enable=true"
- "tsdproxy.name=plex"
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
network_mode: "host"
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- /mnt/media:/media
labels:
- "traefik.enable=true"
- "traefik.tcp.routers.jellyfin.rule=HostSNI(`jellyfin.sj98.duckdns.org`)"
- "traefik.tcp.routers.jellyfin.entrypoints=websecure"
- "traefik.tcp.services.jellyfin.loadbalancer.server.port=8096"
- "tsdproxy.enable=true"
- "tsdproxy.name=jellyfin"
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 3600
volumes:
db_data:
tsd_data: