Files
lightcraft/xtask/immich/compose.yml
T
Andrew FrahnandClaude Opus 5.5 6cbc0eb5a9 Phase 0: configurable brand, MIT licence, plan/ and Immich tracker
- brand.toml is the only place the product name lives; every crate and app
  reads it through dac-brand (env vars with legacy fallback, settings folder
  with copy-only migration, default library, preset extensions, i18n {app})
- cargo xtask brand check|test, run|install|package, docs, rename-crates,
  deny and immich; packaging files are templates rendered from brand.toml
- icons regenerated from brand/icon.svg; upstream branding removed
- MIT licence (segment and fetch stay Apache-2.0); cargo deny licence policy
- clean-room rules in AGENTS.md/CLAUDE.md; docs/upstream-merge.md
- plan/ rebuilt and committed; parity tracker reopens Classic rows, adds
  PLAN.md section 2 rows and the IMM Immich section; plan/immich.md and a
  pinned Immich test server

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-10 10:30:06 +11:00

70 lines
2.1 KiB
YAML

# Local / CI Immich test server for `cargo xtask immich up|down|seed` (plan/immich.md).
#
# - Pinned to one Immich release. To move to a newer one, update all four images together from that release's
# own docker-compose.yml, re-run the integration tests, and update "Checked against" in plan/immich.md.
# - Listens on 127.0.0.1:2284 (not Immich's default 2283), so it never collides with a real server on this machine.
# - All data (uploads, database, model cache) lives in named docker volumes; `cargo xtask immich down --volumes`
# wipes them.
# - Test-only credentials; never expose this server.
#
# Images match the official compose file of Immich v3.3.1 (server AGPL-3.0; we only run it, see plan/immich.md).
name: xtask-immich
x-env: &env
DB_HOSTNAME: database
DB_USERNAME: postgres
DB_PASSWORD: postgres
DB_DATABASE_NAME: immich
REDIS_HOSTNAME: redis
TZ: Etc/UTC
services:
immich-server:
image: ghcr.io/immich-app/immich-server:v3.3.1
environment: *env
volumes:
- upload:/data
ports:
- '127.0.0.1:2284:2283'
depends_on:
- redis
- database
restart: unless-stopped
healthcheck:
disable: false
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:v3.3.1
environment: *env
volumes:
- model-cache:/cache
restart: unless-stopped
healthcheck:
disable: false
redis:
image: docker.io/valkey/valkey:9@sha256:c123e3715db63d06d4ad6964884037aa0d5d4d703939b9929954112889708e1d
healthcheck:
test: redis-cli ping | grep -q PONG || exit 1
restart: unless-stopped
database:
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: immich
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes:
- db:/var/lib/postgresql/data
shm_size: 128mb
restart: unless-stopped
healthcheck:
disable: false
volumes:
upload:
db:
model-cache: