Skip to main content
Nuphos is open source, so you can run the whole stack yourself: MongoDB, S3-compatible storage, the backend, and an agent runtime. The deployment guides live next to the code in nuphos/nuphos and are kept up to date there, so this page only helps you pick one.

Before you plan around it

  • Email sign-in needs an email provider. The backend sends sign-in codes by email, so the Helm and Railway guides ask for a Resend API key and a verified sender.
  • The guides set up email sign-in only. Google and Apple sign-in need their own OAuth configuration on your backend.
  • The runtime signs in to Claude itself, once, from its own console. You use your own account; there is no key to configure in Nuphos.
  • Point the apps at your backend from the sign-in screen. Desktop and iOS have a Self-hosted? Set API endpoint link there. The Android app supports Nuphos Cloud only. For the CLI, set NUPHOS_API_URL.
  • Cloud accounts are bound to your deployment. AWS, GCP and the other cloud providers must trust your backend’s identity, not nuphos.ai’s. See the IAM trust model.
  • Not included: managed runtime provisioning (New computer), managed backups, and the operations tooling of the hosted service.

Operate and upgrade

Record the backend, Desktop/CLI and runtime versions before upgrading. Use the release notes and the selected deployment guide for compatible image tags and configuration; test the client sign-in and a bounded runtime task after rollout. Keep persistent MongoDB data, object storage and runtime files in the volumes or services described by that guide. Back up data and required configuration before an upgrade, and plan restoration before assuming an older image can read a newer database schema. A restart is not a backup, and downgrading an image alone may not undo a data migration. For cloud federation, configure your backend’s issuer/WIF and use the values its binding dialogs provide. OAuth callbacks, public backend URL and outbound access must match your deployment; hosted-service trust values are not a substitute.