Quick start in 30 minutes
This is the gentle ritual: a working Haven on one server, using Docker so you don’t install Python, PostgreSQL or Node by hand. By the end you’ll log into your very own instance and browse the catalogue.
Make sure you’ve done the Before you begin checklist (a host, Docker, and a TMDB key).
Step 1 — Bring up the backend + database
Section titled “Step 1 — Bring up the backend + database”# Clone the braingit clone https://gitlab.ramon.moe/crimsonhaven-to/crimson-backend.gitcd crimson-backend
# Create your settings file from the templatecp .env.example .envOpen .env in any text editor and set these few lines:
# Required: your free TMDB token from themoviedb.orgTMDB_API_KEY=paste_your_tmdb_token_here
# A secret used to sign things. Generate one with: openssl rand -hex 32PROXY_SECRET=paste_a_long_random_hex_string_here
# Let yourself register an account (any code you like; you'll type it at signup)SIGNUP_INVITE_CODE=let-me-inNow start it (this also launches a bundled PostgreSQL database for you):
docker compose up -dWait ~30 seconds, then check it’s alive:
curl http://localhost:8000/healthYou should see a small JSON blob with "status": "ok". The interactive API docs
are at http://localhost:8000/docs. The brain is awake. 🧠
Step 2 — Clone the client (sources are optional)
Section titled “Step 2 — Clone the client (sources are optional)”cd ..git clone https://gitlab.ramon.moe/crimsonhaven-to/crimson-client.gitcd crimson-clientThe client bundles a private sources engine for playback — but it’s built with a safeguard: if you don’t have one, the build automatically falls back to a no-op and the site runs with no client-side sources. Metadata, accounts and browsing all work; only playback waits until you add sources later.
So there’s nothing to do here to get started — just clone it and move on.
Step 3 — Build and run the client
Section titled “Step 3 — Build and run the client”Point the client at the backend you started in Step 1 and launch it:
# 'localhost:8000' works for a local test. On a server, use your backend's address.VITE_API_BASE_URL=http://localhost:8000 docker compose up --build -dWhen it finishes building, the site is served at http://localhost:8080.
Check it:
curl http://localhost:8080/healthz # -> okStep 4 — Open your Haven
Section titled “Step 4 — Open your Haven”Visit http://localhost:8080 in your browser. You’ll meet the login wall
(the site is members-only by default).
- Choose to create an account.
- When asked for an invite code, type the one you set (
let-me-in). - The easiest account type is the mnemonic (a 12-word phrase) — it needs no email and no mail server. Write the 12 words down and keep them safe; they are your account, and nobody can recover them for you.
You’re in. Search a title, open it, browse seasons — all the metadata flows. 🩸
Where to next
Section titled “Where to next”- First login & admin — become an admin and tour the dashboard.
- Adding your own sources — turn metadata-only into real playback.
- Single host (Docker Compose) — harden this same setup for a real, always-on deployment with a domain.