How to self-host Notifuse
8080
with a PostgreSQL database. You’ll still need to configure the required environment variables in a .env
file or directly in the docker-compose.yml
.
https://emails.yourcompany.com
https://YOUR_ENDPOINT/api/cron
endpoint every minute.
Variable | Description |
---|---|
ROOT_EMAIL | Root administrator email (e.g., admin@yourcompany.com ) |
API_ENDPOINT | Public API endpoint URL (e.g., https://emails.yourcompany.com ) |
DB_HOST | PostgreSQL host (e.g., localhost or db.yourcompany.com ) |
DB_PORT | PostgreSQL port (e.g., 5432 ) |
DB_USER | Database username (e.g., postgres ) |
DB_PASSWORD | Database password (e.g., postgres ) |
PASETO_PRIVATE_KEY | Base64 encoded PASETO private key (e.g., 1IC3m5Hk2jkVW... ) - generate at https://paseto.notifuse.com |
PASETO_PUBLIC_KEY | Base64 encoded PASETO public key (e.g., 5p36ZqXdo7... ) - generate at https://paseto.notifuse.com |
SMTP_HOST
| SMTP server host (e.g., smtp.gmail.com
) |
| SMTP_PORT
| SMTP server port (e.g., 587
or 465
) |
| SMTP_USERNAME
| SMTP username (e.g., noreply@yourcompany.com
) |
| SMTP_PASSWORD
| SMTP password (e.g., your_smtp_password
) |
| SMTP_FROM_EMAIL
| From email address (e.g., noreply@yourcompany.com
) |
| SMTP_FROM_NAME
| From name (e.g., Your Company Name
) |
Variable | Description | Default |
---|---|---|
Server Configuration | ||
SERVER_PORT | Port for the server to listen on (e.g., 8080 ) | 8080 |
SERVER_HOST | Host address to bind to (e.g., 0.0.0.0 ) | 0.0.0.0 |
CORS_ALLOW_ORIGIN | CORS allowed origins (e.g., https://yourapp.com,https://admin.yourapp.com ) | * |
ENVIRONMENT | Environment mode (e.g., production ) | production |
LOG_LEVEL | Logging level (e.g., debug or warn ) | info |
Database Configuration | ||
DB_PREFIX | Database table prefix (e.g., notifuse ) | notifuse |
DB_NAME | Database name (e.g., notifuse_system ) | ${DB_PREFIX}_system |
DB_SSLMODE | SSL mode for database (e.g., require or disable ) | require |
Tracing Configuration | ||
TRACING_ENABLED | Enable tracing (e.g., true ) | false |
TRACING_SERVICE_NAME | Service name for tracing (e.g., notifuse-production ) | notifuse-api |
TRACING_SAMPLING_PROBABILITY | Sampling probability (e.g., 0.05 ) | 0.1 |
TRACING_TRACE_EXPORTER | Trace exporter: jaeger/zipkin/stackdriver/datadog/xray/none (e.g., jaeger or datadog ) | none |
TRACING_JAEGER_ENDPOINT | Jaeger endpoint (e.g., http://jaeger:14268/api/traces ) | http://localhost:14268/api/traces |
TRACING_ZIPKIN_ENDPOINT | Zipkin endpoint (e.g., http://zipkin:9411/api/v2/spans ) | http://localhost:9411/api/v2/spans |
TRACING_STACKDRIVER_PROJECT_ID | Stackdriver project ID (e.g., my-gcp-project-id ) | - |
TRACING_AZURE_INSTRUMENTATION_KEY | Azure Monitor instrumentation key (e.g., 12345678-1234-1234-1234-123456789012 ) | - |
TRACING_DATADOG_AGENT_ADDRESS | Datadog agent address (e.g., datadog-agent:8126 ) | localhost:8126 |
TRACING_DATADOG_API_KEY | Datadog API key (e.g., 1234567890abcdef1234567890abcdef ) | - |
TRACING_XRAY_REGION | AWS X-Ray region (e.g., us-east-1 ) | us-west-2 |
TRACING_AGENT_ENDPOINT | General agent endpoint (e.g., monitoring-agent:8126 ) | localhost:8126 |
TRACING_METRICS_EXPORTER | Metrics exporter: stackdriver/prometheus/datadog/none (e.g., prometheus ) | none |
TRACING_PROMETHEUS_PORT | Prometheus metrics port (e.g., 9464 ) | 9464 |