Deploy NOFX | (Just Updated) AI Trading Platform That Actually Boots
AI trading platform that boots, is pre-claimed, and keeps its keys
Just deployed
/app/data
Deploy and Host NOFX on Railway
NOFX is a self-hosted AI trading platform: you connect your own exchange accounts and your own AI provider keys, describe a strategy, and let one or more AI traders analyse the market and place orders on your behalf. It ships a React dashboard, a strategy studio, backtesting, a decision log and a Go trading engine that runs continuously.
This template deploys it already booted, already claimed, and with its data on a disk. A stock NOFX deploy on Railway does none of the three: the trading engine exits at startup while the dashboard keeps answering, the first stranger to reach the URL can register the owner account, and the SQLite database — which holds your exchange API keys — lives on the container's disposable filesystem.
About Hosting NOFX
One container and one volume. Upstream publishes a Go backend and an nginx-served React frontend as two images; this template merges them behind a single nginx listener, both pinned by digest, so there is nothing to build at deploy time and no second billed service.
The backend keeps everything in SQLite under /app/data on the volume: users, AI traders,
strategies, decision logs, and the encrypted exchange and AI provider credentials. The two
keys that encrypt those credentials are generated once onto the same volume rather than at
every boot, which is what makes a redeploy readable to itself.
The container also supervises its own processes: if the trading engine stops, the container stops with it and Railway restarts the deployment, instead of serving a dashboard in front of an engine that is no longer trading.
Why Deploy NOFX on Railway?
A trading engine is a long-running process that has to stay up, keep its database and hold credentials — which is exactly the shape Railway is good at: a container, a persistent disk, a public HTTPS domain and a certificate, with no proxy to configure and no server to patch.
Because Railway publishes the URL the moment the deploy goes green, this template writes the owner account into the database before the public port is ever bound, from a password Railway generates for this deployment. Changing that password and redeploying rotates it — NOFX deliberately exposes no password reset over HTTP, so without that step the first password is permanent.
Telemetry is off by default here. Upstream defaults it on, and the events it sends include the exchange, symbol, position size in USD and leverage of your trades.
Common Use Cases
- Running AI-driven crypto futures trading on your own keys, on your own box, with the decision log kept where you can read it.
- Comparing several models (DeepSeek, GPT, Claude, Gemini, Grok, Kimi) on the same market and keeping the performance history.
- Backtesting and paper-running a strategy before putting money behind it.
- A private strategy studio for indicators and prompts, with results that survive redeploys.
Dependencies for NOFX
Deployment Dependencies
- Nothing external. The image bundles the API, the dashboard, the trading engine and SQLite.
- An exchange API key (Binance, Bybit, OKX, Bitget, Hyperliquid) and an AI provider key are entered in the dashboard after deploy; they are encrypted at rest with keys held on the volume.
Deployment Variables
| Variable | What it does |
|---|---|
JWT_SECRET | Signs session tokens. Generated per deploy. NOFX refuses to start without it. |
NOFX_ADMIN_EMAIL | The owner account created on first boot. Defaults to admin@ your Railway domain. |
NOFX_ADMIN_PASSWORD | The owner password, generated per deploy. Change it and redeploy to rotate it. |
Trading real money with an automated system carries risk, and the AI models make mistakes. Start on a testnet or with sizes you are willing to lose.
Template Content
