From c4b89265ffc48ff93478d751e9525096c30ab9a4 Mon Sep 17 00:00:00 2001 From: TheThomaas Date: Tue, 20 Oct 2026 14:08:44 +0200 Subject: [PATCH] Add test server compose files --- servers/sunstreaker/backrest/compose.yaml | 22 +++++ servers/sunstreaker/immich/.env.example | 6 ++ servers/sunstreaker/immich/compose.yaml | 96 ++++++++++++++++++++++ servers/sunstreaker/pocket-id/.env.example | 12 +++ servers/sunstreaker/pocket-id/compose.yaml | 28 +++++++ servers/sunstreaker/zerobyte/.env.example | 1 + servers/sunstreaker/zerobyte/compose.yaml | 18 ++++ 7 files changed, 183 insertions(+) create mode 100644 servers/sunstreaker/backrest/compose.yaml create mode 100644 servers/sunstreaker/immich/.env.example create mode 100644 servers/sunstreaker/immich/compose.yaml create mode 100644 servers/sunstreaker/pocket-id/.env.example create mode 100644 servers/sunstreaker/pocket-id/compose.yaml create mode 100644 servers/sunstreaker/zerobyte/.env.example create mode 100644 servers/sunstreaker/zerobyte/compose.yaml diff --git a/servers/sunstreaker/backrest/compose.yaml b/servers/sunstreaker/backrest/compose.yaml new file mode 100644 index 0000000..9e5cb79 --- /dev/null +++ b/servers/sunstreaker/backrest/compose.yaml @@ -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 diff --git a/servers/sunstreaker/immich/.env.example b/servers/sunstreaker/immich/.env.example new file mode 100644 index 0000000..087cbdb --- /dev/null +++ b/servers/sunstreaker/immich/.env.example @@ -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 \ No newline at end of file diff --git a/servers/sunstreaker/immich/compose.yaml b/servers/sunstreaker/immich/compose.yaml new file mode 100644 index 0000000..8663a38 --- /dev/null +++ b/servers/sunstreaker/immich/compose.yaml @@ -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 diff --git a/servers/sunstreaker/pocket-id/.env.example b/servers/sunstreaker/pocket-id/.env.example new file mode 100644 index 0000000..da55a7c --- /dev/null +++ b/servers/sunstreaker/pocket-id/.env.example @@ -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 \ No newline at end of file diff --git a/servers/sunstreaker/pocket-id/compose.yaml b/servers/sunstreaker/pocket-id/compose.yaml new file mode 100644 index 0000000..c45c5e2 --- /dev/null +++ b/servers/sunstreaker/pocket-id/compose.yaml @@ -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 diff --git a/servers/sunstreaker/zerobyte/.env.example b/servers/sunstreaker/zerobyte/.env.example new file mode 100644 index 0000000..81499a7 --- /dev/null +++ b/servers/sunstreaker/zerobyte/.env.example @@ -0,0 +1 @@ +APP_SECRET= \ No newline at end of file diff --git a/servers/sunstreaker/zerobyte/compose.yaml b/servers/sunstreaker/zerobyte/compose.yaml new file mode 100644 index 0000000..1290247 --- /dev/null +++ b/servers/sunstreaker/zerobyte/compose.yaml @@ -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