Skip to content

Latest commit

 

History

History
89 lines (71 loc) · 3.29 KB

File metadata and controls

89 lines (71 loc) · 3.29 KB

Setup

This repository is designed for a fresh Ubuntu 24.04 LTS VPS.

For Hetzner Cloud-specific instructions, follow docs/hetzner.md.

Host Preparation

  1. Install Docker and Docker Compose.
  2. Add your deploy user to the docker group.
  3. Open only ports 80 and 443 in the firewall.
  4. Point these DNS records at the VPS:
    • issues.bobadilla.tech
    • tasks.bobadilla.tech
    • flows.bobadilla.tech

Configuration

  1. Copy .env.example to .env.
  2. Copy services/glitchtip.env.example to services/glitchtip.env.
  3. Copy services/plane.env.example to services/plane.env.
  4. Copy services/n8n.env.example to services/n8n.env.
  5. Run ./scripts/generate-secrets.sh --apply to generate the shared passwords and synchronize service .env credentials.
  6. Review .env and confirm the DNS names and generated values are correct.
  7. Make sure the domain names in the service env files match the DNS records.

SMTP (Resend)

Configure outbound email before onboarding users so invite and reset emails can be delivered.

For Resend SMTP, use resend as the SMTP username and your Resend API key as the SMTP password.

  1. In services/glitchtip.env, replace EMAIL_URL=consolemail:// with your Resend SMTP URL, for example: EMAIL_URL=smtp://resend:<resend_api_key>@smtp.resend.com:465/?ssl=True
  2. In services/plane.env, set SMTP values: EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend EMAIL_HOST=smtp.resend.com EMAIL_PORT=465 EMAIL_HOST_USER=resend EMAIL_HOST_PASSWORD=<resend_api_key> EMAIL_USE_TLS=false EMAIL_USE_SSL=true
  3. Keep real SMTP secrets only in runtime .env files on the server. Do not store real credentials in *.example files.
  4. Recreate app services after env updates: docker compose up -d --force-recreate glitchtip plane
  5. Verify email delivery by sending one invite from each app.

Start

Run:

docker compose up -d

Then wait for the database, MinIO, Plane, GlitchTip, and n8n containers to settle.

First Run Checklist

  1. Open https://issues.bobadilla.tech and create the first GlitchTip user, organization, and project.
  2. Copy the GlitchTip DSN and add it to your application.
  3. Open https://tasks.bobadilla.tech and create the first Plane account/workspace.
  4. Open https://flows.bobadilla.tech and finish the n8n setup.
  5. Send one invite from GlitchTip and one invite from Plane to confirm SMTP.

Notes

  • Plane uses its upstream all-in-one image, which still requires RabbitMQ and MinIO in addition to the shared PostgreSQL and Redis services.
  • GlitchTip is configured to keep retention under control from startup.
  • n8n stores workflow data in PostgreSQL and prunes execution history aggressively.