Skip to content

Deploy an App Without DevOps on Varity

Varity TeamCore Contributors

Deploy your application to Varity from the Dashboard, CLI, or MCP server.

From the Dashboard, choose a GitHub repository, add environment variables, review the fixed monthly price for the reserved hardware, and deploy.

Varity accepts three kinds of input, from the CLI, the Developer Portal, or the MCP server in your AI coding tool:

InputHowBest for
Your project / GitHub repovaritykit app deploy (this page)Apps in a supported framework with automatic detection and builds
A Docker imagevaritykit app deploy --image <ref>. See Deploy a Docker ImageAnything already containerized, any language
A templateThe portal gallery. See agent templatesOne-click AI agent and tool deployments

The rest of this page covers the first path: deploying your own project.

  1. Install the CLI

    Terminal window
    pipx install varitykit
    varitykit login
  2. Build your project

    Terminal window
    npm run build
  3. Deploy

    Terminal window
    varitykit app deploy
  4. Your app is live!

    Varity will output your live URL:

    ✓ Deployed successfully!
    ✓ URL: https://your-app.varity.app
    ✓ Build time: 1m 23s
    ✓ Status: Live

When you run varitykit app deploy:

  1. Detects your framework: automatically identifies Next.js, React, Vue, etc.
  2. Builds your app: runs your build command (npm run build)
  3. Uploads your files: stores them securely
  4. Makes your app live: generates a public URL
  5. Returns a live URL: static apps use https://varity.app/<name>/; dynamic apps use https://<name>.varity.app/

All of this happens automatically.

Choose the right hosting for your application type:

Static Sites

Best for: React, Vue, Next.js static exports, documentation, landing pages

Features:

  • Global CDN distribution
  • Instant cache invalidation
  • Automatic SSL certificates
  • Fixed profile pricing
Terminal window
varitykit app deploy

Dynamic Apps

Best for: Full-stack apps, APIs, real-time applications, databases

Features:

  • Container-based compute
  • Managed container hosting
  • Auto-wired database support
  • Priced up to a fixed monthly maximum, prorated by running time
Terminal window
varitykit app deploy --hosting dynamic

Supply the third-party secrets and configuration your application owns. Varity does not create shared development credentials or an application ID variable. When a supported attached service is actually provisioned, its reserved connection variables are injected into the deployed runtime.

See Environment Variables and Deployment Credentials.

Always test your build works locally:

Terminal window
npm run build
npm run start

Visit http://localhost:3000 and verify everything works.

View your deployment history:

Terminal window
varitykit app list

The table has the columns ID, Name, Status, Runtime, URL, Outcome, and Updated. In a narrow terminal (80 columns) only ID and Name fit, so widen the terminal or use varitykit --json app list.

To recover after a bad deploy, redeploy a known-good version of your app. Check out the working commit and run varitykit app deploy again under the same --name. The deployment at that URL is replaced with the version you just built.

Check the details of a specific deployment:

Terminal window
varitykit app info my-app

View overall deployment status:

Terminal window
varitykit app status

Every deployment gets a public URL. URL format depends on hosting type:

Terminal window
varitykit app deploy --name my-app
# Static hosting → https://varity.app/my-app/
# Dynamic hosting → https://my-app.varity.app/

See App URLs & Subdomains for naming rules and the current status of bring-your-own domains.

  1. Verify your build works locally:

    Terminal window
    npm run build
  2. Check the build output directory exists:

    • Next.js: .next/ or out/
    • React: dist/ or build/
    • Vue: dist/

Credentials are auto-provided. If you see this error, run varitykit doctor to check your setup.

Check your internet connection:

Terminal window
varitykit doctor

If issues persist, you can preview what would deploy without deploying:

Terminal window
varitykit app deploy --dry-run
OptionDefaultDescription
--hostingautoHosting type: auto, static, or dynamic (auto picks based on your project)
--namefrom package.jsonApp name (and URL) for this deployment
--path.Project directory
--repo-urlNoneDeploy directly from a GitHub repo URL instead of a local path
--dry-runoffSimulate the deploy: show what would deploy without deploying (not supported with --image)

Instead of a project directory, you can deploy an existing image. See Deploy a Docker Image for the full flow.

OptionDefaultDescription
--imageNoneImage reference to deploy as-is (e.g. ghcr.io/acme/api:1.4.2)
--port80Container port your app listens on
--image-registry / --image-username / --image-passwordNoneCredentials for a private registry