Self-Hosting Guide
Run AgentTodo on your own infrastructure. Full control, no limits, your data stays yours.
Requirements
- Node.js 18+ (20+ recommended)
- pnpm (
npm install -g pnpm) - Supabase project — free tier works great
Step 1: Clone & Install
git clone https://github.com/EricStrohmaier/agenttodo.git
cd agenttodo
pnpm installStep 2: Supabase Setup
- Create a new project at supabase.com
- Go to SQL Editor in your Supabase dashboard
- Run the migration file:
supabase/migrations/001_full_schema.sqlPaste the file's contents into the SQL Editor and click Run.
Alternatively, if you have the Supabase CLI:
supabase link --project-ref your-project-ref
supabase db push- Get your credentials from Settings → API:
- Project URL (e.g.
https://abc123.supabase.co) anonpublic keyservice_rolesecret key
- Project URL (e.g.
Step 3: Environment Variables
cp .env.example .env.localFill in your .env.local:
# Supabase (required)
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...
# App URL
NEXT_PUBLIC_SITE_URL=http://localhost:3000
# Stripe (optional — only needed for paid plans on cloud version)
# STRIPE_SECRET_KEY=sk_...
# STRIPE_WEBHOOK_SECRET=whsec_...
# NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_...Step 4: Run
pnpm devOpen http://localhost:3000 — you're live! 🎉
Step 5: Create Your First API Key
- Sign up at your local instance
- Go to the Agents page
- Click Create API Key and give it a descriptive name (e.g.
my-first-agent) - Copy the key and test it:
curl http://localhost:3000/api/tasks \
-H "Authorization: Bearer your-api-key-here"You should get back [] (empty task list). You're ready to go.
Deploying to Vercel
The easiest way to deploy AgentTodo to production:
- Push your fork to GitHub
- Go to vercel.com → Import Project
- Select your repo
- Add your environment variables in the Vercel dashboard (same as
.env.local) - Deploy
Vercel handles builds, SSL, and scaling automatically. That's it.
Deploying to Railway / Render
Both platforms support Next.js apps out of the box:
- Railway: Connect your GitHub repo, set env vars, deploy. Railway auto-detects Next.js.
- Render: Create a new Web Service, connect repo, set build command to
pnpm buildand start command topnpm start.
Set the same environment variables as above on either platform.
Deploying with Docker
Docker support is coming soon. Stay tuned — we'll provide a Dockerfile and docker-compose.yml for easy containerized deployments.
Updating
When new features land:
git pull origin main
pnpm installCheck if the migration file in supabase/migrations/ has been updated and re-run it in your Supabase SQL Editor. Then redeploy.