When on, the terminal shows this message and its API is paused. The back office and Broker consoles stay reachable so you can turn it back off.
1. In your authenticator app (1Password, Authy, Google Authenticator…) add an account and enter this setup key:
2. Enter the 6-digit code it shows, to prove it is working:
Save these recovery codes now. This is the only time they are shown.
Each one signs you in once if you lose your authenticator. Keep them somewhere separate from your phone. If you lose both, back office access can only be restored on the host itself.
Two-factor is on for this account.
Operators also open Marketing and Integrations with this sign-in.
You almost certainly don't need this. One machine (ROLE=all, the current setup) runs everything and scales a long way. If it gets slow, move to a bigger VPS first. Only split the engine across machines when a single box genuinely can't keep up. There's no separate download: a worker runs this same codebase with ROLE=engine, and workers coordinate only through this database. They never talk to each other.
ROLE=web in .env and redeploy. It keeps serving the app and live quotes but stops running the engine locally. Do this only once at least one engine worker is already running, otherwise nothing gets liquidated. (While it's ROLE=all it owns every Server, so a worker would sit idle.)docker build -t etrader ..env with: ROLE=engine, DATABASE_URL=postgres://etrader:PASSWORD@<this-box-private-ip>:5432/etrader, MAX_SERVERS_PER_WORKER=<total Servers ÷ number of workers> (this is what splits the Servers evenly), any feed keys your Brokers rely on. The production boot check also requires NODE_ENV=production, JWT_SECRET (32+ chars), ADMIN_PASSWORD, CORS_ORIGIN and BACKUP_DIR=/backups. A worker doesn't use them, but it won't start without them.docker run -d --restart always --env-file .env etrader (no port needed, a worker serves no HTTP).The worker registers within a few seconds and appears in the table above, leasing its share. Stop one and its Servers are re-claimed by the others within about 20 seconds.