> ## Documentation Index
> Fetch the complete documentation index at: https://docs.havic.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Build on Havic

> Connect a GitLab repository — Havic builds your project in an isolated sandbox and serves it.

You don't have to build yourself: connect your **GitLab repository** and Havic pulls
the code, builds it in an **isolated sandbox**, and serves the result — on every new
revision.

## How it works

<Steps>
  <Step title="Connect the repository">
    Connect your GitLab repository to the website. Convenient if you already sign in
    with GitLab.
  </Step>

  <Step title="Havic detects the framework">
    During the build, Havic matches your source against framework signatures
    (*„Gleicht Framework-Signaturen ab …"*) and suggests the right configuration.
  </Step>

  <Step title="Sandbox build">
    The build runs isolated in a sandbox. You can keep working in the meantime.
  </Step>

  <Step title="Publish">
    After a successful build and health check, the site goes live.
  </Step>
</Steps>

## Framework detection & runtime backends

Havic automatically detects whether your project is a **static site** or needs a
**runtime backend** (i.e. must run as a process). For backends, Havic suggests a
runtime and shows a hint.

Detected runtimes include:

<CardGroup cols={3}>
  <Card title="Ruby on Rails" icon="gem" />

  <Card title="Python" icon="python" />

  <Card title=".NET" icon="microsoft" />
</CardGroup>

For a runtime backend you configure:

| Field (DE)         | English         | Meaning                                           |
| ------------------ | --------------- | ------------------------------------------------- |
| **Start-Befehl**   | Start command   | How the process is started.                       |
| **Port**           | Port            | Which port the app listens on.                    |
| **Readiness-Pfad** | Readiness path  | Path Havic checks for readiness.                  |
| **Release-Befehl** | Release command | Optional, e.g. a database migration before start. |
| **Replikate**      | Replicas        | Number of parallel instances.                     |

<Note>
  **Database included:** Havic automatically provisions a **MariaDB** and sets
  `DATABASE_URL`. To use your own external database, just add `DATABASE_URL` as a secret.
</Note>

<Warning>
  Add secrets like `SECRET_KEY_BASE`, `RAILS_MASTER_KEY`, or API keys as **additional
  secrets** (`KEY=VALUE` per line). They're injected securely at runtime and **never
  baked into the image**.
</Warning>
