Quickstart Guide
Get Budgetron running on your system in under 5 minutes using Docker. This guide will walk you through the fastest path to a working installation.This quickstart uses Docker for the simplest setup. For other installation methods, see the Installation Guide.
Prerequisites
Before you begin, ensure you have:- Docker installed and running (Get Docker)
- PostgreSQL database accessible (local or hosted)
- 10 minutes of your time
Quick Setup
Set Up Environment Variables
Copy the example environment file and configure your settings:Open
.env in your favorite editor and configure the required variables:Optional: Enable AI Categorization
Optional: Enable AI Categorization
For AI-powered transaction categorization, add these variables:Or use a hosted provider like OpenAI or Groq:
Optional: Enable Google Sign-In
Optional: Enable Google Sign-In
To enable Google OAuth authentication:
Build the Docker Image
Build the Budgetron Docker image:
The build process includes dependency installation, Next.js compilation, and migration tooling setup. This may take 5-10 minutes on first build.
Run the Container
Start Budgetron with your environment variables:Or pass environment variables directly:
Verify It's Running
Check the container logs to ensure everything started correctly:You should see:
The container automatically waits for the database to be ready, runs migrations, and starts the server.
What Happens on Startup?
The Docker container runs through an automated startup sequence:- Database Health Check - Waits up to 30 seconds for PostgreSQL to be ready
- Schema Migration - Automatically applies all pending Drizzle ORM migrations
- Server Start - Launches the Next.js production server
Next Steps
Configure Authentication
Set up Google OAuth or custom OAuth providers
Enable AI Features
Configure AI-powered transaction categorization
Production Deployment
Deploy Budgetron to production with best practices
Development Guide
Set up your local development environment
Troubleshooting
Container exits immediately
Container exits immediately
Check the logs with
docker logs budgetron. Common issues:- Missing environment variables: Ensure
AUTH_SECRET,AUTH_URL,DB_URL,CRON_SECRET_SLUG, andCRON_SECRET_TOKENare set - Database connection failed: Verify your
DB_URLis correct and the database is accessible
Database connection timeout
Database connection timeout
If you see
DB unavailable after 30s, your database might not be accessible:- Verify the PostgreSQL server is running
- Check firewall rules allow connections
- Ensure credentials in
DB_URLare correct - If using Docker networking, use the container name instead of
localhost
Port already in use
Port already in use
If port 3000 is already in use:Then access Budgetron at
http://localhost:8080Migration errors
Migration errors
If migrations fail:
- Ensure the database user has CREATE TABLE permissions
- Check if the database already has conflicting tables
- Review migration logs:
docker logs budgetron | grep migration
For more detailed troubleshooting, see the Installation Guide or join our community discussions.