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.
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
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.
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
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.
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.