Quick Start
The simplest, safest way to run Immerle: Docker Compose, with Postgres instead of SQLite.
If you don't already know why "don't forward ports on your router" matters, follow this section as-is and don't deviate: every step is chosen to be the thing that's hardest to get wrong, not the thing with the most options. The Installation and Configuration pages cover the other ways to run Immerle (SQLite, building from source, running behind your own reverse proxy…) once you want more control.
Run it
Create a folder, drop your music under music/, and save this as
docker-compose.yml next to it. Music, the database and daily Postgres
backups each live in their own Docker volume rather than a host folder, more
portable if you manage this stack from Portainer, Komodo or similar. The
admin password below is generated fresh right now, reload this page for a
different one:
services:
immerle:
image: ghcr.io/immerle/immerle:latest
ports:
- "4533:4533"
environment:
DATABASE_DRIVER: "postgres"
DATABASE_DSN: "postgres://immerle:immerle@postgres:5432/immerle?sslmode=disable"
LIBRARY_DATA_DIR: "/data"
LIBRARY_PATHS: "/music"
ADMIN_USERNAME: "admin"
ADMIN_PASSWORD: "change-me"
volumes:
- immerle-music:/music:ro
- immerle-data:/data
depends_on:
postgres:
condition: service_healthy
restart: unless-stopped
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: immerle
POSTGRES_PASSWORD: immerle
POSTGRES_DB: immerle
volumes:
- immerle-pg:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U immerle"]
interval: 5s
timeout: 3s
retries: 5
restart: unless-stopped
# Daily pg_dump, keeps the last 7 and prunes anything older.
backup:
image: prodrigestivill/postgres-backup-local:16
depends_on:
postgres:
condition: service_healthy
environment:
POSTGRES_HOST: postgres
POSTGRES_DB: immerle
POSTGRES_USER: immerle
POSTGRES_PASSWORD: immerle
SCHEDULE: "@daily"
BACKUP_KEEP_DAYS: 7
BACKUP_KEEP_WEEKS: 0
BACKUP_KEEP_MONTHS: 0
volumes:
- immerle_backup:/backups
restart: unless-stopped
volumes:
immerle-data:
immerle-pg:
immerle-music:
immerle_backup:
Start it, then copy your music into the immerle-music volume:
docker compose up -d
docker run --rm -v immerle-music:/dest -v "$PWD/music":/src:ro alpine cp -a /src/. /dest/
Open http://localhost:4533 on the same machine and sign in with admin /
the password from the ADMIN_PASSWORD line above. That's it: the server,
database and your library are all up, with the last 7 daily database backups
always kept in the immerle_backup volume.
Next
- Choosing a client: connect and pick between the
Immerle app,
iml, or a Subsonic client.