Skip to content

Deploy a Node

Deploying a node means spinning it up in one of the supported runtimes. The primary choice is between a containerized with Docker or a native deployment with our static binary that runs on amd64 and arm64 architectures.

We recommend using Docker to deploy a Tenzir node, as it’s the easiest way to get started.

After provisioning a node, proceed as follows:

  1. Select the Docker tab and click the download button to obtain the docker-compose.NODE.yaml configuration file, where NODE is the name you entered for your node.
  2. Run
    Terminal window
    docker compose -f docker-compose.NODE.yaml up --detach

Edit the Docker Compose file and change environment variables to adjust your configuration.

Stop a node via the down command:

Terminal window
docker compose -f docker-compose.NODE.yaml down

Stop a node and delete its persistent state by adding --volumes:

Terminal window
docker compose -f docker-compose.NODE.yaml down --volumes

Run the following commands to update a Docker Compose deployment with a configuration file docker-compose.NODE.yaml:

Terminal window
docker compose -f docker-compose.NODE.yaml pull
docker compose -f docker-compose.NODE.yaml down
docker compose -f docker-compose.NODE.yaml up --detach

Note that we pull first so that the subsequent downtime between down and up is minimal.

We offer a static binary package on various Linux distributions.

Second, choose the Linux tab and proceed as follows:

  1. Provision the node and download its config.
  2. Create a directory for the platform configuration.
    Terminal window
    mkdir -p /opt/tenzir/etc/tenzir/plugin
  3. Move the downloaded platform.yaml configuration file to the directory so that the node can find it during startup:
    Terminal window
    mv platform.yaml /opt/tenzir/etc/tenzir/plugin
  4. Run the installer and follow the instructions to download and start the node:
    Terminal window
    curl https://get.tenzir.app | sh

The installer script asks for confirmation before performing the installation. If you prefer a manual installation you can also perform the installer steps yourself. See the configuration files documentation for details on how the node loads config files at startup.

Download the latest Debian package and install it via dpkg:

Terminal window
dpkg -i tenzir-static-amd64-linux.deb

You can uninstall the Tenzir package via apt-get remove tenzir. Use purge instead of remove if you also want to delete the state directory and leave no trace.

The installer script uses the package manager of your Linux distribution to install the Tenzir package. This typically also creates a systemd unit and starts the node automatically.

For testing, development, our troubleshooting, run the tenzir-node executable to start a node manually:

Terminal window
tenzir-node
_____ _____ _ _ ________ ____
|_ _| ____| \ | |__ /_ _| _ \
| | | _| | \| | / / | || |_) |
| | | |___| |\ |/ /_ | || _ <
|_| |_____|_| \_/____|___|_| \_\
v4.0.0-rc6-0-gf193b51f1f
Visit https://app.tenzir.com to get started.
[16:50:26.741] node listens for node-to-node connections on tcp://127.0.0.1:5158
[16:50:26.982] node connected to platform via wss://ws.tenzir.app:443/production

There exist two ways stop a server:

  1. Hit CTRL+C in the same TTY where you ran tenzir-node.
  2. Send the process a SIGINT or SIGTERM signal, e.g., via pkill -2 tenzir-node.

Hitting CTRL+C is equivalent to manually sending a SIGTERM signal.

To run a node in Azure, we recommend using Azure Container Instances (ACI), which allows you to run Docker containers without having to setup VMs.

Prior to getting started, you need a valid TENZIR_TOKEN that you can obtain after provisioning a node and downloading the Docker Compose configuraiton file.

  1. Open https://portal.azure.com/.
  2. Navigate to the Container instances.
  3. Click the Create button.

In the Basics tab, perform the following action:

  1. Choose a container name.
  2. For Image source, select Other registry.
  3. For Image, enter tenzir/tenzir-node.

Basics

In the Networking tab, configure the ports you plan to use for pipeliens that receive incoming connections.

Networking

In the Advanced tab, enter the TENZIR_TOKEN environment variable from your Docker Compose file.

Advanced

Once you’ve completed the configuration, click the Create button. Your node is now up and running.

Looking for a native macOS package? We’re not quite there yet—but you can still run Tenzir smoothly on macOS using Docker.

Want to see a native macOS build? Let us know! Drop your vote in our Discord community—we prioritize what our users need most.

Tenzir does run well on macOS under the hood. Docker just bridges the gap for now.

The Ansible role for Tenzir allows for easy integration of Tenzir into existing Ansible setups. The role uses either the Tenzir Debian package or the tarball installation method depending on which is appropriate for the target environment. The role definition is in the ansible/roles/tenzir directory of the Tenzir repository. You need a local copy of this directory so you can use it in your playbook.

This example playbook shows how to run a Tenzir service on the machine example_tenzir_server:

- name: Deploy Tenzir
become: true
hosts: example_tenzir_server
remote_user: example_ansible_user
roles:
- role: tenzir
vars:
tenzir_config_dir: ./tenzir
tenzir_read_write_paths: [/tmp]
tenzir_archive: ./tenzir.tar.gz
tenzir_debian_package: ./tenzir.deb

A path to directory containing a tenzir.yaml relative to the playbook.

A list of paths that Tenzir shall be granted access to in addition to its own state and log directories.

A tarball of Tenzir structured like those that can be downloaded from the GitHub Releases Page. This is used for target distributions that are not based on the apt package manager.

A Debian package (.deb). This package is used for Debian and Debian-based Linux distributions.

Last updated: