kogutdocs

Installation

Docker

Run kogut as a single container with its data in a volume.

The image supports linux/amd64 and linux/arm64. For HTTPS, use Caddy or Tailscale.

Start the container

docker run -d --name kogut \
  -p 8484:8484 \
  -v kogut-data:/data \
  -e KOGUT_URL=http://localhost:8484 \
  --restart unless-stopped \
  --health-cmd "/usr/local/bin/kogut healthcheck" --health-interval 30s \
  ghcr.io/piotrkowski/kogut:0.1

For remote access, replace http://localhost:8484 with the exact URL you open. Open it and create your account with the setup token from the log (First run):

docker logs kogut 2>&1 | grep setup_token

Upgrading lists the image tags.

Keep data on the host

To keep /data in a host directory instead of the volume, make it writable by the image’s user, UID 65532:

sudo mkdir -p /srv/kogut
sudo chown 65532:65532 /srv/kogut

Replace -v kogut-data:/data with -v /srv/kogut:/data in the start command.

Configuration

Set KOGUT_URL to the URL people and agents use. See Environment variables for the rest.

To keep kogut.toml on the host, create ./config/kogut.toml and add to docker run:

-v ./config:/etc/kogut:ro \
-e KOGUT_CONFIG=/etc/kogut/kogut.toml \
-e TELEGRAM_BOT_TOKEN

Write the secret as ${TELEGRAM_BOT_TOKEN} in kogut.toml and export it before starting the container. Mount the directory, not the file, or editors that replace files leave the container reading an old copy. See kogut.toml.

Inspect the container

Use docker logs kogut for logs. The distroless image runs as a non-root user and has no shell. It has no built-in HEALTHCHECK; the start command above adds one. In a Compose service:

healthcheck:
  test: ["CMD", "/usr/local/bin/kogut", "healthcheck"]
  interval: 30s

The Docker Compose setup includes it. See kogut healthcheck for its exit codes.

To monitor the host and its containers, see Agent in Docker, or Monitor the same host to do it without a second container.