Skip to content

Install by hand

This does what the quick install script does. You need a Linux machine with Docker Engine and the Docker Compose plugin.

Every release carries compose.yml and env.example, listed in its signed checksums.txt.

Terminal window
mkdir -p /opt/shardkeep && cd /opt/shardkeep
curl -fsSLo compose.yml https://gitlab.com/shardkeep/shardkeep/-/releases/permalink/latest/downloads/compose.yml
curl -fsSLo .env https://gitlab.com/shardkeep/shardkeep/-/releases/permalink/latest/downloads/env.example
chmod 600 .env
# The release to run, without the "v". Change it to upgrade.
SHARDKEEP_VERSION=1.20.0
# The name or IP address people and other Nodes use to reach this machine.
SHARDKEEP_PUBLIC_NAME=shardkeep.example.com
# The PostgreSQL password, for example from: openssl rand -hex 24
POSTGRES_PASSWORD=

Keep .env private: it holds the database password.

Terminal window
docker compose up -d

This starts three containers:

  • controller: the web UI and API on port 8080, and the ports Agents use (8443 and 8444).
  • postgres: the Controller’s database. The Controller waits until it is ready.
  • agent: the bundled Agent. The Controller hands it an enrollment token through a volume only the two share, so this machine becomes the Node called local with nothing to copy.

The Controller’s data directory (its certificate authority, TLS certificate and software cache) is the controller-data volume. Back it up with the database: it holds the CA’s private key.

Terminal window
docker compose exec controller shardkeep admin setup-code

Then finish setup in your browser.