OTF n8n
activeWorkspace
[OTF] Optimified
Created
Tue Mar 24
Updated
Tue Mar 24
Content
## Overview
Self-hosted n8n workflow automation instance for Optimified.
## Infrastructure
- **Platform:** Railway
- **Railway Project:** otf-n8n-mattermost-umami
- **Database:** Shared Postgres (shared with Mattermost and Umami in the same Railway project)
- **Railway Domain:** primary-production-54118.up.railway.app
- **Custom Domain:** automation.optimified.com (Cloudflare proxied)
- **Port:** 5678
- **Version:** 2.12.3
- **Architecture:** Primary + Worker (queue mode via Redis)
- **Queue:** Redis (separate Railway service)
- **SMTP:** Configured (via `N8N_SMTP_*`)
## Environment Variables — Primary
| Variable | Purpose |
|----------|---------|
| `DB_POSTGRESDB_DATABASE` | Postgres database name |
| `DB_POSTGRESDB_HOST` | Postgres hostname |
| `DB_POSTGRESDB_PASSWORD` | Postgres password |
| `DB_POSTGRESDB_PORT` | Postgres port |
| `DB_POSTGRESDB_USER` | Postgres user |
| `DB_TYPE` | Database type (postgresdb) |
| `ENABLE_ALPINE_PRIVATE_NETWORKING` | Railway private networking |
| `EXECUTIONS_DATA_MAX_AGE` | Max age for execution data |
| `EXECUTIONS_DATA_PRUNE` | Auto-prune old executions |
| `EXECUTIONS_DATA_SAVE_ON_ERROR` | Save execution data on error |
| `EXECUTIONS_DATA_SAVE_ON_SUCCESS` | Save execution data on success |
| `EXECUTIONS_MODE` | Execution mode (queue) |
| `EXECUTIONS_TIMEOUT` | Execution timeout |
| `EXECUTIONS_TIMEOUT_MAX` | Max execution timeout |
| `GENERIC_TIMEZONE` | Default timezone |
| `N8N_EDITOR_BASE_URL` | Editor base URL |
| `N8N_EMAIL_MODE` | Email mode |
| `N8N_ENCRYPTION_KEY` | Encryption key for credentials |
| `N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS` | File permission enforcement |
| `N8N_HOST` | Public hostname |
| `N8N_LISTEN_ADDRESS` | Internal listen address |
| `N8N_PROTOCOL` | Protocol (https) |
| `N8N_SMTP_HOST` | SMTP server |
| `N8N_SMTP_PASS` | SMTP password |
| `N8N_SMTP_PORT` | SMTP port |
| `N8N_SMTP_SENDER` | SMTP from address |
| `N8N_SMTP_SSL` | SMTP SSL enabled |
| `N8N_SMTP_USER` | SMTP username |
| `N8N_TRUST_PROXY` | Trust reverse proxy headers |
| `NODE_OPTIONS` | Node.js runtime options |
| `OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS` | Offload manual runs to workers |
| `PORT` | Railway port binding |
| `QUEUE_BULL_REDIS_DUALSTACK` | Redis dual-stack networking |
| `QUEUE_BULL_REDIS_HOST` | Redis host for job queue |
| `QUEUE_BULL_REDIS_PASSWORD` | Redis password for job queue |
| `QUEUE_BULL_REDIS_PORT` | Redis port for job queue |
| `QUEUE_BULL_REDIS_USERNAME` | Redis username for job queue |
| `TZ` | Timezone |
| `WEBHOOK_URL` | Public webhook URL |
## Environment Variables — Worker
| Variable | Purpose |
|----------|---------|
| `DB_POSTGRESDB_DATABASE` | Postgres database name |
| `DB_POSTGRESDB_HOST` | Postgres hostname |
| `DB_POSTGRESDB_PASSWORD` | Postgres password |
| `DB_POSTGRESDB_PORT` | Postgres port |
| `DB_POSTGRESDB_USER` | Postgres user |
| `DB_TYPE` | Database type (postgresdb) |
| `ENABLE_ALPINE_PRIVATE_NETWORKING` | Railway private networking |
| `EXECUTIONS_MODE` | Execution mode (queue) |
| `N8N_ENCRYPTION_KEY` | Encryption key for credentials |
| `N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS` | File permission enforcement |
| `N8N_LISTEN_ADDRESS` | Internal listen address |
| `NODE_OPTIONS` | Node.js runtime options |
| `OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS` | Offload manual runs to workers |
| `PORT` | Railway port binding |
| `QUEUE_BULL_REDIS_DUALSTACK` | Redis dual-stack networking |
| `QUEUE_BULL_REDIS_HOST` | Redis host for job queue |
| `QUEUE_BULL_REDIS_PASSWORD` | Redis password for job queue |
| `QUEUE_BULL_REDIS_PORT` | Redis port for job queue |
| `QUEUE_BULL_REDIS_USERNAME` | Redis username for job queue |
| `WEBHOOK_URL` | Public webhook URL |