# Project pack: Immich @ b9269f8 Facts about **Immich** for an AI following the [BespokeAI handover guide](https://handoff.bespokeai.software/guide/v4.md). Pinned to one version; never changes after publication. > Immich is a private home for your family's photos and videos. The phone app backs up new pictures automatically, and the website lets you browse them on a timeline, a map or by the people in them. Share albums with relatives, see "on this day" memories and search for things like "beach" or "dog". It runs on your own computer or server, so your pictures are not stored with a big tech company. ## Setup path (checked 2026-11-03) - **Needs Docker.** Tell the person before any setup work; no light non-Docker route is documented upstream. Docker Desktop on Windows may need a computer restart and an admin-only Windows feature (virtualisation); say so and let the person decide. - Verdict source: https://docs.immich.app - You may be unable to download source archives or run commands in this session. The person downloads and runs things; if you cannot fetch something, give any changed file in full in chat with its path. ## Version and source - Repository: https://github.com/immich-app/immich - Pinned commit: `b9269f873982c9b1c0f9267aefad8b8b9eacb7d9`. Use exactly this version. - Zip the person can download in a browser: https://github.com/immich-app/immich/archive/b9269f873982c9b1c0f9267aefad8b8b9eacb7d9.zip - Fresh checkout (only if you have a shell and git): use the commands below in an empty folder. If this exact source is already checked out, keep your branch and use the development command; do not clone again or reset local changes. - Official docs: https://docs.immich.app - Live demo: https://demo.immich.app (email: demo@immich.app / password: demo). Public shared demo. Don't upload anything private. - Licence: **AGPL-3.0-only**. Free to use and change. If you run a changed version that other people use over the internet (not just your own household), you must offer them your source code under the same licence. Private family use has no extra obligations. ## Commands from the pinned source - Developer commands (they may use Docker): ```sh git clone https://github.com/immich-app/immich bespoke-immich cd bespoke-immich git checkout --detach b9269f873982c9b1c0f9267aefad8b8b9eacb7d9 # Prepare development requirements and local configuration first. # Setup notes: website on :3000 with hot reload cp docker/example.env docker/.env && mise x -- pnpm i && mise dev ``` - Separate trial of the current upstream release (not your changes; sample data and a separate data directory only): ```sh mkdir immich-app && cd immich-app && wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml && wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env && docker compose up -d # edit UPLOAD_LOCATION and DB_PASSWORD in .env first, then open http://localhost:2283 ``` - Tools these commands use: Docker with Docker Compose (the official Docker Engine, not an old distro package), At least 6 GB RAM and 2 CPU cores (8 GB and 4 cores recommended), For development, mise (installs Node, pnpm and the other tools) - Develop: `cp docker/example.env docker/.env && mise x -- pnpm i && mise dev # website on :3000 with hot reload` - Test: `mise //server:test && mise //web:test` - Check/lint: `mise //server:lint && mise //web:lint && mise //server:check && mise //web:check` - Stack: typescript, svelte, dart, python (NestJS, Kysely, BullMQ, SvelteKit, Tailwind CSS, Flutter). Difficulty for a non-developer with an AI: **advanced**. A large project with four parts: the NestJS server, the SvelteKit website, the Flutter phone app and a Python machine-learning service. Theme, sharing and storage layout are settings. Code changes need the full Docker development stack and usually touch both server and website, with an OpenAPI client generated between them. Personal data: **yes**. Stored in: Original photos and videos in UPLOAD_LOCATION; albums, people, faces and metadata in PostgreSQL (DB_DATA_LOCATION). Secrets are entered by the person, never in chat. --- Later, only when a step needs it: [reference.md](https://handoff.bespokeai.software/p/immich/b9269f8/r3/reference.md) (customisation points, must-keep-working, data and costs, coding conventions) · [hosting.md](https://handoff.bespokeai.software/p/immich/b9269f8/r3/hosting.md) (long-term hosting; hosts are paid third parties) · [bespoke.yaml](https://handoff.bespokeai.software/p/immich/b9269f8/r3/bespoke.yaml) · [SKILL.md](https://handoff.bespokeai.software/p/immich/b9269f8/r3/SKILL.md)