Skip to Content
Newnadoon AI FrameworkHost on Newnadoon cloud

Host on Newnadoon cloud

Deploy your agent project onto Newnadoon infrastructure so it gets a public URL for the API and MCP — without running your own cluster. Images are stored in the Newnadoon Container Registry and run on Newnadoon-hosted compute.

Requires @newnadoon/ai-framework 1.0.31+ (deploy CLI) and a Portal org subscribed to Newnadoon Agents (or Container Registries).


What you get

After a successful deploy you receive:

SurfaceExample
App / landinghttps://my-agent.newnadoon.app
APIhttps://my-agent.newnadoon.app/api
MCPhttps://my-agent.newnadoon.app/api/mcp

Manage deployments, logs, and keys in Portal → Newnadoon Agents.

The default landing page shows Live status and copy-paste MCP client configs (Cursor, Claude, Codex, Copilot, Gemini, Grok). Generic agents do not require an API key on MCP unless you set MCP_REQUIRE_API_KEY=true yourself. Add public/index.html in your project to replace the default page.


Prerequisites

  1. A scaffolded agent project (npm create newnadoon@latest) that runs locally with npx newnadoon-api.
  2. Docker Desktop (or Docker Engine) running on your machine.
  3. Portal organization with an active Newnadoon Agents subscription (portal.newnadoon.com  → Services).
  4. An org API key with scope write:deploy (ndpub_…) from Portal → API Keys (or the Agents page).

Project files the cloud build expects:

  • Dockerfile.user (from the scaffold)
  • package-lock.json
  • .npmrc with @newnadoon:registry=https://npm.newnadoon.com/

1. Set your deploy key

In the project .env (or environment):

NEWNADOON_API_KEY=ndpub_…

That is enough. The CLI calls Portal GET /api/public-apis/registry/deploy-context and resolves your Newnadoon Container Registry project and push credentials for you.

Optional override if you are targeting a non-production Portal:

NEWNADOON_PORTAL_URL=https://portal.newnadoon.com

2. Deploy

From the project root (with Docker running):

Terminal
$ npx newnadoon deploy --name my-agent --tag latest

What this does:

  1. Resolves Newnadoon Container Registry credentials from your API key.
  2. Builds Dockerfile.user and tags the image for your org’s registry project.
  3. Pushes the image to registry.newnadoon.io (Newnadoon Container Registry).
  4. Creates the app on Newnadoon Agents via Portal.
  5. Prints App, API, and MCP URLs.

--name is the short app / image name (becomes {name}.newnadoon.app). Default container port is 8080 (newnadoon-api). Override with --port if needed.

Alias:

Terminal
$ npx newnadoon-deploy --name my-agent

Step-only commands (same auth):

npx newnadoon deploy build --name my-agent npx newnadoon deploy push --name my-agent npx newnadoon deploy apply --name my-agent npx newnadoon deploy status --name my-agent

3. Connect an MCP client

Open the App URL in a browser. You should see API is running / Live.

Copy the Cursor (or other) config from the page. Example:

{ "mcpServers": { "newnadoon": { "url": "https://my-agent.newnadoon.app/api/mcp" } } }

Save as .cursor/mcp.json (or use Cursor Settings → MCP), then reload MCP.

Stdio-only clients can bridge with:

Terminal
$ npx -y mcp-remote https://my-agent.newnadoon.app/api/mcp

4. Update an existing deployment

After you change code or bump @newnadoon/ai-framework, rebuild and roll out in place:

Terminal
$ npx newnadoon deploy --name my-agent --tag latest --rollout

--rollout updates the existing Newnadoon Agents deployment in place so a new revision starts and pulls the current image for that tag (important when reusing latest).

Confirm in Portal → Newnadoon Agents that the deployment is healthy, or check that the landing page / MCP reflects your changes.


Troubleshooting

SymptomWhat to check
deploy-context 404Portal needs the public deploy-context API; use production Portal or upgrade your Portal deploy.
Docker build fails on @newnadoon/*Ensure .npmrc is in the project and copied by Dockerfile.user.
Push / auth errorsKey must include write:deploy; org must have Agents (or Registries) active.
Landing still shows old content after --rolloutWait a minute and refresh; confirm the Agents page shows a healthy deployment. Re-run deploy if the landing is still stale.
MCP rejects without a keyYou (or a product image) set MCP_REQUIRE_API_KEY=true. Default framework agents leave this unset.