Axel Verne → Junk Drawer kit → Chapter 7
Chapter 7 — Break Up With Big Tech I: Google Photos → Immich
9 blocks to copy, in the order they appear in the chapter. Nothing here is required to be typed by hand.
The build — storage and server
7.1 · bash
mkdir -p /srv/lab/compose/immich && cd /srv/lab/compose/immich7.2 · bash
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.env7.3 · bash
nano .env7.4 · text
# Where your photos live on disk (point this at your big drive)
UPLOAD_LOCATION=/srv/lab/media/immich
# Timezone
TZ=Pacific/Honolulu
# Database password (pick a real one)
DB_PASSWORD=pick-something-long-and-random7.5 · bash
mkdir -p /srv/lab/media/immich7.6 · bash
docker compose up -d
docker compose logs -f # watch for "server started" and "postgres ready" then Ctrl-CThe build — import from Google Takeout
7.7 · bash
# Download the latest binary for your hardware
# On a laptop or desktop:
wget https://github.com/simulot/immich-go/releases/download/v0.32.0/immich-go_Linux_x86_64.tar.gz
tar -xzf immich-go*.tar.gz
sudo mv immich-go /usr/local/bin/
# On a Raspberry Pi (ARM):
wget https://github.com/simulot/immich-go/releases/download/v0.32.0/immich-go_Linux_arm64.tar.gz
tar -xzf immich-go*.tar.gz
sudo mv immich-go /usr/local/bin/
immich-go --version # should show v0.32.0 or later7.8 · bash
# Assume your Takeout zips are in ~/Downloads/takeout
immich-go upload from-google-photos \
--server=http://localhost:2283 \
--api-key=your-api-key-here \
~/Downloads/takeout/takeout-*.zipThe machine-learning note
7.9 · yaml
services:
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:release
# ... (rest of service config unchanged)
environment:
- DISABLE_MACHINE_LEARNING=trueGet the next build in your inbox
An email when a new build write-up goes up: what I ran, on what hardware, and the commands that paste. Free, unsubscribe any time. The kit stays free either way.