2.2 KiB
LavinMQ Alpine Package
Builds LavinMQ from the upstream source release for x86_64 and packages the
OpenRC service plus /etc/lavinmq defaults. The locked Shards dependencies and
frontend assets are versioned, checksummed source inputs, so the build does not
need network access.
Build command:
make
LavinMQ 2.10.1 requires Crystal 1.21.0 or newer. The package uses Alpine edge's native Crystal package, avoiding a glibc toolchain in the Alpine musl build.
Runtime Layout
Installs:
lavinmqlavinmqctllavinmqperf/etc/lavinmq/lavinmq.ini/var/lib/lavinmq
Default ports:
5672: AMQP15672: management UI
OpenRC Usage
apk add lavinmq lavinmq-doc lavinmq-openrc
rc-update add lavinmq default
rc-service lavinmq start
Install daily rotation for the OpenRC service log, retaining 14 compressed archives:
apk add lavinmq-logrotate
Wrapper settings in /etc/conf.d/lavinmq:
LAVINMQ_CONFIG: config file path passed with--configLAVINMQ_DATA_DIR: data directory passed with-DLAVINMQ_OPTS: extra LavinMQ arguments appended after package defaults
Updating LavinMQ
-
In
APKBUILD, setpkgverto the new upstream version and resetpkgrelto0. -
Generate the versioned, locked Shards and frontend-asset archives:
ALPINE_PACKAGE=lavinmq mise run apk:update-generatedThe hook uses the upstream
shard.lockandMakefile, so it also refreshes the bundled inputs when either dependency list changes. -
From the repository root, refresh checksums and build the package:
ALPINE_PACKAGE=lavinmq mise run apk:checksum ALPINE_PACKAGE=lavinmq mise run apk:build
Package Commands
Refresh checksums:
ALPINE_PACKAGE=lavinmq mise run apk:checksum
Build:
ALPINE_PACKAGE=lavinmq mise run apk:build
Install-test local build:
ALPINE_PACKAGE=lavinmq SKIP_BUILD=1 mise run apk:test-install
Install-test published repository:
ALPINE_PACKAGE=lavinmq \
SKIP_BUILD=1 \
ALPINE_REPOSITORY_URL=https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages \
ALPINE_REPOSITORY_KEY_URL=https://code.factoring.digital/api/packages/public/alpine/key \
mise run apk:test-install