Docker deployment
FluxSend can be run with Docker Compose or a standalone container. The repository includes a self-hosted MinIO stack that is the easiest local/private deployment path.
Recommended: self-hosted MinIO stack
The project includes a Docker configuration tuned for MinIO and password auth:
git clone https://github.com/tscrond/fluxsend-backend
cd fluxsend-backend
docker compose -f compose.minio.yaml up -d --build
This stack includes:
| Service | Container | Port |
|---|---|---|
frontend |
React SPA | 8000 |
backend |
FluxSend API + CLI | 3000, 8091 |
postgres |
PostgreSQL 16 | 5432 |
minio |
S3-compatible object storage | 9000, 9001 |
docs |
MkDocs docs site | 8080 |
The default stack in compose.minio.yaml sets:
STORAGE_PROVIDER=minioENABLE_PASSWORD_AUTH=trueMINIO_ENDPOINT=http://minio:9000MINIO_ACCESS_KEY/MINIO_SECRET_KEYfrom MinIO root credentials
This is the best option for a deployment with no cloud storage vendor involved.
Minimal Compose example
services:
backend:
image: fluxsend-backend:dev
ports:
- "3000:3000"
- "8091:8091"
environment:
- STORAGE_PROVIDER=minio
- MINIO_BUCKET_NAME=fluxsend
- MINIO_ENDPOINT=http://minio:9000
- MINIO_ACCESS_KEY=fluxsend
- MINIO_SECRET_KEY=change-me
- MINIO_USE_SSL=false
- ENABLE_PASSWORD_AUTH=true
- ENABLE_GOOGLE_AUTH=false
- ENABLE_GITHUB_AUTH=false
- DB_HOST=postgres
- POSTGRES_USER=fluxsend
- POSTGRES_PASSWORD=change-me
- POSTGRES_DB=fluxsend
- FRONTEND_ENDPOINT=http://localhost:8000
- BACKEND_ENDPOINT=http://localhost:3000
- MAIL_FROM=noreply@example.com
Use a .env file or Compose environment: values for the rest of the backend config.
Standalone Docker container
docker build -t fluxsend-backend .
docker run -d \
--name fluxsend \
--env-file .env \
-p 3000:3000 \
-p 8091:8091 \
fluxsend-backend
The backend reads the same env vars and config file settings as a standalone Linux install. Migration files are included in the image.
Docker image registries
docker.io/bobaklabs/fluxsend-backend:latestghcr.io/tscrond/fluxsend-backend:latest
For self-hosted deployments, the MinIO Compose example is the most practical and least coupled to external infrastructure.