Add test server compose files

This commit is contained in:
TheThomaas 2026-10-20 14:08:44 +02:00
parent 1eabcaef08
commit c4b89265ff
7 changed files with 183 additions and 0 deletions

View file

@ -0,0 +1,22 @@
services:
backrest:
image: ghcr.io/garethgeorge/backrest:latest
container_name: backrest
hostname: backrest
volumes:
- /home/thomas/backrest/data:/data
- /home/thomas/backrest/config:/config
- /home/thomas/backrest/cache:/cache
- /home/thomas/backrest/tmp:/tmp
- /home/thomas/backrest/rclone:/root/.config/rclone # Mount for rclone config (needed when using rclone remotes)
# - /path/to/backup/data:/userdata # Mount local paths to backup
# - /path/to/local/repos:/repos # Mount local repos (optional for remote storage)
environment:
- BACKREST_DATA=/data
- BACKREST_CONFIG=/config/config.json
- XDG_CACHE_HOME=/cache
- TMPDIR=/tmp
- TZ=Europe/Zurich
ports:
- "9898:9898"
restart: unless-stopped

View file

@ -0,0 +1,6 @@
UPLOAD_LOCATION=./library
DB_DATA_LOCATION=./postgres
IMMICH_VERSION=v3.3.3
DB_PASSWORD=postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

View file

@ -0,0 +1,96 @@
#
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
#
# Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
name: immich
services:
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}:/data
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
# ports:
# - '2283:2283'
depends_on:
- redis
- database
restart: always
healthcheck:
disable: false
labels:
- "traefik.enable=true"
- "traefik.http.routers.immich.rule=Host(`immich.${LOCAL_DOMAIN}`)"
- "traefik.http.routers.immich.entrypoints=https"
- "traefik.http.routers.immich.tls=true"
- "traefik.http.services.immich.loadbalancer.server.port=2283"
networks:
- proxy
# extra_hosts:
# - "auth.test.thethomaas.net:192.168.1.25"
# - "pocket-id:192.168.1.25"
# - "auth.test.thethomaas.net=host-gateway"
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://docs.immich.app/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
env_file:
- .env
restart: always
healthcheck:
disable: false
networks:
- proxy
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:9@sha256:fb8d272e529ea567b9bf1302245796f21a2672b8368ca3fcb938ac334e613c8f
healthcheck:
test: redis-cli ping || exit 1
restart: always
networks:
- proxy
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
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
shm_size: 128mb
restart: always
networks:
- proxy
volumes:
model-cache:
networks:
proxy:
external: true

View file

@ -0,0 +1,12 @@
APP_URL=
# Encryption key (choose one method):
# Method 1: Direct key (simple but less secure)
# Generate with: openssl rand -base64 32
ENCRYPTION_KEY=
# Method 2: File-based key (recommended)
# Put the base64 key in a file and point to it here.
# ENCRYPTION_KEY_FILE=/path/to/encryption_key
TRUST_PROXY=false
MAXMIND_LICENSE_KEY=
PUID=1000
PGID=1000

View file

@ -0,0 +1,28 @@
services:
pocket-id:
image: ghcr.io/pocket-id/pocket-id:v1
restart: unless-stopped
env_file: .env
volumes:
- "./data:/app/data"
healthcheck:
test: [ "CMD", "/app/pocket-id", "healthcheck" ]
interval: 1m30s
timeout: 5s
retries: 2
start_period: 10s
labels:
- "traefik.enable=true"
- "traefik.http.routers.pocketid.rule=Host(`auth.${LOCAL_DOMAIN}`)"
- "traefik.http.routers.pocketid.entrypoints=https"
- "traefik.http.routers.pocketid.tls=true"
- "traefik.http.services.pocketid.loadbalancer.server.port=1411"
# - "traefik.http.middlewares.pocketid.forwardAuth.address='http://pocket_id:3000/api/authz/forward-auth'"
# - "traefik.http.middlewares.pocketid.forwardAuth.trustForwardHeader=true"
# - "traefik.http.middlewares.pocketid.forwardAuth.authResponseHeaders='Remote-User,Remote-Name,Remote-Email,Remote-Groups'"
networks:
- proxy
networks:
proxy:
external: true

View file

@ -0,0 +1 @@
APP_SECRET=

View file

@ -0,0 +1,18 @@
services:
zerobyte:
image: ghcr.io/nicotsx/zerobyte:v0.24.2
container_name: zerobyte
restart: unless-stopped
cap_add:
- SYS_ADMIN
ports:
- "4096:4096"
devices:
- /dev/fuse:/dev/fuse
environment:
- TZ=Europe/Zurich # Set your timezone here
- BASE_URL=http://192.168.1.25:4096 # URL you will use to access Zerobyte
- APP_SECRET=${APP_SECRET} # Generate your own secret with `openssl rand -hex 32`
volumes:
- /etc/localtime:/etc/localtime:ro
- /home/thomas/zerobyte:/var/lib/zerobyte