Skip to Content
GuidesDocker Quick Start

Docker Quick Start

Get Bliss running locally in under 5 minutes.

Prerequisites

  • Docker and Docker Compose installed
  • No other services on ports 8080, 3000, 3001, or 5432

Start everything

git clone https://github.com/your-org/bliss.git && cd bliss ./scripts/setup.sh # generates secrets, creates .env docker compose up --build # starts all 5 services

Open http://localhost:8080  once all containers are healthy. The database is auto-migrated and seeded with reference data (countries, currencies, banks) on first boot.

Create your account

  1. Click Sign Up and fill in email, password, and tenant name (this is your workspace).
  2. The onboarding wizard asks you to select your countries and currencies.
  3. After onboarding, you land on an empty dashboard.

Onboarding wizard

What’s running

ContainerPortRole
web (Nginx)8080Serves the React SPA
api (Next.js)3000Auth, REST API, Prisma ORM
backend (Express)3001BullMQ workers, AI pipelines
postgres5432PostgreSQL 16 + pgvector
redis6379Job queues + cache

Data persistence

Your data lives in Docker named volumes (postgres_data, redis_data, uploads_data). It survives docker compose stop and docker compose down. Only docker compose down -v destroys volumes.

Database GUI

Adminer is included at http://localhost:8888 . Log in with system PostgreSQL, server postgres, username bliss, and the POSTGRES_PASSWORD from your .env.


Local Development (Without Docker)

If you prefer running services directly for development:

Prerequisites

DependencyVersionNotes
Node.js20+LTS recommended
pnpm9+corepack enable && corepack prepare pnpm@latest --activate
PostgreSQL16+Must have the pgvector extension
Redis7+Used by BullMQ for job queues

Installing pgvector

macOS (Homebrew):

brew install pgvector

Ubuntu / Debian:

sudo apt install postgresql-16-pgvector

After installation, enable the extension inside your database:

CREATE EXTENSION IF NOT EXISTS vector;

Setup

git clone https://github.com/your-org/bliss.git && cd bliss cp .env.example .env ./scripts/setup.sh # generates secrets pnpm install

Edit .env and set DATABASE_URL and REDIS_URL for your local setup.

createdb bliss psql bliss -c 'CREATE EXTENSION IF NOT EXISTS vector;' pnpm exec prisma migrate deploy --schema=prisma/schema.prisma pnpm exec prisma db seed pnpm dev # starts all services
ServicePort
Frontend (Vite)8080
API (Next.js)3000
Backend (Express + BullMQ)3001

Troubleshooting

pgvector extension not found — Connect to your database and run CREATE EXTENSION IF NOT EXISTS vector;. If this fails, pgvector is not installed at the system level (see prerequisites above).

Port conflicts — The defaults are 8080, 3000, 3001, and 5432. Make sure nothing else is bound to those ports.

Redis connection refused — Verify Redis is running and REDIS_URL in .env points to the correct host.

Prisma migration issues — Reset the database during development with pnpm exec prisma migrate reset --schema=prisma/schema.prisma (destroys all data).


Next steps