Dashboard

Configuration

Project settings

A field-by-field reference for a project's Settings page.

The project's Settings tab controls how it is built and run. The sections below follow the tab from top to bottom.

Saving

Edit any fields, then click Save changes at the top of the page or in the bar that appears at the bottom with "You have unsaved changes". The browser warns you if you try to leave with unsaved changes.

Saving stores the settings but doesn't rebuild or restart the app. Build and runtime settings take effect on the next deploy. Environment variables also take effect on a restart.

Viewers can read the settings but not change them. The fields are greyed out and the page says "Viewers can't change projects. Ask an owner or admin to change your role."

General

Project name identifies the project across HCode. It can use letters, numbers, spaces, dots, hyphens and underscores, must start with a letter or number, and can be up to 100 characters. Two projects in the same organisation can't have the same name. An older project whose name doesn't follow these rules keeps it until you change it.

Source bundle

Only zip projects have this section. Choose a new .zip of up to 500 MB and click Redeploy with new zip to upload it and deploy it in one go. See Deploy from a zip file.

Build configuration

Repository URL, branch and root directory

Repository URL is the GitHub repository the project builds from, and Branch the branch it deploys (main unless you change it). When you change the repository, HCode checks on save that it can reach it and that the branch exists there, and refuses the save if not.

Root directory is the folder inside the repository that holds the app, for a repository with several apps in it. It defaults to /, the top of the repository.

Framework preset

Picking a preset fills in the install, build and start commands and the output directory. You can edit the fields after picking one.

Preset Build command Start command Output directory
Next.js npm run build npm start .next
Astro (SSR) npm run build node ./dist/server/entry.mjs dist
Astro (Static) npm run build empty dist
SvelteKit npm run build empty empty
Nuxt npm run build npm run start .output
Remix npm run build npm start build
Vite (React/Vue/Svelte) npm run build empty dist
Node.js (Express, Fastify…) empty detected from your repository empty
Static Site empty empty public

Every preset leaves the install command empty. Custom / No preset leaves the fields as they are.

Build type

Automatic build fields

  • Install command: optional. Leave it empty for the default, or set something like npm install --legacy-peer-deps for peer dependency conflicts.
  • Build command: for example npm run build.
  • Start command (optional): replaces whatever start command the build works out. Leave it empty unless your app needs a specific one. A static build has no node binary, so a command like node index.js stops it from starting.
  • Output directory: the folder your build writes its files to, for example dist.

Dockerfile fields

  • Dockerfile path: required, ./Dockerfile by default, relative to the root directory.
  • Start command (optional): replaces the CMD in your image.

Under Advanced Dockerfile options:

  • Docker context path: the folder whose files the build can see, relative to the root directory. ., the default, is the root directory itself.
  • Docker build stage: the stage to build in a multi-stage Dockerfile, for example production.
  • Build args: one KEY=VALUE per line. Don't put secrets here.
  • Build secrets: one SECRET_KEY=VALUE per line.

Once saved, build args and build secrets show as dots and are kept when you save other changes. Type a new set to replace them, or click remove them under the field to delete them. See Dockerfile builds.

Runtime version (optional)

Pick the language and type a version to override the one your project asks for. Deploy again to apply it. See Runtime versions.

Runtime port

The port your app listens on. HCode passes it to the app as PORT, checks the app on it and sends all traffic for the project's addresses to it. It must be a whole number from 1 to 65535.

The badge next to it shows Locked or Unlocked. The port locks after the first successful deploy, and while it is locked the field can only be changed when the project is stopped. To change it, stop the project, change the port and save, then deploy. See Web apps and workers.

Health check

Health check path (optional) is empty by default, and the deploy then relies on HCode's own check of the generated address. Set a path such as /health only if your app has a dedicated health endpoint. Web apps and workers explains how the check runs.

Environment variables

Names and values the app and its automatic builds receive. See Environment variables.

Danger zone

Delete project deletes the project, its databases and its domains for good. Owners and admins only. See Delete a project.