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
102 lines
2.2 KiB
Markdown
102 lines
2.2 KiB
Markdown
# 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:
|
|
|
|
```sh
|
|
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
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
ALPINE_PACKAGE=lavinmq mise run apk:checksum
|
|
ALPINE_PACKAGE=lavinmq mise run apk:build
|
|
```
|
|
|
|
## Package Commands
|
|
|
|
Refresh checksums:
|
|
|
|
```sh
|
|
ALPINE_PACKAGE=lavinmq mise run apk:checksum
|
|
```
|
|
|
|
Build:
|
|
|
|
```sh
|
|
ALPINE_PACKAGE=lavinmq mise run apk:build
|
|
```
|
|
|
|
Install-test local build:
|
|
|
|
```sh
|
|
ALPINE_PACKAGE=lavinmq SKIP_BUILD=1 mise run apk:test-install
|
|
```
|
|
|
|
Install-test published repository:
|
|
|
|
```sh
|
|
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
|
|
```
|