Skip to content
Documentation

Render

Render documentation for Miru.

Setup
Miru dashboard displayed on a laptop

Deploying Miru on Render

Miru 3.0 is designed to run on Render with:

  • one web service
  • one worker service
  • one Postgres database
  • one Render Key Value instance

For the fastest setup, use the repository Blueprint at the root of the repo:

Or use the one-click button from the main repository README.

Branch model

  • production: deploy branch for app.miru.so
  • develop: integration branch
  • stable-3-0: release preparation branch

One-click deploy

  1. Open the Deploy to Render button from the README.
  2. Confirm the Blueprint resources.
  3. Fill in the required secret values.
  4. Create the stack.
  5. Set APP_BASE_URL to your Render hostname first, then to your custom domain when DNS is ready.

Services created by the Blueprint

  • miru-web
  • miru-worker
  • miru-db
  • miru-redis

Required environment variables

These should be provided during Blueprint setup or immediately after first deploy:

  • APP_BASE_URL
  • DEFAULT_MAILER_SENDER
  • DEFAULT_FROM_EMAIL
  • REPLY_TO_EMAIL
  • EMAIL_DELIVERY_METHOD
  • POSTMARK_API_TOKEN
  • SENTRY_DSN
  • STRIPE_SECRET_KEY
  • STRIPE_PUBLISHABLE_KEY
  • STRIPE_WEBHOOK_ENDPOINT_SECRET
  • STRIPE_MONTHLY_PRICE_ID
  • STRIPE_YEARLY_PRICE_ID
  • STRIPE_PLAN_PAGE_URL
  • GOOGLE_OAUTH_CLIENT_ID
  • GOOGLE_OAUTH_CLIENT_SECRET
  • GOOGLE_CLIENT_ID
  • GOOGLE_CLIENT_SECRET
  • CLOUDFLARE_R2_ACCESS_KEY_ID
  • CLOUDFLARE_R2_SECRET_ACCESS_KEY
  • CLOUDFLARE_R2_BUCKET_NAME
  • CLOUDFLARE_R2_ENDPOINT
  • CLOUDFLARE_R2_REGION

Custom domain

For production:

  1. Add app.miru.so as a custom domain in Render.
  2. Point DNS at the Render web service.
  3. Verify https://app.miru.so/health.
  4. Verify email/password login.
  5. Verify Google OAuth after the callback host changes to the custom domain.

Worker

The worker runs:

bundle exec rake solid_queue:start

Make sure the worker has the same shared app secrets as the web service.

Verification after deploy

Run these checks before cutover:

  1. https://<your-domain>/health
  2. log in with a real owner account
  3. verify one worker-backed action
  4. verify one mailer flow
  5. check Sentry for new unresolved errors
Try Miru

Read it once. Run it for real.

The docs explain the workflow. Miru gives you the actual timer, invoice, reports, and payment flow without another pile of tools.

Setup
Miru dashboard displayed on a laptop
Workspace Miru
Start Tracking Free