Installing from the dnf repository¶
x86_64 RPMs are published to a dnf/yum repository hosted alongside these docs, so
RHEL-family machines can install and upgrade nereid-server the same way they get anything
else:
sudo dnf config-manager --add-repo https://www.noahpaladino.com/nereid-server/rpm/nereid-server.repo
sudo dnf install nereid-server
On dnf5 (Fedora 41+) the first command is sudo dnf config-manager addrepo --from-repofile=...;
on older systems dnf config-manager lives in the dnf-plugins-core package. Failing either,
the repo file is a plain text file and can simply be dropped in place:
sudo curl -fsSL -o /etc/yum.repos.d/nereid-server.repo \
https://www.noahpaladino.com/nereid-server/rpm/nereid-server.repo
You will be asked once to accept the signing key, whose fingerprint is shown in the prompt.
From then on dnf upgrade picks up new releases like any other package.
Requirements¶
The package is built on Enterprise Linux 9, so it needs glibc 2.34 or newer —
RHEL/Rocky/AlmaLinux 9+ or Fedora 38+ — on x86_64. There is no aarch64 build. See
Building if you need either.
What the repository is, exactly¶
The metadata lives on this docs site; the packages themselves stay on
GitHub Releases and dnf is pointed at
them by an xml:base in the repository's primary.xml. That split is not incidental — one
package is ~200 MB, because it carries its own libtorch, and GitHub Pages caps a site at
1 GB. So the repository is metadata only, and dnf install downloads from github.com.
Two consequences worth knowing:
- The repository lists the three most recent releases. Older versions stay downloadable
from the releases page, but
dnfwill not offer them. - Only signed packages are listed. The
.repofile setsgpgcheck=1andrepo_gpgcheck=1, so both the packages and the repository metadata are verified against the published key. Anything unsigned is left out of the metadata rather than offered and then refused.
Verifying by hand¶
# the key the repository is signed with
curl -fsSL https://www.noahpaladino.com/nereid-server/rpm/RPM-GPG-KEY-nereid | gpg --show-keys
# what dnf sees
dnf --disablerepo='*' --enablerepo=nereid-server list --available nereid-server
# a downloaded package, against the imported key
sudo rpm --import https://www.noahpaladino.com/nereid-server/rpm/RPM-GPG-KEY-nereid
rpm -K nereid-server-*.x86_64.rpm # "digests signatures OK"
Debian and Ubuntu¶
There is no apt repository. Every release attaches a .deb next to the .rpm, installable
directly:
It needs Debian 12+ or Ubuntu 22.04+, the same glibc 2.34 floor.
After installing¶
Both packages lay out the same files and install the systemd unit disabled, since the shipped config has no models in it:
| Path | Contents |
|---|---|
/usr/bin/nereid-server |
symlink to the binary |
/usr/lib/nereid-server/ |
the bundle: binary + lib/*.so |
/usr/lib/systemd/system/nereid-server.service |
the unit, installed disabled |
/var/lib/nereid-server/nereid.yaml |
your config — an upgrade never clobbers it |
/var/lib/nereid-server/ml-backends/ |
where model folders go |
/usr/share/doc/nereid-server/ |
nereid.yaml.example, README, LICENSE |
The unit runs as the nereid system user with WorkingDirectory=/var/lib/nereid-server,
which is how the server finds its config: it reads nereid.yaml from the working directory
and resolves server.ml_backends_path relative to it. So configure it, then start it:
sudo cp -r mymodel /var/lib/nereid-server/ml-backends/
sudo -e /var/lib/nereid-server/nereid.yaml # add an entry under `models:`
sudo chown -R nereid:nereid /var/lib/nereid-server
sudo systemctl enable --now nereid-server
See the model contract for what belongs in a model folder. Uninstalling
leaves /var/lib/nereid-server and the models in it alone.