134 lines
4.9 KiB
YAML
134 lines
4.9 KiB
YAML
services:
|
|
#memos:
|
|
# image: neosmemo/memos:stable
|
|
# container_name: memos
|
|
# restart: unless-stopped
|
|
# volumes:
|
|
# - "./hdd0/memos:/var/opt/memos"
|
|
# labels:
|
|
# - "traefik.enable=true"
|
|
# - "traefik.http.routers.memos.rule=Host(`notes.bouvais.lu`)"
|
|
# - "traefik.http.routers.memos.entrypoints=websecure"
|
|
# - "traefik.http.routers.memos.tls.certresolver=myresolver"
|
|
# - "traefik.http.services.memos.loadbalancer.server.port=5230"
|
|
|
|
jellyfin:
|
|
image: jellyfin/jellyfin
|
|
container_name: jellyfin
|
|
restart: unless-stopped
|
|
group_add:
|
|
- '107' #render
|
|
- '44' #video
|
|
volumes:
|
|
- "./cache/jellyfin:/cache"
|
|
- "./hdd0/jellyfin:/config"
|
|
- "./hdd0/media:/media"
|
|
- type: bind
|
|
source: /data/media
|
|
target: /media
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.jellyfin.rule=Host(`jellyfin.bouvais.lu`)"
|
|
- "traefik.http.routers.jellyfin.entrypoints=websecure"
|
|
- "traefik.http.routers.jellyfin.tls.certresolver=myresolver"
|
|
- "traefik.http.services.jellyfin.loadbalancer.server.port=8096"
|
|
|
|
filebrowser:
|
|
image: filebrowser/filebrowser:latest
|
|
container_name: filebrowser
|
|
restart: unless-stopped
|
|
environment:
|
|
TZ: Europe/Luxembourg
|
|
FB_BASEURL: /
|
|
volumes:
|
|
- "./config/filebrowser/filebrowser.json:/.filebrowser.json"
|
|
- "./hdd0/filebrowser/filebrowser.db:/database.db"
|
|
- "./hdd0/my_files:/srv"
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.filebrowser.rule=Host(`files.bouvais.lu`)"
|
|
- "traefik.http.routers.filebrowser.entrypoints=websecure"
|
|
- "traefik.http.routers.filebrowser.tls.certresolver=myresolver"
|
|
- "traefik.http.services.filebrowser.loadbalancer.server.port=80"
|
|
|
|
actualbudget:
|
|
image: actualbudget/actual-server:latest
|
|
container_name: actualbudget
|
|
restart: unless-stopped
|
|
volumes:
|
|
- "./hdd0/actualbudget:/data"
|
|
environment:
|
|
- TZ=Europe/Luxembourg
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.actualbudget.rule=Host(`budget.bouvais.lu`)"
|
|
- "traefik.http.routers.actualbudget.entrypoints=websecure"
|
|
- "traefik.http.routers.actualbudget.tls.certresolver=myresolver"
|
|
- "traefik.http.services.actualbudget.loadbalancer.server.port=5006"
|
|
|
|
vaultwarden:
|
|
image: vaultwarden/server:1.33.2
|
|
container_name: vaultwarden
|
|
restart: unless-stopped
|
|
environment:
|
|
DOMAIN: "https://vault.bouvais.lu"
|
|
SIGNUPS_ALLOWED: false
|
|
volumes:
|
|
- "./hdd0/vaultwarden:/data/"
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.services.my-vaultwarden-service.loadbalancer.server.port=80"
|
|
- "traefik.http.routers.vaultwarden.rule=Host(`vault.bouvais.lu`)"
|
|
- "traefik.http.routers.vaultwarden.entrypoints=websecure"
|
|
- "traefik.http.routers.vaultwarden.tls.certresolver=myresolver"
|
|
- "traefik.http.routers.vaultwarden.service=my-vaultwarden-service@docker"
|
|
- "traefik.http.routers.vaultwarden-admin.rule=Host(`vault.bouvais.lu`) && PathPrefix(`/admin`)"
|
|
- "traefik.http.routers.vaultwarden-admin.entrypoints=websecure"
|
|
- "traefik.http.routers.vaultwarden-admin.tls.certresolver=myresolver"
|
|
- "traefik.http.routers.vaultwarden-admin.middlewares=auth@docker"
|
|
- "traefik.http.routers.vaultwarden-admin.service=my-vaultwarden-service@docker"
|
|
|
|
affine:
|
|
image: ghcr.io/toeverything/affine-graphql:stable
|
|
container_name: affine
|
|
restart: unless-stopped
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
postgres:
|
|
condition: service_healthy
|
|
affine_migration:
|
|
condition: service_completed_successfully
|
|
volumes:
|
|
- /home/adrien/Web-stack/hdd0/affine/storage:/root/.affine/storage
|
|
- /home/adrien/Web-stack/config/affine:/root/.affine/config
|
|
environment:
|
|
- REDIS_SERVER_HOST=redis
|
|
- DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@postgres:5432/affine
|
|
- AFFINE_INDEXER_ENABLED=false
|
|
- AFFINE_SERVER_EXTERNAL_URL=https://affine.bouvais.lu
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.affine.rule=Host(`affine.bouvais.lu`)"
|
|
- "traefik.http.routers.affine.entrypoints=websecure"
|
|
- "traefik.http.routers.affine.tls.certresolver=myresolver"
|
|
- "traefik.http.services.affine.loadbalancer.server.port=3010"
|
|
|
|
affine_migration:
|
|
image: ghcr.io/toeverything/affine-graphql:stable
|
|
container_name: affine_migration
|
|
volumes:
|
|
# custom configurations
|
|
- /home/adrien/Web-stack/hdd0/affine/storage:/root/.affine/storage
|
|
- /home/adrien/Web-stack/config/affine:/root/.affine/config
|
|
command: ['sh', '-c', 'node ./scripts/self-host-predeploy.js']
|
|
environment:
|
|
- REDIS_SERVER_HOST=redis
|
|
- DATABASE_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@postgres:5432/affine
|
|
- AFFINE_INDEXER_ENABLED=false
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|