.gibil.yml Reference
Complete reference for the .gibil.yml configuration file
Full example
name: my-app
image: node:20
server_type: cpx21
location: ash
services:
- name: db
image: postgres:16
port: 5432
env:
POSTGRES_PASSWORD: devpass
POSTGRES_DB: myapp
- name: cache
image: redis:7
port: 6379
tasks:
- name: install
command: pnpm install --frozen-lockfile
- name: check
command: pnpm check
- name: build
command: pnpm build
- name: test
command: pnpm test
env:
DATABASE_URL: postgres://postgres:devpass@localhost:5432/myapp
REDIS_URL: redis://localhost:6379
NODE_ENV: developmentFields
name
Project name. Optional, used for labeling.
image
Runtime to install on the VM. Gibil installs the specified runtime and its package manager.
| Value | Installs |
|---|---|
node:20 | Node.js 20 + pnpm |
node:22 | Node.js 22 + pnpm |
python:3.12 | Python 3.12 + pip |
go:1.22 | Go 1.22 |
server_type
Hetzner server size. Default: cax11.
| Type | vCPU | RAM | Cost/hr |
|---|---|---|---|
cpx11 | 2 | 4 GB | ~€0.011 |
cpx21 | 4 | 8 GB | ~€0.019 |
cpx31 | 4 | 16 GB | ~€0.036 |
location
Hetzner datacenter. Default: fsn1.
| Code | City |
|---|---|
fsn1 | Falkenstein, Germany |
nbg1 | Nuremberg, Germany |
hel1 | Helsinki, Finland |
ash | Ashburn, Virginia |
services
Docker containers to start before tasks. Docker is automatically installed when services are defined.
services:
- name: db
image: postgres:16
port: 5432
env:
POSTGRES_PASSWORD: devpassEach service has:
name: identifier for the serviceimage: Docker image to runport: port to exposeenv: environment variables passed to the container
tasks
Commands to run in order after the repo is cloned. If one fails, the rest still run.
tasks:
- name: install
command: pnpm install
- name: test
command: pnpm testenv
Environment variables set on the VM (persisted in /root/.bashrc).
env:
DATABASE_URL: postgres://localhost/myapp
NODE_ENV: developmentDiscovery order
Gibil looks for the config file in this order:
--config ./path/to/config.yml: explicit CLI flag--repoURL: fetched from the repo's GitHub raw URL- Current working directory:
.gibil.ymlin$PWD