Installation and Configuration

Installing Docker

Before installing Titan, you must have docker configured on your system and permission to run privileged Linux containers. For MacOS and Windows, this means installing Docker Desktop. For Linux, this means installing docker via your distribution-specific mechanism.

If you can run a basic Linux docker container you’re ready for the next step:

docker run --rm busybox:latest echo ready

Downloading Titan

To download Titan, head over to the Download Page and download the archive specific to your platform. Extract the archive and place it in a location that is part of your PATH such as ~/bin or /usr/local/bin.

If you can get the current Titan version you’re ready for the next step:

$ titan --version
titan version 0.3.0

Installing Titan

While Titan is delivered as a standalone executable, it relies on a containerized service to do a lot of the heavy lifting. The titan install command will download and run these containers. It may take some time to download the titan image, but once complete you should be able to see two containers running named titan-launch and titan-server:

$ titan install
$ titan install
Initializing titan infrastructure ...
    √ Checking docker installation
    √ Starting titan server docker containers
Titan cli successfully installed, happy data versioning :)
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
ff80dcdf8d0e        titan:latest        "/titan/run"             9 seconds ago       Up 7 seconds>5001/tcp   titan-server
6b09cccc407a        titan:latest        "/bin/bash /titan/la…"   29 seconds ago      Up 14 seconds                                titan-launch

If you are operating in a corporate environment without access to the main docker registry, you can manually load the `titandata/titan image into a private registry and use the -r registry option to titan install to pull from there instead.

Among other things, the titan-launch container is responsible for installing ZFS on the Docker or host VM. This is the primary area where Supported Operating Systems comes into play. For Windows and MacOS, docker is running on the same HyperKit VM, and so it is relatively easy for the community to keep delivering pre-built ZFS binaries for those installations. With Linux, however, the story is much different as there are a wide variety of distributions, each with their own mechanism of fetching required dependencies to build ZFS. For the distributions noted in the Supported Operating Systems list, we attempt to keep up-to-date with the latest releases.

If we do not have a pre-built version of the ZFS binaries, we will attempt to build them on the fly. For Linux, we are still limited to the set of supported distributions, but we can built for slightly different variations or versions if needed. If you are running a Linux system other than a supported distribution, you can also compile and install ZFS yourself, provided it’s version 0.8.1, and Titan will use that instead of trying to install its own.

If the installation is taking a while, and you see a zfs-builder container in docker ps output, then it’s off building a custom version of ZFS. If you are running a supported operating system, then reach out to the community to see if new pre-built binaries need to be created.

If you can successfully run titan ls, then you should be all set:

$ titan ls