Skip to main content

Deployment Overview

Deploy Boards to production with various hosting options and configurations. This section covers everything you need to run Boards in a production environment.

Deployment Components

A complete Boards deployment consists of:

ComponentDescriptionRequired
APIGraphQL API server (uvicorn)Yes
WorkerBackground job processorYes
PostgreSQLDatabase for persistent dataYes
RedisJob queue and cachingYes
FrontendWeb application (Next.js)Optional
StorageObject storage for artifactsYes

Quick Start Paths

Choose your deployment approach:

Development / Single Server

Use Docker Compose for the simplest setup:

# Using the CLI
npx @weirdfingers/baseboards

# Or manual Docker Compose
docker compose up -d

See Docker Deployment for details.

Production / Scalable

For production workloads:

  1. Kubernetes - Full control with K8s manifests → Kubernetes Guide
  2. Cloud Platform - Managed infrastructure:

Configuration Checklist

Before deploying, you'll need to configure:

1. Database

Choose your PostgreSQL provider:

OptionBest ForGuide
Self-hostedSingle server, devStandalone PostgreSQL
SupabaseFull-stack SupabaseSupabase
AWS RDSAWS deploymentsAWS RDS
Cloud SQLGCP deploymentsCloud SQL
AzureAzure deploymentsAzure Database
NeonServerless/edgeNeon

See Managed PostgreSQL for general guidance.

2. Storage

Choose your object storage provider:

ProviderBest For
LocalDevelopment only
S3AWS, S3-compatible services
GCSGoogle Cloud
SupabaseWhen using Supabase

See Storage Configuration for setup.

3. Authentication

Choose your auth provider:

ProviderBest For
JWTSelf-managed auth
SupabaseSupabase users
ClerkQuick setup
Auth0Enterprise
OIDCGeneric providers

See Authentication for setup.

4. Environment & Secrets

Configure environment variables and secrets:

  • Database connection URL
  • Redis connection URL
  • Generator API keys
  • Auth provider credentials
  • Storage credentials

See Configuration Reference for all variables.

Architecture Diagram

┌─────────────────────────────────────────────────────────────┐
│ Your Application │
│ ┌─────────────────┐ ┌─────────────────────────┐ │
│ │ Frontend │ │ Load Balancer │ │
│ │ (Next.js) │────────▶│ (nginx/Caddy/ALB) │ │
│ └─────────────────┘ └───────────┬─────────────┘ │
│ │ │
│ ┌───────────┴───────────┐ │
│ │ │ │
│ ┌─────▼─────┐ ┌──────▼─────┐│
│ │ API │ │ Worker ││
│ │ (uvicorn) │ │ (boards- ││
│ │ │ │ worker) ││
│ └─────┬─────┘ └──────┬─────┘│
│ │ │ │
│ ┌───────────────────┼───────────────────────┤ │
│ │ │ │ │
│ ┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐ │
│ │ PostgreSQL │ │ Redis │ │ Storage │ │
│ │ │ │ │ │ (S3/GCS) │ │
│ └───────────┘ └───────────┘ └───────────┘ │
└─────────────────────────────────────────────────────────────┘

Pre-built Images

Boards publishes pre-built Docker images:

Backend (API + Worker):

  • GHCR: ghcr.io/weirdfingers/boards-backend:latest
  • Docker Hub: cdiddy/weirdfingers-boards-backend:latest

Frontend: Requires custom build (see Frontend Deployment)

Security Checklist

Before going to production:

  • HTTPS enabled with valid certificates
  • Auth provider configured (not none)
  • Database connections encrypted (SSL)
  • Secrets stored securely (not in code)
  • CORS origins restricted
  • API rate limiting enabled
  • Regular backups configured
  • Monitoring and alerting set up

Documentation Structure

SectionContent
DockerDocker Compose deployment
KubernetesK8s manifests
MonitoringLogging, health checks, metrics
ConfigurationEnvironment variables reference
StorageObject storage setup
AuthenticationAuth provider configuration
FrontendWeb application deployment
UpgradesVersion upgrades and database migrations
DatabasePostgreSQL setup guides
Cloud PlatformsPlatform-specific guides

Getting Help