# ======================================== # Plunk Self-Hosting Configuration # ======================================== # ======================================== # REQUIRED: Security & Database # ======================================== DB_PASSWORD=changeme123 JWT_SECRET= # ======================================== # REQUIRED: Domains # ======================================== # Replace example.com with your domain # Or use *.localhost for local testing API_DOMAIN=api.example.com DASHBOARD_DOMAIN=app.example.com LANDING_DOMAIN=www.example.com WIKI_DOMAIN=docs.example.com # Set to 'true' if using HTTPS in production (behind a reverse proxy/load balancer) # This affects how application URIs are auto-generated from domain names USE_HTTPS=false # ======================================== # REQUIRED: AWS SES (Email Sending) # ======================================== AWS_SES_REGION=us-east-1 AWS_SES_ACCESS_KEY_ID= AWS_SES_SECRET_ACCESS_KEY= # Configuration sets for email tracking # SES_CONFIGURATION_SET: Default configuration with open/click tracking enabled SES_CONFIGURATION_SET=plunk-configuration-set # SES_CONFIGURATION_SET_NO_TRACKING: Optional configuration without tracking # If not set, the tracking toggle will be hidden in project settings # When set, projects can choose to disable email tracking SES_CONFIGURATION_SET_NO_TRACKING=plunk-no-tracking-configuration-set # ======================================== # OPTIONAL: OAuth Login # ======================================== GITHUB_OAUTH_CLIENT= GITHUB_OAUTH_SECRET= GOOGLE_OAUTH_CLIENT= GOOGLE_OAUTH_SECRET= # ======================================== # OPTIONAL: Stripe Billing # ======================================== STRIPE_SK= STRIPE_WEBHOOK_SECRET= STRIPE_PRICE_ONBOARDING= STRIPE_PRICE_EMAIL_USAGE= STRIPE_METER_EVENT_NAME=emails # ======================================== # OPTIONAL: File Storage (Minio) # ======================================== # Minio is included by default in Docker Compose # These credentials match the Minio service configuration # Leave defaults unless you're using external storage MINIO_ROOT_USER=plunk MINIO_ROOT_PASSWORD=plunkminiopass MINIO_API_PORT=9000 MINIO_CONSOLE_PORT=9001 # S3-compatible storage configuration # For self-hosted: uses internal Minio service (defaults work out of the box) S3_ENDPOINT=http://minio:9000 S3_ACCESS_KEY_ID=plunk S3_ACCESS_KEY_SECRET=plunkminiopass S3_BUCKET=uploads S3_PUBLIC_URL=http://localhost:9000/uploads S3_FORCE_PATH_STYLE=true # ======================================== # OPTIONAL: Notifications (ntfy.sh) # ======================================== # Plunk includes a self-hosted ntfy.sh server for system notifications # You can access the ntfy web UI at http://localhost:8080 (or your configured NTFY_PORT) # Subscribe to the topic 'plunk-notifications' to receive notifications # Port for ntfy web UI and API (default: 8080) NTFY_PORT=8080 # Ntfy topic URL - Uses internal ntfy service by default # To use external ntfy.sh or your own server, change this URL # Examples: # - Self-hosted (default): http://ntfy/plunk-notifications # - Public ntfy.sh: https://ntfy.sh/your-unique-topic-name # - Custom server: https://your-ntfy-server.com/your-topic NTFY_URL=http://ntfy/plunk-notifications # ======================================== # OPTIONAL: SMTP Server # ======================================== # The SMTP relay server allows sending emails via SMTP protocol # TLS certificates can be mounted via: # 1. Traefik acme.json (requires SMTP_DOMAIN to select the right cert) # 2. PEM files (privkey.pem and fullchain.pem) # SMTP domain - Required if using Traefik acme.json with multiple certificates # Optional if using PEM files SMTP_DOMAIN=smtp.example.com # SMTP Ports (defaults work for most setups) # PORT_SECURE=465 # SMTPS (implicit TLS) # PORT_SUBMISSION=587 # SMTP Submission (STARTTLS) # Maximum recipients per email (default: 5) # MAX_RECIPIENTS=5 # ======================================== # OPTIONAL: Platform emails # ======================================== # Your Plunk instance will send emails if you provide a Plunk API key and a from address # These emails include system notifications, for example when your project hits billing limits # PLUNK_API_KEY= # PLUNK_FROM_ADDRESS= # ======================================== # ADVANCED (rarely needed) # ======================================== # NGINX_PORT=80