Read-only demo: browse every page; changes are not saved.

Setup

Every outside service, whether its key is set, and a button to test it. Keys live in your .env file; restart the app after changing them.

Core

  • DATABASE_URLPostgreSQL 17.2 · 1 migrations appliedWorking
  • APP_URLhttps://mailorbit-app-demo.templates.codememory.comWorking
  • APP_SECRET64 charactersWorking
  • WorkerLast heartbeat 10 seconds agoWorking

Email sending

  • Default senderDemo mode: every email goes to the outbox, nothing is sentCheck
  • WEBHOOK_KEYOptional · protects the bounce webhooksOptional

Payments

  • STRIPE_SECRET_KEYNot set: demo payments are onCheck
  • STRIPE_WEBHOOK_SECRETOptional until Stripe is onOptional

Storage

  • UPLOAD_DIRImages saved in /app/uploadsWorking

All environment keys

  • DATABASE_URLRequired. PostgreSQL connection URL. The Docker stack builds it from the POSTGRES_* keys for you.
  • APP_URLRequired. Public address of your platform, no trailing slash. Tracking links, signup forms and unsubscribe links use it.
  • APP_SECRETRequired. A long random string (32+ characters). Signs sessions and links and encrypts sending-server keys. Never change it after setup.
  • POSTGRES_DBRequired. Database name the Docker stack creates.
  • POSTGRES_USERRequired. Database user the Docker stack creates.
  • POSTGRES_PASSWORDRequired. Database password. Letters and digits only (it goes into a URL).
  • WEB_PORTOptional. Host port for the web app (default 3000).
  • DOMAINOptional. Your domain for automatic HTTPS with the bundled Caddy (`--profile https`).
  • STRIPE_SECRET_KEYOptional. Stripe secret key (dashboard.stripe.com/apikeys). Empty = plan changes use the demo payment.
  • STRIPE_WEBHOOK_SECRETOptional. Signing secret of the Stripe webhook that points at <APP_URL>/api/stripe/webhook.
  • WEBHOOK_KEYOptional. Shared key for bounce webhooks: add ?key=<value> to the webhook URLs you give SES, Mailgun and Postmark.
  • UPLOAD_DIROptional. Folder for uploaded images (default ./uploads; the Docker stack uses a volume).
  • WORKER_INTERVAL_MSOptional. How often the worker looks for work, in milliseconds (default 2000).
  • LOG_EMAILSOptional. Set to false to stop the Log-only sender printing each email to the console.
  • DEMO_MODEOptional. Leave empty. "true" turns on the public-demo mode: one-click demo logins, nothing is ever sent, nightly reset.

Platform status

Ready, in safe mode

Some services run on their safe defaults (log-only email, demo payments) until you add keys.

  • 5 of 9 checks pass
  • 2 optional services not set
  • 2 running on safe defaults (demo mode)

Send a test email

[log] Oct 16, 05:52 to=emma.al-amin@posteo.de subject="Did you miss this?"[log] Oct 16, 05:52 to=elias.costa@outlook.com subject="Did you miss this?"[log] Oct 16, 05:52 to=liam.castro@hey.com subject="Did you miss this?"