What you should do
- Seal
HOISTA_SEALED_KEYat your provider. Railway setup tries to do this for you and prints the steps if it can’t. Fly.io secrets are write-only already. Hoista doesn’t check later whether the variable is still sealed. - Protect your provider account with two-factor sign-in, and keep few people on it. Anyone who can read the sealing key and copy the volume can open the tokens.
- Serve the remote only over HTTPS. Passkeys need it.
- Keep the keeper’s socket and folder private. Don’t expose them through a reverse proxy.
Three processes
The server image creates both users, and only
hoista-keeper can read the sealed file. The gateway’s environment never gets the sealing key or a 1Password service account token. Started without root or without those users, all three run as one user and Hoista says so in its log. File permissions then no longer protect the keeper’s data.
How a provider request works
- The gateway holds a handle for each account, never the token.
- It sends the request to the keeper over a Unix socket.
- The keeper accepts connections only from the gateway’s user ID. It refuses any address that isn’t the provider’s own HTTPS API, and any request that already carries an
Authorizationheader. - The keeper adds the token and sends the request without following redirects.
flyctl are refused on a remote for now, because the server image doesn’t include it. When it does, only the keeper will run flyctl with the token, limited to the subcommands Hoista’s adapter uses.
What the keeper doesn’t cover
- What a request does. The keeper doesn’t check approvals. A compromised gateway can ask for any change the token allows.
- The moment a token arrives. Connecting an account, finishing a provider’s sign-in or importing a transfer passes the token through the gateway once.
- Provider responses. These return to the gateway and can contain sensitive values.
flyctl, which the server image doesn’t include.
Related
Your remote
Hoista in your own cloud account.
Self-host Hoista
Run it on a Mac mini or a server.
Threat model and limits
What Hoista can’t protect against.