Downloads

Downloads

Hyperuplink is a single, self-contained binary, so there is refreshingly little to download and nothing to install alongside it. Pick the runway that suits you.

Pre-built binaries and container images for every tagged release live on the GitHub releases page. Grab the latest and go.

Docker

The quickest way to hear a dial tone. Point the container at your PostgreSQL and Redis, hand it a config file, and open the port.

docker run -d --name hyperuplink \
  -p 3000:3000 \
  -v /etc/hyperuplink.toml:/etc/hyperuplink.toml:ro \
  ghcr.io/hyperuplink/hyperuplink:latest \
  -c "file:///etc/hyperuplink.toml"

Prefer to bring the whole stack up at once? A docker-compose.yml (PostgreSQL + Valkey, with an optional MinIO profile for object storage) ships in the repository:

docker compose up -d

Podman

Rootless and daemonless, identical to the docker commands above:

podman run -d --name hyperuplink \
  -p 3000:3000 \
  -v /etc/hyperuplink.toml:/etc/hyperuplink.toml:ro \
  ghcr.io/hyperuplink/hyperuplink:latest \
  -c "file:///etc/hyperuplink.toml"

The repository also ships a podman-compose.yml and a set of Quadlet unit files, so you can run the board as a systemd service.

Kubernetes

One stateless binary that reads its config and talks to Postgres is a model citizen in a cluster. A minimal Deployment looks like this:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hyperuplink
spec:
  replicas: 2
  selector:
    matchLabels: { app: hyperuplink }
  template:
    metadata:
      labels: { app: hyperuplink }
    spec:
      containers:
        - name: hyperuplink
          image: ghcr.io/hyperuplink/hyperuplink:latest
          args: ["-c", "file:///etc/hyperuplink/hyperuplink.toml"]
          ports:
            - containerPort: 3000
          volumeMounts:
            - name: config
              mountPath: /etc/hyperuplink
              readOnly: true
      volumes:
        - name: config
          secret:
            secretName: hyperuplink-config

Native

Download the binary for your platform from the releases page, drop it wherever you please, and run it:

./hyperuplink -c "file:///etc/hyperuplink.toml"

Or, to build it straight from source, see the Development page.

Configuration

Hyperuplink is configured through a single TOML file that you hand to the binary as a file:// URI. Please refer to the repository for more information on how to configure your instance of Hyperuplink.