Deploy knode
Deploy Knode: FastAPI + Celery + Expo web. LLM key required.
Just deployed
/data
Just deployed
/var/lib/postgresql/data
Just deployed
beat
Just deployed
worker
Just deployed
/data
Redis
Just deployed
/data
Deploy and Host Knode with Railway
Knode is an organization automation platform: describe jobs in plain English, get testable step plans, run them with Celery workers, and connect GitHub, Slack, Google, and other integrations.
About Hosting Knode
This template provisions a full production stack from the ebettenga/knode repo:
| Service | Role |
|---|---|
| api | FastAPI backend (/ready healthcheck) |
| worker | Celery task executor |
| beat | Scheduled runs and poll triggers |
| web | Expo static web UI |
| Postgres | Database |
| Redis | Celery broker |
At deploy time, paste LLM_API_KEY (required). OAuth credentials are optional — add later in Railway or in-app Integrations. Database URLs, secrets, and public domains are auto-wired.
Common Use Cases
- Team automation workshop: plain-English jobs → code / AI / MCP step plans
- Org task market and shared workflows with Jira/Asana/Linear tickets
- Self-hosted push and integrations (Slack, GitHub, Google Workspace, Microsoft 365)
- Expo web UI on phone (Add to Home Screen) plus optional Android APK via EAS
Dependencies for Knode Hosting
- Postgres — primary data store (included)
- Redis — Celery broker and result backend (included)
- LLM API key — OpenAI or compatible endpoint (you provide)
- OAuth apps — optional; GitHub, Slack, Google, etc. (you provide or configure in-app)
Deployment Dependencies
- GitHub repo: https://github.com/ebettenga/knode (branch
main) - Full setup guide: https://github.com/ebettenga/knode/blob/main/deploy/railway/README.md
- Provider OAuth setup: https://github.com/ebettenga/knode/blob/main/deploy/railway/PROVIDERS.md
Why Deploy Knode on Railway?
Railway hosts the full stack — databases, API, workers, and static web — with one click. You get HTTPS domains, managed Postgres/Redis, and continuous deploy from main without running your own VM. Scale vertically as your org grows; add volumes for model and run artifacts out of the box.
Template Content
LLM_MODEL
LOG_LEVEL
NTFY_TOKEN
SECRET_KEY
LLM_API_KEY
CORS_ORIGINS
LLM_BASE_URL
ARTIFACTS_DIR
GITHUB_SCOPES
NTFY_BASE_URL
ASANA_CLIENT_ID
SLACK_CLIENT_ID
GITHUB_CLIENT_ID
GOOGLE_CLIENT_ID
MICROSOFT_TENANT
NTFY_ACCESS_TOKEN
NTFY_BRIDGE_TOKEN
NTFY_BRIDGE_TOPIC
GOCSPX_PLACEHOLDER
ASANA_CLIENT_SECRET
MICROSOFT_CLIENT_ID
MODEL_ARTIFACTS_DIR
NTFY_BRIDGE_ENABLED
SLACK_CLIENT_SECRET
GITHUB_CLIENT_SECRET
GOOGLE_CLIENT_SECRET
NTFY_PUBLIC_BASE_URL
PAIRING_API_BASE_URL
NTFY_DEFAULT_BASE_URL
CREDENTIALS_FERNET_KEY
KNODE_NTFY_BRIDGE_TOKEN
MICROSOFT_CLIENT_SECRET
OAUTH_REDIRECT_BASE_URL
PGDATA
PGPORT
POSTGRES_DB
POSTGRES_USER
SSL_CERT_DAYS
RAILWAY_DEPLOYMENT_DRAINING_SECONDS
EXPO_PUBLIC_APK_URL
EXPO_PUBLIC_API_BASE_URL
beat
ebettenga/knodeLLM_MODEL
LOG_LEVEL
NTFY_TOKEN
SECRET_KEY
LLM_API_KEY
CORS_ORIGINS
LLM_BASE_URL
ARTIFACTS_DIR
GITHUB_SCOPES
NTFY_BASE_URL
ASANA_CLIENT_ID
SLACK_CLIENT_ID
GITHUB_CLIENT_ID
GOOGLE_CLIENT_ID
MICROSOFT_TENANT
NTFY_ACCESS_TOKEN
NTFY_BRIDGE_TOKEN
NTFY_BRIDGE_TOPIC
ASANA_CLIENT_SECRET
MICROSOFT_CLIENT_ID
MODEL_ARTIFACTS_DIR
NTFY_BRIDGE_ENABLED
SLACK_CLIENT_SECRET
GITHUB_CLIENT_SECRET
GOOGLE_CLIENT_SECRET
NTFY_PUBLIC_BASE_URL
PAIRING_API_BASE_URL
NTFY_DEFAULT_BASE_URL
CREDENTIALS_FERNET_KEY
KNODE_NTFY_BRIDGE_TOKEN
MICROSOFT_CLIENT_SECRET
OAUTH_REDIRECT_BASE_URL
worker
ebettenga/knodeLLM_MODEL
LOG_LEVEL
NTFY_TOKEN
SECRET_KEY
LLM_API_KEY
CORS_ORIGINS
LLM_BASE_URL
ARTIFACTS_DIR
GITHUB_SCOPES
NTFY_BASE_URL
ASANA_CLIENT_ID
SLACK_CLIENT_ID
GITHUB_CLIENT_ID
GOOGLE_CLIENT_ID
MICROSOFT_TENANT
NTFY_ACCESS_TOKEN
NTFY_BRIDGE_TOKEN
NTFY_BRIDGE_TOPIC
ASANA_CLIENT_SECRET
MICROSOFT_CLIENT_ID
MODEL_ARTIFACTS_DIR
NTFY_BRIDGE_ENABLED
SLACK_CLIENT_SECRET
GITHUB_CLIENT_SECRET
GOOGLE_CLIENT_SECRET
NTFY_PUBLIC_BASE_URL
PAIRING_API_BASE_URL
NTFY_DEFAULT_BASE_URL
CREDENTIALS_FERNET_KEY
KNODE_NTFY_BRIDGE_TOKEN
MICROSOFT_CLIENT_SECRET
OAUTH_REDIRECT_BASE_URL
Redis
redis:8.2REDISPORT
REDISUSER