Build & self-host · 5 min read
Self-hosting DayOtter
Run the whole platform on your own infrastructure, with every feature unlocked.
DayOtter's core is open-source (AGPLv3) and ships with Docker. Self-hosted, every Pro feature is free - teams, routing, AI, payments, CRM - because the paywall only exists on the hosted cloud. You bring the keys for the integrations you want; everything else just works.
Ways in
- One-click on AWS - a CloudFormation template boots the full stack on a single instance.
- One command on any Ubuntu/Debian box - the installer sets up Docker, generates secrets, and starts everything.
- Manual - clone the repo and bring the compose stack up yourself.
- Behind your own nginx - publish the app on localhost and terminate TLS with your existing reverse proxy.
What runs
- web - the Next.js app (booking pages, dashboard, API).
- worker - background jobs: reminders, calendar sync, webhooks, briefings, CRM sync.
- postgres and redis - the database and the queue/cache.
- A one-shot migrate step that applies database migrations on every deploy.
Turning on integrations
Everything except the calendar core is off until you add its keys: Google/Microsoft OAuth, an SMTP or Resend key for email, ANTHROPIC_API_KEY for Otter, Twilio for SMS/WhatsApp/voice, Stripe for payments, and the Salesforce/HubSpot client credentials for CRM. Each is inert (and hidden) until configured.
Heads up
On redeploy, always run the migration step before the new app boots - the deploy script does this in order. Otherwise new code can start against an un-migrated database. See the deploy README for the exact sequence.
Related guides
Ready to try it? Get started free, or browse all guides.