Installation
-
Get the compose files. They live in the repository, next to the example configuration:
Terminal window git clone https://github.com/Logan2234/loomkeep.gitcd loomkeepcp .env.example .env -
Fill in
.env. At least:Variable Value POSTGRES_USER,POSTGRES_DBAny name, e.g. loomkeep.POSTGRES_PASSWORDA long random password. JWT_ACCESS_SECRET,JWT_REFRESH_SECRETTwo different values from openssl rand -hex 32.MFA_ENCRYPTION_KEYopenssl rand -base64 32. Needed in production, and never to be changed once someone uses two-factor authentication.TMDB_API_TOKENYour TMDB token: see Catalogue keys. BACKUP_ENCRYPTION_PUBLIC_KEYThe public key backups are encrypted for: see Backups. ADMIN_EMAILThe email you will sign up with: that account becomes the administrator. Every other variable is optional: see Configuration.
-
Start it. Always from the repository’s root:
Terminal window docker compose -f docker/docker-compose.yml pulldocker compose -f docker/docker-compose.yml up -dThe API applies its database migrations on its own as it starts.
-
Create your account. Open
http://localhost:8080and sign up withADMIN_EMAIL: Admin appears in your menu.
The base setup publishes the web app on port 8080 and the API on 3000, both over plain HTTP. That’s fine on a home network; for anything reachable from the internet, or to install the app on a phone, use a domain with HTTPS instead, which publishes only 80 and 443.
Adding overrides
Section titled “Adding overrides”Every optional piece (HTTPS, monitoring…) is one more compose file. Rather
than chaining -f flags, list them in COMPOSE_FILE in .env, separated by
colons:
COMPOSE_FILE=docker/docker-compose.yml:docker/docker-compose.prod.ymlCompose reads it on its own, so from then on the commands are just:
docker compose pulldocker compose up -d- Catalogue keys for games, ratings, Steam and Simkl.
- Email and push.
- Instance settings: close sign-ups once your accounts exist.