--- services: foundryvtt: image: felddy/foundryvtt:release environment: - FOUNDRY_USERNAME=${FOUNDRY_USERNAME} - FOUNDRY_PASSWORD=${FOUNDRY_PASSWORD} - UID=1000 - GID=1000 ports: - "30000:30000/tcp" volumes: - /config/foundry-data:/data env_file: - path: .env required: true portainer: image: portainer/portainer-ce:latest container_name: portainer restart: unless-stopped security_opt: - no-new-privileges:true volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - /config/portainer-data:/data ports: - 9000:9000 flaresolverr: image: ghcr.io/flaresolverr/flaresolverr:latest container_name: flaresolverr environment: - LOG_LEVEL=${LOG_LEVEL:-info} - LOG_HTML=${LOG_HTML:-false} - CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none} - TZ=Europe/Paris ports: - "${PORT:-8191}:8191" restart: unless-stopped prowlarr: image: lscr.io/linuxserver/prowlarr:latest container_name: prowlarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/Paris volumes: - /config/prowlarr:/config ports: - 9696:9696 restart: unless-stopped sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/Paris volumes: - /config/sonarr:/config - /media/Seagate/Series:/media/Seagate/Series - /media/Seagate/Animes:/media/Seagate/Animes - /temp:/temp ports: - 8989:8989 restart: unless-stopped radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/Paris volumes: - /config/radarr:/config - /media/Seagate/Movies:/media/Seagate/Movies - /media/Seagate/temp:/media/Seagate/temp - /temp:/temp ports: - 7878:7878 restart: unless-stopped gluetun: image: qmcgaw/gluetun container_name: gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun env_file: - path: .env required: true environment: - VPN_SERVICE_PROVIDER=protonvpn - VPN_TYPE=wireguard - WIREGUARD_PRIVATE_KEY=${VPNKEY} - SERVER_COUNTRIES=Sweden - HTTPPROXY=on - HTTPPROXY_LOG=on ports: - 8888:8888 - 6881:6881 - 8080:8080 qbit: image: ghcr.io/linuxserver/qbittorrent container_name: qbit volumes: - /temp:/temp - /config/transmission-daemon:/config environment: - PUID=1000 - PGID=1000 network_mode: "service:gluetun" restart: always depends_on: gluetun: condition: service_healthy restart: true jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin environment: - PUID=1000 - PGID=1000 - TZ=Europe/Paris - JELLYFIN_PublishedServerUrl=192.168.1.55 #optional volumes: - /config/jellyfin:/config - /media/Seagate/Series:/Series - /media/Seagate/Animes:/Animes - /media/Seagate/Movies:/Movies ports: - 8096:8096 - 8920:8920 #optional - 7359:7359/udp #optional - 1900:1900/udp #optional restart: unless-stopped watchtower: image: nickfedor/watchtower:latest container_name: watchtower volumes: - /var/run/docker.sock:/var/run/docker.sock immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # extends: # file: hwaccel.transcoding.yml # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding volumes: # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro env_file: - path: .env required: true ports: - "2283:2283" depends_on: - redis - database - immich-machine-learning restart: always healthcheck: disable: false immich-machine-learning: container_name: immich_machine_learning # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag. # Example tag: ${IMMICH_VERSION:-release}-cuda image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration # file: hwaccel.ml.yml # service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable volumes: - model-cache:/cache environment: ENABLE_FACE_RECOGNITION=true env_file: - path: .env required: true restart: always healthcheck: disable: false redis: container_name: immich_redis image: docker.io/valkey/valkey:8-bookworm@sha256:fec42f399876eb6faf9e008570597741c87ff7662a54185593e74b09ce83d177 healthcheck: test: redis-cli ping || exit 1 restart: always database: container_name: immich_postgres image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0 env_file: - path: .env required: true environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: "--data-checksums" # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs # DB_STORAGE_TYPE: 'HDD' volumes: # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file - ${DB_DATA_LOCATION}:/var/lib/postgresql/data restart: always Forgejo: image: codeberg.org/forgejo/forgejo:11 container_name: forgejo environment: - USER_UID=1000 - USER_GID=1000 restart: always networks: - forgejo volumes: - /config/forgejo:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "3000:3000" - "222:22" nginx-proxy-manager: image: jc21/nginx-proxy-manager:latest container_name: nginx-proxy-manager ports: - "80:80" - "443:443" - "81:81" volumes: - /config/nginx/data:/data - /config/nginx/letsencrypt:/etc/letsencrypt restart: unless-stopped freshrss: image: lscr.io/linuxserver/freshrss:latest container_name: freshrss environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC volumes: - /config/freshrss/:/config ports: - 8082:80 restart: unless-stopped vaultwarden: image: vaultwarden/server:latest container_name: vaultwarden restart: unless-stopped environment: DOMAIN: "https://vw.griffix.hopto.org" volumes: - ./vw-data/:/data/ ports: - 127.0.0.1:8000:80 baikal: image: ckulka/baikal:nginx restart: always ports: - "8010:80" volumes: - config:/var/www/baikal/config - data:/var/www/baikal/Specific prunemate: image: anoniemerd/prunemate:latest # Supports amd64 and arm64 container_name: prunemate ports: - "7676:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./logs:/var/log - ./config:/config environment: - PRUNEMATE_TZ=Europe/Paris # Change this to your desired timezone - PRUNEMATE_TIME_24H=true #false for 12-Hour format (AM/PM) # Optional: Enable authentication (generate hash with: docker run --rm anoniemerd/prunemate python prunemate.py --gen-hash "password") # - PRUNEMATE_AUTH_USER=admin # - PRUNEMATE_AUTH_PASSWORD_HASH=your_base64_encoded_hash_here restart: unless-stopped networks: forgejo: external: false #default: # external: true volumes: model-cache: