---
title: "Deploy NOFX | (Just Updated) AI Trading Platform That Actually Boots"
description: "AI trading platform that boots, is pre-claimed, and keeps its keys"
category: "AI/ML"
url: https://railway.com/deploy/nofx-or-just-updated-ai-trading-platform
---

# Deploy NOFX | (Just Updated) AI Trading Platform That Actually Boots

AI trading platform that boots, is pre-claimed, and keeps its keys

**[Deploy NOFX | (Just Updated) AI Trading Platform That Actually Boots on Railway](https://railway.com/template/nofx-or-just-updated-ai-trading-platform)**

- **Creator:** SuperSlowSloth
- **Category:** AI/ML

## Template content

### nofx

- **Image:** ghcr.io/bon5co/nofx-railway:2026.08.13
- **Health check:** /health
- **Public domain:** Yes

## Documentation

# 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.


## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [stella](https://railway.com/deploy/stella) — Self-host stella with web, API, Postgres, Redis, and object storage.
- [Hermes Agent | OpenClaw Alternative with Dashboard](https://railway.com/deploy/hermes-agent-or-openclaw-alternative-wit) — Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

Open this page in a browser: https://railway.com/deploy/nofx-or-just-updated-ai-trading-platform
