Self-Hosting Guide
Bellamy Book is a self-hosted social network.
One server / one Docker stack = your community (Frontend + Admin + API + workers + data). You own the data and the domain.
Canonical install uses the self-host kit (dockerPublish): Docker Compose, pre-built images, one .env. No application source build required.
Evaluating the product? See the self-hosted social network landing, then return here for deploy steps.
Architecture of what runs: Deployment architecture.
Can I self-host from this kit alone?
Yes. Use the dockerPublish folder (or a release package that includes it: docker-compose.yml, .env.example, config dirs):
- Copy
.env.example→.env(domain, secrets, passwords, MinIO, JWT). - Create the MongoDB keyfile (one command).
- Run
docker compose pull && docker compose up -d.
Optional: SMTP, Turnstile, Google Login, LiveKit, R2 — see Configuration in the sidebar.
Which folder is which?
| Folder / path | Audience | Purpose | Root / (guests) |
|---|---|---|---|
dockerPublish | Operators | Self-host kit — start here | Sign-in (VITE_SHOW_MARKETING_LANDING=false) — community app |
dockerProd | Maintainers with full repo | Official bellamybook.com / full monorepo prod | Marketing landing (VITE_SHOW_MARKETING_LANDING=true) — SEO product site |
dockerLocalENV | Developers | Infra only for local coding | N/A (apps run from source) |
Self-host (dockerPublish) is a community social network: guests hitting / go to login, not the Bellamy Book product landing.
Official site (dockerProd / bellamybook.com) keeps / as the marketing landing for SEO.
Same frontend image; toggle with runtime VITE_SHOW_MARKETING_LANDING in .env (see Environment). Set true on self-host only if you deliberately want the product landing as your homepage.
Official repository
What you get
- Full control over data and branding
- Social app + Admin panel + Docs
- Storage (required): MinIO by default (
MINIO_*,Minio__PublicUrl) or R2 - Optional: SMTP, Turnstile, Google OAuth, LiveKit, content moderation
Installation
| Guide | When to use it |
|---|---|
| Self-Host with Pre-Built Images | Self-host kit — recommended |
| Test the stack locally | Try before DNS / server |
| Traefik when you deploy | Production hostnames + HTTPS |
| Docker Compose (full project) | Full source / dockerProd-style stack |
A non-Docker “manual” install is not a supported first-class path. Prefer Docker Compose. If you must run services bare-metal, use Backend + Deployment as a map and run each dependency yourself.
Requirements
For the full stack (API, frontend, admin, workers, databases):
- CPU: 8+ cores
- RAM: 16GB+
- Storage: 200GB+ SSD
- Software: Docker and Docker Compose
Local testing can use fewer resources (see local-testing guide).
Quick start (self-host kit)
- Env: Copy
.env.example→.env. Set registry/tag, domain URLs, passwords. See Environment. - Mongo keyfile:
openssl rand -base64 756 > mongo-keyfile && chmod 600 mongo-keyfile - Run:
docker compose pull && docker compose up -d - Access: Configured Traefik URLs, or without Traefik: Frontend
:8081, Admin:8084, API:5000 - Admin: Activate license, set registration/settings, verify media upload
Full steps: docker-publish install.
Configuration & maintenance
Use the sidebar: Environment, JWT, Database, Storage, SMTP, Turnstile, Google OAuth, LiveKit, Live chat, Content moderation, Backups, Updates, Monitoring.