Skip to content

Deploy from GitHub ​

Fjordrun builds and deploys a GitHub repository, and redeploys on every push to the selected branch.

1. Connect GitHub ​

If you signed up with GitHub, your account is already connected. Otherwise, connect it from your account settings or when you first choose GitHub repository as a source. Fjordrun asks GitHub for the repo scope so it can list your repositories (public and private), clone them for builds and register a push webhook.

2. Create the service ​

  1. In the dashboard, create a project and pick GitHub repo under Start with, or open an existing project and add a service with GitHub repository.
  2. Choose the repository and the branch (default: the repository's default branch).
  3. If the app lives in a sub-folder of a monorepo, set the Root directory (for example apps/web). See Build settings.

3. The first build ​

Fjordrun clones the commit and decides how to build it:

  1. a Dockerfile in the root directory always wins;
  2. otherwise a Node.js project or a static site is built by the Fjordrun builder, which detects the framework (Nuxt, Next.js, Astro, Vite, SvelteKit, Angular, Express, NestJS and many more);
  3. other languages (Python, Go, Ruby, PHP...) are built with Nixpacks.

The build log starts with what was detected, for example:

text
Fjordrun builder: detected Nuxt 3 (SSR) · pnpm 9 · Node 22
  install  pnpm install --frozen-lockfile
  build    pnpm run build
  run      node .output/server/index.mjs   (port $PORT)

Details are in How builds work and in the framework guides.

4. Listen on $PORT ​

Your app must listen on 0.0.0.0 and the port in the PORT variable (8080 by default for web services). The generated builds for Node.js frameworks and static sites already do this. For your own server code, read the port from the environment:

js
const port = process.env.PORT || 8080
app.listen(port, '0.0.0.0')

If your app listens on a different fixed port, set Port in Settings → Deploy instead.

5. Add variables ​

Add environment variables in the service's Variables tab before or after the first deploy. Variables are also available during the build, which is what frameworks need for VITE_* or NEXT_PUBLIC_* values. Saving variables on a running service redeploys it with the new values. See Variables and references and Build variables.

6. Deploy on push ​

Every push to the selected branch starts a new deployment. To only redeploy when certain files change (useful in monorepos), set Watch paths in Settings → Build, for example apps/web/**, package.json.

Next: add a domain and read the logs.

Fjordrun is hosted in the EU (Hetzner, Nuremberg, Germany). Private beta.