Deploying a Static Site

Static sites on ServerPlane are served directly by the web server with no application runtime. This is the right choice for plain HTML/CSS/JS sites, single-page applications (SPAs), and output from static site generators like Hugo, Jekyll, Astro, or Next.js static export.

Deployment Steps

  1. Navigate to Apps > Deploy Application.
  2. Select a server with an "Active" status.
  3. Choose "Static Site" as the application type.
  4. Configure the app:
    • App Name — a human-readable label.
    • Domain — DNS must already point to your server.
    • Git Repository (optional) — provide a repo URL to deploy your site's source, or browse your connected GitHub repos.
    • Branch — defaults to main.
    • Build Command (optional) — a command to run after cloning, e.g., npm run build, hugo, or jekyll build.
  5. Review and click Deploy.

What Happens During Deployment

  1. Required server software is installed if not already present.
  2. An app directory and a separate public directory are created.
  3. If a Git repo was provided:
    • The repository is cloned to the server.
    • If a build command was specified, it runs inside the app directory.
    • The build output is automatically detected by checking for common output directories (dist, build, _site, out, public) and copied to the public directory.
    • If no build command was specified, the app directory contents are synced to the public directory.
  4. If no Git repo was provided, a default index.html placeholder page is created in the public directory.
  5. A web server configuration is created to serve files from the public directory.

If you are not using a Git repo, upload your files directly via SFTP or the File Manager after deployment.

Build Output Detection

When a build command is provided, ServerPlane looks for these directories in order and copies the first match to the document root:

  1. dist/
  2. build/
  3. _site/
  4. out/
  5. public/

If your static site generator outputs to a different directory, you can include a copy step in your build command, e.g.:

npm run build && cp -r my-output/ ../public/

Notes

  • Static sites have no background process — the web server serves the files directly. Start/stop/restart actions are not applicable.
  • Private GitHub repositories are supported with automatic deploy key setup.
  • SSL can be provisioned after deployment via the Domains & SSL tab.
  • For SPAs that use client-side routing, you may need to configure the web server to serve index.html for all routes. Contact support if you need help with this.