Deployment options
Toots can be deployed using several approaches:- Docker Compose - Recommended for self-hosting and development environments
- Container orchestration - Deploy on Kubernetes, AWS ECS, or similar platforms
- Platform-as-a-Service - Deploy to Vercel, Railway, or other Next.js-compatible platforms
Prerequisites
Before deploying Toots, ensure you have:- Node.js 20 or higher
- PostgreSQL 16 or compatible version
- pnpm package manager
- Required environment variables configured
Environment variables
Toots requires the following environment variables:| Variable | Description | Required |
|---|---|---|
DATABASE_URL | PostgreSQL connection string | Yes |
BETTER_AUTH_SECRET | Random secret for session signing | Yes |
BETTER_AUTH_URL | Base URL of your application | Yes |
GOOGLE_GENERATIVE_AI_API_KEY | Gemini API key for AI features | Yes |
POSTGRES_USER | PostgreSQL username (for Docker) | Yes |
POSTGRES_PASSWORD | PostgreSQL password (for Docker) | Yes |
POSTGRES_DB | PostgreSQL database name (for Docker) | Yes |
Architecture
Toots uses a monorepo structure with Turborepo:- apps/web - Next.js application (App Router)
- packages/ui - Shared UI components (shadcn/ui)
- Database - PostgreSQL with Prisma ORM
Build process
The build process includes:- Install dependencies with pnpm
- Generate Prisma client
- Run database migrations
- Build Next.js application