Skip to content

Quickstart

This guide gets a complete Alcoves instance running locally: the Nuxt frontend, the Go API + worker, PostgreSQL, and Dragonfly (a Redis-compatible queue).

  • Docker and Docker Compose (v2)
  • ~8 GB of free RAM (the CPU-only ML models are the ceiling)
  • Git
Terminal window
git clone https://github.com/rustyguts/alcoves.git
cd alcoves
cp .env.example .env

Open .env and set a real session secret before anything else:

Terminal window
# Generate an AES-GCM key (must be ≥ 32 bytes)
openssl rand -base64 32

Paste the result into ALCOVES_SESSION_SECRET.

Terminal window
docker compose up

This brings up four services:

ServiceHost portPurpose
Frontend3000Nuxt (Nitro) server — open this in your browser
Backend API3001Go API + worker (ALCOVES_MODE=all)
Dragonfly6389Redis-compatible async job queue (Asynq)
PostgreSQLinternalPrimary database; reachable in-network at postgres:5432 only

Goose migrations run automatically on startup, so the schema is ready the first time the API boots.

Visit http://localhost:3000 and register the first account. The first user becomes the instance owner — the only role that can reach the admin panel, the job queue dashboard, registration policy, and ML-model selection.

To run Postgres and Dragonfly in Docker but the apps from source:

Terminal window
docker compose up -d postgres dragonfly

Then start each side from its own directory:

Terminal window
# Backend (from backend/)
go run cmd/server/main.go
# Frontend (from frontend/)
bun install
bun run dev