Overview
Autumn is fully open-source and can be self-hosted on your own infrastructure. This guide will walk you through setting up Autumn using Docker Compose.Prerequisites
Before you begin, make sure you have the following installed:- Bun - JavaScript runtime and package manager
- Docker - Container runtime
- PostgreSQL - Database (or use Supabase)
- Stripe Account - For payment processing
Architecture
The self-hosted Autumn setup includes:- Vite Frontend - React dashboard on port 3000
- Server - Hono API server on port 8080
- Workers - BullMQ background job processors
- Valkey - Redis-compatible cache on port 6379
- LocalTunnel - Webhook endpoint for Stripe (development only)
Installation
Run the setup script
The setup script will guide you through configuration:This will:
- Generate encryption keys for secure data storage
- Set up Stripe webhook endpoints
- Optionally create a Supabase database instance
- Create the
server/.envfile with all required variables
Environment Configuration
The setup script creates aserver/.env file. Here are the key environment variables:
Required Variables
Optional Variables
If you’re using your own Postgres instance instead of Supabase, simply paste your connection string in
DATABASE_URL and leave the Supabase variables empty.Running with Docker Compose
Autumn includes Docker Compose configurations for different platforms:Verify services are running
Check that all services are healthy:You should see:
vite- Frontend (port 3000)server- API server (port 8080)workers- Background jobsvalkey- Redis cache (port 6379)shared- Shared packageslocaltunnel- Webhook tunnel
Docker Services Explained
Valkey (Redis)
Provides caching and job queue storage:Vite Frontend
React-based dashboard application:Server
Hono-based API server:Workers
BullMQ background job processors:Authentication Setup
Development Mode
In development, Autumn uses console-based OTP authentication:- Navigate to
http://localhost:3000 - Enter your email address
- Check your terminal/console for the OTP code
- Enter the OTP to sign in
The OTP will appear in the logs of the
server container. If running in detached mode, use docker compose logs server -f to view logs.Production Mode
For production deployments, configure one or both of: Email OTP with Resend:Database Configuration
Using Supabase (Recommended)
The setup script can automatically provision a Supabase database:- Run
bun setup - Choose to create a Supabase instance
- The script will configure
DATABASE_URL,SUPABASE_URL, andSUPABASE_SERVICE_KEY
Using Your Own PostgreSQL
To use your own Postgres instance:- Create a database for Autumn
- Update
server/.env: - Run migrations:
Stripe Configuration
Autumn requires a Stripe account for payment processing:Create a Stripe account
Sign up at stripe.com if you haven’t already.
Get your API keys
Navigate to Developers → API keys in your Stripe dashboard and copy your secret key.
Configure in Autumn
Add your Stripe keys in the Autumn dashboard under Settings → Integrations → Stripe.
Set up webhooks
The setup script automatically configures webhook endpoints using LocalTunnel for development.For production, configure your webhook endpoint:Subscribe to these events:
customer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deletedinvoice.payment_succeededinvoice.payment_failedcheckout.session.completed
Stopping Services
To stop all running containers:Production Deployment
For production deployments:-
Set production environment variables
- Update
BETTER_AUTH_URLandCLIENT_URLto your production domain - Configure real email service (Resend) or OAuth
- Use a production Postgres instance
- Set up Redis with persistence
- Update
-
Use a production Docker Compose file
-
Configure reverse proxy
Use nginx or Caddy to handle SSL and route traffic:
- Frontend → port 3000
- API → port 8080
-
Set up monitoring
Configure Axiom or your preferred logging solution:
Troubleshooting
Database Migration Errors
If you encounterSyntaxError: Unexpected end of JSON input:
- Connect to your database
- Drop all tables
- Run migrations again:
Service Not Starting
Check container logs:Port Conflicts
If ports 3000, 8080, or 6379 are already in use, update the port mappings in yourdocker-compose.yml file:
Redis Connection Issues
Verify Valkey is running:Updating Autumn
To update to the latest version:Getting Help
Discord Community
Join our community for real-time support
GitHub Issues
Report bugs or request features
Email Support
Reach out to the team directly
Contributing Guide
Learn how to contribute to Autumn