Deploy Apus on Railway with a one-click template and access it through the web Control UI. This is the easiest "no terminal on the server" path: Railway runs the Gateway for you.

One-click deploy

Deploy on Railway

Deploy the template

Click **Deploy on Railway** above.

Add a volume

Attach a volume mounted at /data (required for persistent state).

Set variables

Set the required **Variables** on the service:

- `APUS_GATEWAY_PORT=8080` (required -- must match the port in Public Networking)
- `APUS_GATEWAY_TOKEN` (required; treat as an admin secret)
- `APUS_STATE_DIR=/data/.apus` (required for persistent state)
- `APUS_WORKSPACE_DIR=/data/workspace` (required for a persistent workspace)

Enable public networking

Under Public Networking, enable HTTP Proxy for the service on port 8080.

Connect

Find your public URL in **Railway -> your service -> Settings -> Domains** -- either a generated domain (often `https://<something>.up.railway.app`) or your attached custom domain.

Open `https://<your-railway-domain>/apus` and connect using the configured shared secret. The template uses `APUS_GATEWAY_TOKEN` by default; if you replace it with password auth, use that password instead.

From the Railway shell, run the read-only deployment preflight:

apus doctor --json

What you get

Connect a channel

Use the Control UI at /apus or run apus onboard via Railway's shell for channel setup instructions:

Backups and migration

Export your state, config, auth profiles, and workspace:

apus backup create
apus backup restore <archive.tar.gz> --target <fresh-directory>

Restore verifies and extracts into a fresh staging directory; activation is a separate offline step. See Restore a full archive for the rollback warnings and activation sequence.

Next steps