Skip to content

Install

Choose the way that suits where you will run it. They all start the same server.

A multi-architecture image (amd64 and arm64) is published for every release.

Terminal window
docker run --rm -p 8080:8080 -v refhir-data:/data ghcr.io/hai-hq/refhir:0.0.1

The tags are 0.0.1, 0.0 and latest. Pin a version in anything you keep.

The image’s default configuration listens on 0.0.0.0:8080, keeps a SQLite database at /data/refhir.sqlite and caches packages in /data/package-cache, so mount a volume at /data or the data goes when the container does. To use your own settings, mount a file at /etc/refhir/refhir.toml; it replaces the default.

While the server installs packages and builds its search indexes it answers 503 with "status":"starting". When it is ready, /readyz returns 200:

Terminal window
curl -s http://127.0.0.1:8080/readyz
# {"status":"ok"}
curl -s http://127.0.0.1:8080/metadata | head -c 300

/metadata is the CapabilityStatement, built from what is installed, so it is the authority on what this server supports. Without --bind, the server listens on 127.0.0.1:8080.

How you started it Where the data goes
--memory In RAM. It is gone when the process exits. Good for trying things.
--sqlite path A SQLite file. Without a path the default is refhir.sqlite in the working directory.
--postgres url Postgres, for production and for several processes on one database.