Project Templates
Vaibify ships with three project templates that provide starting configurations for common use cases. Select a template when initializing a new project:
vaibify init --template <name>
Each template contains container.conf and project.json (plus any
starter files, such as the workflow template’s step directories). vaibify init copies those into the current directory, moves project.json into
.vaibify/projects/, and then generates vaibify.yml from the built-in
defaults — the template does not supply it.
sandbox
An empty starting point for exploration, prototyping, and interactive use. No pipeline steps are defined — you work directly inside the container.
Includes:
Empty
container.conf(no repositories).Empty
project.json(no pipeline steps).
Use this template when you want a containerized environment without a predefined project.
toolkit
A workspace for editing several peer code repositories side-by-side — the right choice when you want to hack on more than one package at once while iterating on a change that spans them.
Includes:
Empty
container.conf(add your repository URLs).Empty
project.json(no pipeline steps).A README explaining how repository tracking and push controls work.
Toolkit containers have no workflow. Instead, the Repos panel in the
dashboard provides per-repository git status, dirty-file listings, and
push controls for every repository in /workspace/.
workflow
A starting point for reproducible data analysis pipelines. Includes a runnable two-step example — data generation feeding a plot — that you replace with your own steps.
Includes:
Empty
container.conf(add your repositories).Example
project.jsonwith two steps:GenerateSamples, which runspython generateSamples.pyto producesamples.json, andPlotHistogram, which runspython plotHistogram.pywith the samples file passed via a{step:generate-samples.samples}token.The two step directories with the scripts those commands invoke.
Use this template when your project follows a defined sequence of analysis steps that should be reproducible.
Adding LaTeX compilation: If you compile your manuscript inside the
container rather than using an external tool like Overleaf, add a step
to project.json. Note that a step’s directory basename must equal the
slug derived from its name — CompileManuscript here — so the manuscript
sources live in a directory named after the step:
{
"sName": "CompileManuscript",
"sStepId": "compile-manuscript",
"sDirectory": "CompileManuscript",
"bRunEnabled": true,
"bPlotOnly": false,
"saDataCommands": [],
"saOutputDataFiles": [],
"saPlotCommands": ["latexmk -pdf manuscript.tex"],
"saPlotFiles": []
}
Creating Custom Templates
Templates are stored in the vaibify/templates/ directory of the
Vaibify package, so they ship inside the installed distribution.
Each template is a subdirectory containing container.conf and
project.json, plus any starter step directories. To create a custom
template, add a new subdirectory with these files and reinstall the
package. Do not place a vaibify.yml in a template: vaibify init
always generates that file itself, so one shipped in a template would
be overwritten.