Files
vps-config/compose.yml
T
2026-07-24 18:31:55 +02:00

137 lines
3.0 KiB
YAML

services:
caddy:
depends_on:
- archivebox
- freshrss
- filebrowser
- uptime-kuma
- ntfy
- flatnotes
- radicale
image: caddy:latest
container_name: caddy
restart: unless-stopped
environment:
HLEDGER_PASSWORD_HASH: "${HLEDGER_PASSWORD_HASH}"
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
- /home/tomasr/vps-config/web-server:/srv/www
extra_hosts:
- "host.docker.internal:host-gateway"
archivebox:
image: archivebox/archivebox:latest
container_name: archivebox
restart: unless-stopped
command: server 0.0.0.0:8000
environment:
- TZ=Europe/Zurich
volumes:
# Local SSD: database + config + metadata
- /opt/server/archivebox/archivebox-data:/data
# kDrive: only the heavy archive content
- /mnt/kdrive/Archive:/data/archive
freshrss:
image: freshrss/freshrss:latest
container_name: freshrss
restart: unless-stopped
environment:
- TZ=Europe/Zurich
- CRON_MIN=*/20
volumes:
- /opt/server/freshrss:/var/www/FreshRSS/data
filebrowser:
image: filebrowser/filebrowser:latest
container_name: filebrowser
restart: unless-stopped
environment:
- TZ=Europe/Zurich
volumes:
# Your yt-dlp downloads
- /mnt/kdrive/Autre/Archive/Videos:/srv
# FileBrowser database/config
- /opt/server/filebrowser/database:/database
- /opt/server/filebrowser:/config
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
volumes:
- /opt/server/uptime-kuma:/app/data
ntfy:
image: binwiederhier/ntfy:latest
container_name: ntfy
restart: unless-stopped
command:
- serve
- --config
- /etc/ntfy/server.yml
environment:
- TZ=Europe/Zurich
volumes:
# Persistent database, cache, attachments
- /opt/server/ntfy:/var/cache/ntfy
# Server configuration
- /home/tomasr/vps-config/ntfy-config/server.yml:/etc/ntfy/server.yml:ro
healthcheck:
test: ["CMD-SHELL", "wget -q --tries=1 -O- http://localhost:80/v1/health | grep -q 'healthy'"]
interval: 30s
timeout: 10s
retries: 3
flatnotes:
image: dullage/flatnotes:latest
container_name: flatnotes
restart: unless-stopped
environment:
- TZ=Europe/Zurich
- FLATNOTES_USERNAME=${FLATNOTES_USERNAME}
- FLATNOTES_PASSWORD=${FLATNOTES_PASSWORD}
- FLATNOTES_SECRET_KEY=${FLATNOTES_SECRET_KEY}
volumes:
- /mnt/kdrive/Notes/quicknotes:/data
radicale:
image: tomsquest/docker-radicale:latest
container_name: radicale
restart: unless-stopped
environment:
- TZ=Europe/Zurich
volumes:
# Calendar + contacts data
- /opt/server/radicale/data:/data
# Configuration
- /home/tomasr/vps-config/radicale-config:/config
volumes:
caddy_data:
caddy_config: