1
Start the app on the server
- Docker or Railway
- A server of your own
Run the
ghcr.io/panoflow/panofx-node image with PANOFX_MODE=app, and attach a volume at /data.
Settings, the wallet and paired browsers live there. Without a volume a restart would lose them, so the
app refuses to create a wallet.On Railway, add the volume to the service and set RAILWAY_RUN_UID=0 so the node can write to it. On a
Docker host of your own, the commands are under Install → Docker.2
Open the pairing link
While nothing is paired, the log prints the node’s fingerprint and a link that works once, for 15 minutes:Open it in your browser. Check that the page shows the same fingerprint. Choose Pair this browser.If you miss the 15 minutes, restart the service for a new link, or run
panofx-node remote pair inside
the container (railway ssh, docker exec) as the same user.3
Set a console passphrase
Every paired browser asks for it, so a lost or borrowed device cannot control your node on its own.
4
Follow the same seven steps as in the app
See Set up your node in the app. A wallet this browser creates shows its recovery
phrase here, until you confirm you wrote it down. After that the phrase, the private key and the backup
never leave the server.
5
Pair your phone or another browser
From Advanced → Remote access. The same panel lists every paired device with Revoke;
panofx-node remote devices and panofx-node remote revoke ID do the same from a shell.What a paired browser cannot do
By design, a paired browser cannot:- show the recovery phrase or private key after setup;
- download the backup;
- switch wallets or bring balances over;
- remove the console passphrase.
Pass a Solana keyfile to a container
A policy-driven container that quotes Solana takes its Solana keyfile asPANOFX_SOLANA_KEYFILE_JSON. The
entrypoint writes it to $PANOFX_RUNTIME_DIR/solana-keyfile.json (default /tmp/panofx), which is where
solana_signer.keyfile should point. This needs the 0.10.0 image or later. See
Containers.
