Clint Masden 567c6fc76f Add Coolify compose and env backups before phantom container fix
Backup of raw compose, rendered compose, and env vars before
renaming immich-server to immich to merge with Coolify proxy container.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 21:39:40 -06:00

Immich

Self-hosted photo and video management server running on box-stableapps (192.168.69.4). Managed by Coolify as a service on the localhost server.

Server Details

Host 192.168.69.4 (box-stableapps)
Coolify service UUID t4cg4wk480w4ck0so0og4wgk
Coolify project stable-apps
Image ghcr.io/immich-app/immich-server:v2
Web UI port 2001 (container 2283)
Web UI https://immich.clintmasden.duckdns.org
SSH ssh clint@192.168.69.4 (password: this-bo%-180391)

Containers

Container Image Port Purpose
immich_server ghcr.io/immich-app/immich-server:v2 2001:2283 Main app server
immich_machine_learning ghcr.io/immich-app/immich-machine-learning:v2 internal Face/object detection
immich_redis valkey/valkey:9 internal Cache
immich_postgres ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0 internal Database with vector extensions

Volumes

Host Path Container Path Type Notes
/home/clint/archive/systems/containers/immich/ /data CIFS mount Upload data (photos, thumbs, encoded video)
/home/clint/archive /archive CIFS mount (ro) Read-only external library browsing
/home/clint/containers/immich/postgres /var/lib/postgresql/data Local ext4 MUST be local disk, NOT SMB (owned uid 999)
/home/clint/containers/immich/cache /cache Local ext4 ML model cache
/etc/localtime /etc/localtime Bind (ro) Timezone

Credentials

What Value
DB_USERNAME postgres
DB_PASSWORD Xb1Y4MPIbVZdlK
DB_DATABASE_NAME immich
IMMICH_VERSION v2

CIFS Mount Dependency

Upload data and archive browsing require the CIFS mount:

# /etc/fstab entry
//192.168.69.2/archive /home/clint/archive cifs rw,credentials=/etc/samba_credentials,iocharset=utf8,vers=3.0,uid=1000,gid=1000,dir_mode=0775,file_mode=0775,_netdev 0 0

Important Notes

  • Postgres data directory is owned by uid 999 (postgres container user). Do NOT chown.
  • Postgres requires shm_size: 128mb for vector operations.
  • Postgres image is a custom build with vectorchord + pgvectors extensions — not standard postgres.
  • Healthchecks must use 127.0.0.1 not localhost (Alpine IPv6 resolves localhost to ::1).
  • Upload data on CIFS contains: backups/, encoded-video/, library/, profile/, thumbs/, upload/.

Deployment

Managed by Coolify. Start/stop via Coolify UI or API:

# Start
curl -X POST http://192.168.69.4:2010/api/v1/services/t4cg4wk480w4ck0so0og4wgk/start \
  -H "Authorization: Bearer <token>"

# Stop
curl -X POST http://192.168.69.4:2010/api/v1/services/t4cg4wk480w4ck0so0og4wgk/stop \
  -H "Authorization: Bearer <token>"

Disaster Recovery

If Coolify is lost but data survives:

cd /home/clint/containers/immich
sudo docker compose up -d

This standalone compose + .env will start Immich with the same config. Traefik routing would need to be re-added.

Backup Locations

Data Location
Config backup /home/clint/containers/immich.backup/
Original compose /home/clint/containers/immich.backup/docker-compose.yml.original
Original .env /home/clint/containers/immich.backup/.env.original
Postgres data Local disk at /home/clint/containers/immich/postgres
Photo data On NAS at //192.168.69.2/archive
Description
Immich photo server on box-stableapps (192.168.69.4)
Readme 29 KiB