Skip to content

Quickstart: Deploy from GitHub

This guide walks through deploying an application from a GitHub repository. By the end, your app will be built, running on your server, and accessible via a URL.

  • A Clank account (sign up at clank.host)
  • At least one server connected with the Clank agent (install guide)
  • A GitHub repository with a web application (Node.js, Python, Go, Rust, Ruby, or static HTML)

Log in to the Clank dashboard. Open the Create modal by clicking the + button in the sidebar or pressing Cmd+K (Ctrl+K on Windows/Linux). Select New Project, give it a name, and choose the server where the project will be deployed.

Inside your new project, click Add Service and select GitHub Repository.

If this is your first GitHub deploy, Clank prompts you to install the Clank GitHub App. Click Connect GitHub, authorize the app, and select which repositories Clank can access. You can grant access to all repos or specific ones.

Choose the repository from the list. Select the branch to deploy from (typically main or master). If your app lives in a subdirectory, set the root directory field.

Clank inspects your repository and auto-detects the framework and build configuration:

  • Node.js SPA (React, Vue, Angular) — detects package.json with a build script, serves static output via nginx
  • Node.js server (Express, Fastify, Next.js) — detects a start script and exposes the configured port
  • Python (Flask, Django, FastAPI) — detects requirements.txt or pyproject.toml
  • Go, Rust, Ruby, static HTML — detected by their respective project files

Review the detected settings. Override the build command, start command, or port if needed.

Click Deploy. Clank clones the repository, builds a Docker image, pushes it to your server, and starts the container. The deployment log streams in real time so you can follow each step.

Once the deployment reaches Active status, click the URL shown in the service panel to open your app in the browser. The URL depends on your configured endpoint access mode — by default, services are accessible on your server’s IP and the assigned port.

If you enabled auto-deploy, every push to the configured branch triggers a new deployment automatically. Clank builds the new image, performs a health check, and swaps traffic to the new container. The previous container is kept as a rollback target.