Installing Vaibify
Vaibify runs on macOS and Linux with Python 3.9 or later. It uses Docker (or Colima on macOS) to build and manage containers.
Prerequisites
Requirement |
Version |
Notes |
|---|---|---|
Python |
3.9 – 3.14 |
Any CPython release in this range |
Docker |
20.10+ |
Or Colima on macOS |
Docker Buildx |
0.10+ |
BuildKit-based image builder |
Git |
2.0+ |
For cloning repositories into images |
Python and Git you likely have. For the other two see Installing Docker below — and note that neither is needed to start: a host project runs on your own machine with no container at all, which is how the QuickStart begins.
Users
Install the latest release from PyPI:
pip install vaibify
This installs the CLI, the Docker SDK, keyring integration, and the common data format libraries. A few specialist format readers live in an extra — see Data Format Libraries below.
After installation, confirm the CLI is available:
vaibify --version
Multiple Vaibify projects can coexist on the same machine. Each project
gets its own container, image, and workspace volume. Use vaibify init
in each project directory to register it, then target any project from
anywhere with --project/-p.
Developers
Clone the repository and install in editable mode:
git clone https://github.com/RoryBarnes/Vaibify.git
cd Vaibify
pip install -e ".[dev]"
The [dev] extra adds pytest-asyncio and httpx for running vaibify’s
own internal test suite.
Data Format Libraries
The common formats work out of the box: h5py, openpyxl, Pillow, pyarrow,
astropy and scipy are ordinary dependencies, so pip install vaibify
brings them.
The specialist readers are not. pyvista, pysam, pyreadstat, pyreadr,
safetensors, tfrecord and scapy live in the formats extra, because
several of them need system libraries that a plain pip install cannot
provide. Ask for them explicitly:
pip install 'vaibify[formats]'
See Supported Data Formats for the complete list.
Verify the installation:
vaibify --version
vaibify doctor
vaibify doctor runs the environment pre-flight (Docker context,
daemon reachability, Colima health) and prints a status report; it
works before any project exists.
The pytest test suite is not shipped in the pip package — it
lives in the git repository. To run it, clone the repository and
install the development extras:
git clone https://github.com/RoryBarnes/vaibify
cd vaibify
pip install -e '.[dev]'
pytest tests/ # add -m docker for the Docker-dependent tests
Shell Helpers
Shell completions and helper commands are configured automatically the
first time any vaibify command is run. No manual step is required.
The following aliases are added to your shell configuration:
Alias |
Shorthand |
Equivalent |
|---|---|---|
|
|
|
|
|
|
|
|
|
These commands work from any directory on the host. When multiple
projects are registered, specify the target with --project/-p:
vaibify_connect -p my-project
vaibify_push -p my-project data.csv /workspace/data.csv
vaibify_pull -p my-project /workspace/results.csv ./results.csv
When only one project is registered, the --project flag can be
omitted. See CLI Reference for details.
To force the setup to run again, remove the marker file and invoke any command:
rm ~/.vaibify/.setup_done
vaibify --version
Installing for remote access
If you plan to drive this machine from another one with vaibify remote, vaibify must be on the non-interactive PATH of the user
you will connect as. The test is exact:
ssh this-machine vaibify --version
It must print a version. A non-interactive SSH command does not read
the shell files you normally edit – Ubuntu’s default .bashrc returns
immediately for them – so a pip install --user, a virtualenv, or a
conda environment activated by your profile will not be found, and
vaibify remote will report that the remote produced no startup
record.
Install somewhere already on the default PATH, symlink the entry point
into /usr/local/bin, or extend the PATH above the non-interactive
early-exit in that user’s shell configuration. Both machines also need
the same vaibify version; a mismatch is refused rather than guessed at.
Browser Compatibility
The Vaibify dashboard runs locally and renders in your default browser.
Vaibify targets evergreen desktop browsers; mobile browsers are out of
scope. Any reasonably current Firefox, Chrome, Edge, or Safari works.
The minimum versions below are set by the bundled terminal (xterm.js,
which uses optional chaining and ResizeObserver), not only by the
layout primitives — the terminal fails to load on older engines:
Browser |
Minimum version |
Released |
|---|---|---|
Firefox |
74 |
March 2020 |
Chrome / Edge |
87 |
November 2020 |
Safari |
14.1 |
April 2021 |
Below the Firefox floor the bundled terminal does not load at all (xterm.js fails to parse), so the in-container agent strip is unavailable; other panels may also render with collapsed spacing or misaligned modals. CI exercises the dashboard in Chromium only, so Firefox and Safari are covered by these version floors rather than by an automated check.
Installing Docker
Vaibify does not install a container runtime for you, and it does not need one until you build or run a container project: host mode works with no Docker at all. Install it when you want the isolation that Level 3 reproducibility is defined by.
Whichever platform you are on, confirm the result before going
further. vaibify doctor runs the full pre-flight – Docker context,
daemon reachability, Colima health – and prints a status report:
docker info # must succeed WITHOUT sudo
docker buildx version
vaibify doctor
The docker info line is the one that catches most problems, and it
must work as your own user: vaibify talks to the daemon as the user
who runs it, never through sudo.
Docker on Linux
Distribution packages are often older than the Buildx floor above, so install Docker Engine from Docker’s own repository, following the current instructions for your distribution:
Those pages are linked rather than transcribed because the repository
setup changes; a copy here would go stale silently and leave you
debugging a signing key. Install the docker-buildx-plugin package
along with the engine – vaibify builds with BuildKit, and an engine
without Buildx fails at the build rather than at the check.
Then grant your own user access to the daemon, which is what makes the
docker info check above pass without sudo:
sudo usermod -aG docker "$USER"
newgrp docker # or log out and back in
Be aware of what that grants: membership of the docker group is
equivalent to root on the host, because a container can mount the host
filesystem. On a shared or sensitive machine, prefer
rootless mode,
which vaibify works with unchanged.
One Linux-specific point about the in-container agent. A container
reaches the hub through the Docker bridge gateway (172.17.0.1 by
default), not through the host’s loopback interface, so on Linux the
hub also listens on that gateway address. It asks the daemon for the
address when it starts, and prints what it bound; if the daemon was not
running at that moment the hub says so and listens on loopback only,
in which case the dashboard works but vaibify-do inside the container
cannot reach the hub. Start the daemon, then restart vaibify.
Finally, make sure the daemon starts with the machine:
sudo systemctl enable --now docker
Docker on macOS
On macOS, Colima is the recommended Docker runtime. Install with Homebrew or MacPorts:
Homebrew:
brew install colima docker docker-buildx
colima start --cpu 4 --memory 8
MacPorts:
sudo port install colima docker docker-buildx-plugin
colima start --cpu 4 --memory 8
If a Docker build takes more than a few minutes, macOS may sleep the
Colima VM and corrupt the build. Prefix any long-running command with
caffeinate -s to prevent this:
caffeinate -s vaibify build