virling Docs
v0.1.0 virling.com GitHub
virling Docs

Docker

The image is published to the GitHub Container Registry as ghcr.io/virling/virling on every release.

docker pull ghcr.io/virling/virling:latest

Tags

TagExamplePoints to
X.Y.Z0.1.0One exact release
X.Y0.1The newest patch release of that minor version
latestlatestThe newest release

Pin X.Y.Z in production so an upgrade only happens when you change the tag. Read the changelog first: Virling is in early development and releases can include breaking changes.

The image is built for linux/amd64 only. An arm64 image is Not available yet. On arm64 Linux, use the release binary.

What is in the image

SettingValue
Entrypointvirling
Default commandserve
Data folder/data, declared as a volume, set with VIRLING_DATA=/data
Listen address0.0.0.0:8080, set with VIRLING_ADDR, port 8080 exposed
Uservirling, uid 10001, home /data
Basedebian:bookworm-slim with CA certificates

Without arguments, the container runs virling serve, which only serves the tracking script and the event endpoint. Pass serve --app to also serve sign-in, the dashboard and payment sync:

docker run -d --name virling \
  -p 8080:8080 \
  -v virling-data:/data \
  -e VIRLING_BASE_URL=https://stats.example.com \
  ghcr.io/virling/virling:0.1.0 serve --app

Warning

Mount a volume on /data. Events, settings and secret.key live there. Without a volume they are lost when the container is removed.

If you bind-mount a host folder instead of a named volume, make it writable by uid 10001:

sudo mkdir -p /srv/virling && sudo chown 10001 /srv/virling
docker run -d --name virling -p 8080:8080 -v /srv/virling:/data \
  ghcr.io/virling/virling:0.1.0 serve --app

Run CLI commands

The image’s entrypoint is the virling binary, so other commands run in the same container:

docker exec virling virling add-site yourdomain.com --owner you@example.com
docker exec virling virling --version

Next: run it in production with Docker.

Was this page helpful?No Edit this page on GitHub