Configuration Reference
Vaibify projects are configured through three files in the project root directory. This page documents every field and option.
vaibify.yml
The primary configuration file. All fields use camelCase keys in the YAML file; the Python dataclass uses Hungarian notation internally.
Top-Level Fields
YAML Key |
Type |
Default |
Description |
|---|---|---|---|
|
string |
(required) |
Docker container and image name |
|
string |
|
Non-root user inside the container |
|
string |
|
Python version to install |
|
string |
|
Base Docker image |
|
string |
|
Mount point for the workspace volume |
|
string |
|
Package manager: |
|
boolean |
|
Disable outbound network access |
List Fields
YAML Key |
Element Type |
Description |
|---|---|---|
|
dict |
Repository definitions (see below) |
|
string |
APT packages to install |
|
string |
pip packages to install |
|
string |
conda/mamba packages to install |
|
dict |
Pre-built binaries to download |
|
dict |
Ports to expose from the container |
|
dict |
Host directories to mount |
|
dict |
Secret references (see Security below) |
Features Block
Nested under the features key:
YAML Key |
Type |
Default |
Description |
|---|---|---|---|
|
boolean |
|
Install JupyterLab |
|
boolean |
|
Install R and IRkernel |
|
boolean |
|
Install Julia |
|
boolean |
|
Install PostgreSQL client |
|
boolean |
|
Install DVC for data versioning |
|
boolean |
|
Install TeX Live |
|
boolean |
|
Install Claude Code CLI |
|
boolean |
|
Enable NVIDIA GPU passthrough |
Reproducibility Block
Nested under the reproducibility key:
YAML Key |
Type |
Default |
Description |
|---|---|---|---|
|
string |
|
|
|
string |
|
Path to LaTeX source files |
|
string |
|
Path to generated figures |
Overleaf Sub-Block
Nested under reproducibility.overleaf:
YAML Key |
Type |
Default |
Description |
|---|---|---|---|
|
string |
|
Overleaf project identifier |
|
string |
|
Target directory in Overleaf |
|
list |
|
Paths to sync from Overleaf |
Example
projectName: earth-water-study
containerUser: researcher
pythonVersion: "3.12"
baseImage: ubuntu:24.04
workspaceRoot: /workspace
packageManager: pip
networkIsolation: false
systemPackages:
- gcc
- make
- git
- curl
pythonPackages:
- numpy
- matplotlib
- h5py
features:
jupyter: true
latex: true
reproducibility:
zenodoService: sandbox
latexRoot: src/tex
figuresRoot: src/tex/figures
container.conf
A line-oriented file listing repositories to clone and install. Each non-comment line has four pipe-separated fields:
name|url|branch|install_method
Install Methods
Method |
Action |
|---|---|
|
|
|
|
|
|
|
Add to |
|
Clone for reference, do not install |
Example
mycode|git@github.com:user/mycode.git|main|pip_editable
data-utils|git@github.com:user/data-utils.git|develop|pip_no_deps
workflow.json
Defines the execution pipeline. See Pipelines for full documentation.
Security
Secrets are never stored in configuration files. The secrets field in
vaibify.yml lists secret references (names), not values. At
build time, Vaibify delegates to the host’s credential manager
(e.g., gh auth, OS keychain) to resolve secrets. See the
Reproducibility page for details on how secrets
interact with published workflows.