An rc.d(8) service definition and install script for running Glance on OpenBSD.
Glance is a self-hosted dashboard built and maintained by the glanceapp project, licensed under AGPL-3.0. All credit for Glance itself goes there — this repository doesn't include or modify its source. It just adds the OpenBSD-native service integration upstream doesn't ship: a system user, an rc.d script, and a config skeleton.
Upstream already publishes a working openbsd/amd64 binary with every release. There's no OpenBSD port or package for it yet, and no rc.d script anywhere — that's the gap this fills.
/usr/local/bin/glance— the official release binary, unmodified._glance— a dedicated, unprivileged system user (/var/empty,/sbin/nologin), same pattern OpenBSD base uses for other daemons./etc/glance/glance.yml— config file, owned by_glance, mode600./etc/rc.d/glance— standardrc.dscript, sorcctl start|stop|status glanceandrcctl enable glancework like any base service.
git clone <this repo>
cd glance-openbsd
doas ./install.sh # installs the latest version this repo was tested against
doas ./install.sh v0.8.6 # or pin a specific release tag
The script downloads glance-openbsd-amd64.tar.gz straight from the GitHub release, installs the binary, creates the _glance user if it doesn't exist, drops a starter config at /etc/glance/glance.yml (only if one isn't already there), installs the rc.d script, and enables the service. It doesn't start it — edit the config first.
Edit /etc/glance/glance.yml (start from glance.yml.example in this repo, or the full config reference). By default it binds to 127.0.0.1:8070 — loopback only.
doas rcctl start glance
doas rcctl status glance
The config binds to loopback on purpose. How you reach it from outside the box is deliberately left to you: relayd/httpd with a TLS cert, a WireGuard or Tailscale tunnel, or an SSH port-forward for a quick look. None of that is OpenBSD- or Glance-specific, so it isn't baked into this repo.
This repo tracks upstream releases by version tag, nothing more — there's no build step to keep in sync. To pick up a new Glance release:
- Check glanceapp/glance releases for the latest tag (or watch that repo's Releases via GitHub's "Watch" button, or subscribe to its
releases.atomfeed). - Re-run
doas ./install.sh <new-version-tag>. It overwrites the binary in place and leaves your/etc/glance/glance.ymluntouched. - Skim that release's changelog for new widget types or config options —
glance.yml.exampleand the config reference link above aren't auto-updated, so add anything new yourself if you want it.
doas rcctl stop glance
doas rcctl disable glance
doas rm /etc/rc.d/glance /usr/local/bin/glance
doas rm -r /etc/glance # only if you want the config gone too
doas userdel _glance
This repo (the rc.d script, install script, and example config) is MIT-licensed — see LICENSE. Glance itself is AGPL-3.0, owned by glanceapp.
Some of this code was written with Claude.