Files
alpine-packages/packaging/alpine/local/lavinmq/README.md
T
Joachim Schlöffel a2761c0b1f
Build Alpine Packages / preflight (pull_request) Failing after 4s
Build Alpine Packages / build (gitea) (pull_request) Skipped
Build Alpine Packages / build (greptimedb) (pull_request) Skipped
Build Alpine Packages / build (lavinmq) (pull_request) Skipped
Build Alpine Packages / build (nifi) (pull_request) Skipped
Build Alpine Packages / build (rclone-openrc) (pull_request) Skipped
Build Alpine Packages / build (seaweedfs) (pull_request) Skipped
Build Alpine Packages / verify-and-publish (pull_request) Skipped
update LavinMQ bundled sources
2026-10-08 09:55:25 +02:00

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:

  • lavinmq
  • lavinmqctl
  • lavinmqperf
  • /etc/lavinmq/lavinmq.ini
  • /var/lib/lavinmq

Default ports:

  • 5672: AMQP
  • 15672: 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 --config
  • LAVINMQ_DATA_DIR: data directory passed with -D
  • LAVINMQ_OPTS: extra LavinMQ arguments appended after package defaults

Updating LavinMQ

  1. In APKBUILD, set pkgver to the new upstream version and reset pkgrel to 0.

  2. Generate the versioned, locked Shards and frontend-asset archives:

    ALPINE_PACKAGE=lavinmq mise run apk:update-generated
    

    The hook uses the upstream shard.lock and Makefile, so it also refreshes the bundled inputs when either dependency list changes.

  3. 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