Skip to main content

Deployment Overview

Choose the deployment method that best fits your needs.

Deployment Options

MethodBest ForComplexityCost
Quick StartFirst-time usersLowVaries
DigitalOceanSimple cloud hostingMedium$6-12/mo
GitHub Actions CI/CDAutomated deploymentsMediumFree tier

Requirements

All deployment methods require:

  • Domain name with DNS pointing to your server
  • SSL certificates (can be auto-generated with Let's Encrypt)
  • Ports 80 and 443 open for web traffic

Server Requirements

ResourceMinimumRecommended
RAM1GB2GB
Disk20GB40GB
CPU1 vCPU2 vCPU

Architecture

All deployment methods use the same architecture:

Subdomains

The platform uses the following subdomains:

SubdomainPurpose
admin.yourdomain.comAdmin panel (main application)
www.yourdomain.comWelcome page / Primary content
minio.yourdomain.comMinIO console (only if using MinIO for storage)
*.yourdomain.comUser-created dynamic domains

Managing Services

Use the provided scripts to start and stop BFFless. These scripts read your .env configuration to determine the correct Docker commands.

Start Services

./start.sh [options]
OptionDescription
(none)Start with services configured in .env
--allStart all services (PostgreSQL + MinIO + Redis + SuperTokens)
--minimalStart without optional services (use external databases)
--freshClear frontend cache (use after pulling new images)

Stop Services

./stop.sh

Environment Configuration

Without flags, ./start.sh reads these settings from .env:

VariableDefaultDescription
ENABLE_POSTGREStrueRun PostgreSQL in Docker (set false to use external)
ENABLE_MINIOtrueRun MinIO in Docker (set false to use S3/GCS/Azure)
ENABLE_REDIStrueRun Redis in Docker for caching
SUPERTOKENS_MODElocallocal for Docker container, platform for external

When disabling a service, provide the external connection:

  • ENABLE_POSTGRES=false requires DATABASE_URL
  • ENABLE_MINIO=false → configure storage in setup wizard
  • SUPERTOKENS_MODE=platform requires SUPERTOKENS_CONNECTION_URI

Next Steps

  1. Choose a deployment method from the table above
  2. Follow the SSL Certificates guide if needed
  3. Configure your Environment Variables