GibilGibil

Configuration

Configure your project with .gibil.yml

The .gibil.yml file

The .gibil.yml file lives in the root of your project repo and tells Gibil how to set up the VM.

name: my-app
image: node:20

server_type: cpx11       # VM size (default: cpx11)
location: fsn1            # Datacenter (default: fsn1)

services:
  - name: db
    image: postgres:16
    port: 5432
    env:
      POSTGRES_PASSWORD: devpass
      POSTGRES_DB: myapp

tasks:
  - name: install
    command: pnpm install
  - name: build
    command: pnpm build
  - name: test
    command: pnpm test

env:
  DATABASE_URL: postgres://postgres:devpass@localhost:5432/myapp
  NODE_ENV: development

Fields reference

FieldRequiredDefaultDescription
nameNoProject name
imageNonode:20Runtime to install. node:20, python:3.12, go:1.22
server_typeNocpx11Hetzner VM size
locationNofsn1Datacenter location
servicesNoDocker containers to start
tasksNoCommands to run after repo clone
envNoEnvironment variables set on the VM

Runtimes

RuntimeInstalls
node:20Node.js 20 + pnpm
node:22Node.js 22 + pnpm
python:3.12Python 3.12 + pip
go:1.22Go 1.22

Services

Any Docker image works as a service. Docker is automatically installed when services are defined.

services:
  - name: db
    image: postgres:16
    port: 5432
    env:
      POSTGRES_PASSWORD: devpass
  - name: cache
    image: redis:7
    port: 6379

Server types

TypevCPURAMCost/hr
cpx1124 GB~€0.011
cpx2148 GB~€0.019
cpx31416 GB~€0.036

Locations

CodeLocation
fsn1Falkenstein, Germany
nbg1Nuremberg, Germany
hel1Helsinki, Finland
ashAshburn, Virginia

How Gibil finds .gibil.yml

  1. --config ./path/to/config.yml — explicit path (highest priority)
  2. --repo https://github.com/user/repo — fetches from the repo's GitHub raw URL
  3. No --repo — looks in the current working directory

On this page