Skip to content

v0.2.8

Choose a tag to compare

@aaldersondev aaldersondev released this 06 Aug 10:27
· 32 commits to main since this release

The installer is now tested by running it.

Fixed

The services could not start on a machine where node is not in /usr/bin. Both systemd units named the interpreter absolutely — systemd resolves no PATH — and the installer installs node without ever telling the units where it put it. Anywhere else, the service died with 203/EXEC, a code that says the interpreter could not be run and nothing about which one.

The restart rate limit did not exist. StartLimitBurst and StartLimitIntervalSec sat in [Service]; systemd has read them in [Unit] since v230 and ignores them elsewhere, with one line in the journal to say so. A broken daemon looped in restarts unbounded — four in twenty seconds, in the run that caught it.

The installer could end with a dead daemon. It started hopperd before certbot had issued the certificate, while the node had already been registered as https and its configuration pointed at a Let's Encrypt path that did not exist yet. The node and the daemon now come after the web server, the restart is verified rather than assumed, and a certbot failure now puts the instance back on http properly instead of warning and carrying on.

Added

A CI job that installs Hopper on a blank machine and then uses it: both services stay up, the panel serves the asset its own page references, the node has ports, and a Paper server created on 25566 installs, reinstalls, starts once, carries that port in its own configuration and answers a Minecraft ping there.

Every defect above was found by that job, on its first three runs. Lint, typecheck and 266 unit tests had been green through every release that shipped them.

Upgrading

From the panel: Settings → Update now.