LanguageGB
App Deployment

Deploy a static website

Static sites run as plain HTML, CSS, and JavaScript served directly by nginx — no server process required.

What this means

What this means

A static site is any site where all files are pre-built: HTML pages, CSS stylesheets, and JavaScript bundles. The platform serves these files directly via nginx. There is no database, no server process, and no runtime to configure. Ideal for landing pages, portfolios, documentation sites, and front-end apps that talk to an external API.

Before you start

Before you start

Build your site locally first (for example with npm run build, vite build, or hugo) and push the output to a public GitHub repository. The repo must contain a dist/, build/, out/, or public/ folder with an index.html inside. If no subfolder exists, index.html in the root is used.

Step-by-step guidance

Step-by-step guidance

  1. Purchase an App Hosting plan from the portal, or start a free 3-day trial from the Services page.
  2. Push your built static files to a public GitHub repository. Make sure index.html is inside a dist/, build/, out/, or public/ subfolder (or at the root).
  3. Navigate to Portal → Services and open your App Hosting service.
  4. In the Deploy App section, set Action to Deploy Static app and Runtime to static.
  5. Paste your GitHub repository URL (https://github.com/you/repo) into the Artifact Reference field.
  6. Leave the build and start command fields empty — the platform detects your output folder automatically.
  7. Click Redeploy App and wait up to 60 seconds for deployment to complete.
  8. Your site is live at your assigned domain. No database is provisioned for static sites.

What CM Cloud support will review

What CM Cloud support will review

Support verifies the repository URL is accessible, the output folder is detected correctly, and nginx is serving your files without errors.

What is not automated yet

What is not automated yet

This guide does not run a build step on the server, manage environment variables, create databases, or handle server-side rendering. If your app needs a build command (e.g. npm run build), run it locally and push the output, or contact support for a Node.js runtime instead.

Safety note

Safety note

Reading this article does not trigger payment, provisioning, DNS, registrar, Cloudflare, or provider changes.

Safe next action

Safe next action

Push your build output to GitHub, then open the deploy form on your service page.

Contact Support