Build & deploy · 5 min read
Running your own deployment
How a BraveDay instance is deployed on your own cloud server, and what it runs.
Besides BraveDay Cloud, the platform can run on a cloud server you own, under your own domain and in the region you choose. That is delivered as a BraveDay Business implementation: we agree the architecture, configure the modules for your process, migrate your data, and cover the running instance with a support agreement. This guide describes what that deployment actually consists of, so you know what you are getting.
Shape of a deployment
- A single cloud instance runs the whole stack behind a reverse proxy with automatic HTTPS.
- Larger installs split the database onto managed Postgres and keep the app and worker on the instance.
- Deploys are container-based: a one-shot migration step runs before the new app version starts.
- Backups, monitoring and update cadence are set out in the support agreement.
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 its credentials are configured: Google/Microsoft OAuth, an SMTP or Resend key for email, an Anthropic key for Beaver, Twilio for SMS/WhatsApp/voice, a Telegram bot token, Stripe for payments, and the Twenty base URL and client id for CRM sync. Each is inert - and hidden in the UI - until configured, so you only light up what you actually use.
Heads up
On redeploy, the migration step always runs before the new app boots - otherwise new code can start against an un-migrated database. The deploy script enforces that order.
Related guides
Ready to try it? Get started free, or browse all guides.