update LavinMQ and update SeaweedFS configs
Build Alpine Packages / build-and-publish (v3.24, 3.24) (push) Successful in 1h9m3s

This commit is contained in:
Joachim Schlöffel
2026-09-26 14:14:07 +02:00
parent 2825e1bfef
commit a2da4acc53
17 changed files with 74 additions and 308 deletions
+3 -3
View File
@@ -19,9 +19,9 @@ https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages
| Package | APK Name | Package Version | Package Type | Purpose |
|-----------------------------------------------------------|--------------|-----------------|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|
| [SeaweedFS](packaging/alpine/local/seaweedfs/README.md) | `seaweedfs` | `4.45` | Binary repackaging of official upstream release tarballs | Ships current SeaweedFS features with Alpine OpenRC role splits. |
| [GreptimeDB](packaging/alpine/local/greptimedb/README.md) | `greptimedb` | `1.1.4` | Source build from upstream release | Provides a current GreptimeDB build and component OpenRC packages before it is available from Alpine community. |
| [LavinMQ](packaging/alpine/local/lavinmq/README.md) | `lavinmq` | `2.9.2` | Source build from upstream release | Provides a current LavinMQ build on Alpine 3.24 with matching Crystal support. |
| [SeaweedFS](packaging/alpine/local/seaweedfs/README.md) | `seaweedfs` | `4.47` | Binary repackaging of official upstream release tarballs | Ships current SeaweedFS features with Alpine OpenRC role splits. |
| [GreptimeDB](packaging/alpine/local/greptimedb/README.md) | `greptimedb` | `1.2.1` | Source build from upstream release | Provides a current GreptimeDB build and component OpenRC packages before it is available from Alpine community. |
| [LavinMQ](packaging/alpine/local/lavinmq/README.md) | `lavinmq` | `2.10.0` | Source build from upstream release | Provides a current LavinMQ build on Alpine 3.24 with matching Crystal support. |
| [Gitea](packaging/alpine/local/gitea/README.md) | `gitea` | `1.27.3` | Binary repackaging of official upstream release binaries | Ships current Gitea releases with the expected Alpine runtime layout and OpenRC service. |
## Use In Production
+2 -2
View File
@@ -1,6 +1,6 @@
# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
pkgname=lavinmq
pkgver=2.9.3
pkgver=2.10.0
pkgrel=0
pkgdesc="High-performance AMQP and MQTT message queue server"
url="https://github.com/cloudamqp/lavinmq"
@@ -69,7 +69,7 @@ _openrc() {
}
sha512sums="
7b6f5691befad9a602eac898e59b35136d4450ef5e2304c11da8c9f40c8450fdad1387bdabb84261fc0b69005ba104a74527608f1984cd4ce70024f0936b4a76 lavinmq-2.9.3.tar.gz
b494892dada6eb713025bc3245e16035a63265805d77c537b4530226195f00dacab1fb14de5bf4c999165faa6bf2f7ef7c6b8ffb4c6f4a921977f1c13a4f1545 lavinmq-2.10.0.tar.gz
62a609d50f28db960098c4c84ce4f1dad78413366a9a9aca18fe321114d687be3bf7b71924d4ace69bd74383c5ac40d2ee09ae0eef9c1bfe653b97448e42e110 lavinmq.confd
1853196e70297b5c4a2207fde50df735620cf6d99c4994644fd676bffaf863d67300ad7ae771c4bbb86fce1a0485c2a7968cf912c5f5bb878e08b15e5a28ba1b lavinmq.initd
"
+13 -15
View File
@@ -1,7 +1,7 @@
# Maintainer: Joachim Schlöffel <joachim.schloeffel@financial-service-plus.de>
pkgname=seaweedfs
pkgver=4.47
pkgrel=1
pkgrel=2
pkgdesc="Distributed storage system for object storage, file systems, and Iceberg tables"
url="https://github.com/seaweedfs/seaweedfs"
arch="x86_64 aarch64"
@@ -40,21 +40,19 @@ source="
$pkgname-$pkgver-linux-arm64.tar.gz::https://github.com/seaweedfs/seaweedfs/releases/download/$pkgver/linux_arm64.tar.gz
$pkgname-$pkgver-src.tar.gz::https://github.com/seaweedfs/seaweedfs/archive/refs/tags/$pkgver.tar.gz
admin.toml
example-admin.toml
credential.toml
example-admin.toml
example-credential.toml
example-filer.toml
example-master.toml
example-volume.toml
example-notification.toml
example-replication.toml
example-security.toml
example-shell.toml
filer.toml
master.toml
notification.toml
replication.toml
security.toml
shell.toml
seaweedfs.admin.confd
seaweedfs.filer.confd
seaweedfs.initd
@@ -87,9 +85,11 @@ package() {
install -Dm755 "${CARGO_TARGET_DIR:-$_worker_builddir/target}/release/weed-worker" \
"$pkgdir"/usr/bin/weed-worker
local _config
for _config in admin credential filer master notification replication security shell; do
for _config in admin credential filer master security; do
install -Dm644 "$srcdir"/$_config.toml \
"$pkgdir"/etc/seaweedfs/$_config.toml
done
for _config in admin credential filer master volume notification replication security shell; do
install -Dm644 "$srcdir"/example-$_config.toml \
"$pkgdir"/usr/share/doc/$pkgname/examples/$_config.toml
done
@@ -140,22 +140,20 @@ sha512sums="
f2e90fac760ac93951becce0314fa27aa69308a538a14d9066635d64c5fca07eababdbd41f5bb2215ba5793bf14fa2c019163438467aab2cf5bfea7f204f3faa seaweedfs-4.47-linux-amd64.tar.gz
a3e44542fa6e0f1266dea998a50120325c67a448d2cf09ad370a6d147f3d6096363fea57a056b2bd38d5b0674f4b2695644eed7e93110542efdc03fd8b5cde9e seaweedfs-4.47-linux-arm64.tar.gz
b04ed6a4d16a016d08179a85fb0d4a7cf9de354f39820f8590a92384f5c750236f690a2110e9c33ba253564eadc02f639a329754f48b5d213c9c117c4ba46578 seaweedfs-4.47-src.tar.gz
4f24760848c909fdee1ae8569ef7ef7cbec2c885d891a543d7beddee492bddbf266e6789601095a86798d1b00256782c45297ea36cdb527bb6b64980dd02486a admin.toml
58be6587b082f45b4dd22ad8ebb1b8bf84cea2a7c0cb6b4ad4a749ac0bfdf92d10d22281a432f9e5a87afa0b940cd0172671a292fbe17803e56425cd940d47f9 admin.toml
7f77ad8787629e3defbc89e39e5432482aa50d87ddd723de927a9c6c77b14b1673cbf5b3fc3c18dd7d0eba26fbcd4220d2da6939ed097d0294b24ccd5c002635 credential.toml
507b389f6373b5f4d8ca69f27bc806b39bda8edf7f58e4f32720958e7782ee171dd0461bdecb285e5a8bf2cf4ea3d6cbe8b62ae6ac43c2a40d0eb053d50a22f8 example-admin.toml
b6ce09d6d83dd70e2797a185171eea3587436fb024a99b4998f714b713244d6f768ef59f67c9b7251650d4f19d414eea231eab92099763d85cd92e41cb2bdc3f credential.toml
7105de7053654b8c0502521ce58585915fc831c3152801e1db02b1c5214dc3c3ed31f4fc18000665d8338c7a10ffbf0d248368bef2ef3a6d37d46cd856398366 example-credential.toml
fe9b11f24bc10297e8a4c411ff28868aafb153d5bb98711bab0c6c0b59aa267c42057a81adbf46809a87004004dfdc403744cf1bb8bebcf0b7030dcb11ba238a example-filer.toml
c6ec4fc7709c42dc6771b5039203c44cbd693742abcd7720936c00b1bd5f99bb2999bb1545680ae4418efedd65d71c234f4602f52ce9d58b1ff7ec53eafb1a1a example-filer.toml
e5753bd0bcc60dc84428c40ba556c08acae61dec083a5b76640125f637532e7c5759a72cdfd95114222a7a0901a916ec3c4d12f306853cfca0fe9a0b1857893e example-master.toml
2d64cde0ba4f91ed78a580399d7cada2af254c974a8f6458be70339d218d772680ca1bdefcb69e3a3eced1b0fd8206fa0e30122c1cd0a4dc9f306f813da935ee example-volume.toml
2c200c28172a5d0b1c80ab28e849287e7af8d103355638fd3183b8614d3e2b1b3482132522663f7c6d844e10e13b8c6e23fb5fba0dec2cc83de45c2f17b33477 example-notification.toml
328cfe43d0c2ebf5092a1178af45c37b07593085135c31649754f0df9fd4c043847c13b56c3c7c45194541db8082309c4845c825d7011e4c3e503b1e6576528d example-replication.toml
3b45b0f5bf6c5339cfb63c3ddb489b7122e03996ce380c7a244778ef1e7f6c06b4e3e56ea695a2dc3c9c49322a58df865ff50b2904318abafee5e66b2af757f1 example-security.toml
70069f97edf261a2cd0669dd60adad80533609a25d7429254e0c3322d7e80337f5ff69a5581bc39e6a15442098d14d610ce5f0cb14f02c461c8d3dd440b22c56 example-shell.toml
be5771a5e1bf626c53f9dffbfa2a400d9b8f9626d55a7b61dcd853753561989427ba872a2638a5e6343f44dea6790678483bd29101d6495dbbfcd3029947b9a7 filer.toml
2cd6c73a5e23e0395b6f099dcc3acf9280cbb3e13f54408571e91741c4e6b0dad85f6d4e5a92f23ad541bad57ce295c28bb8450fe11da35acbd4da25848f61e5 master.toml
0a1b3d0fd1671744f96e7642fb9aee9b80debd0d9a82f586beb36fe32f9ad440332acd2a8b0ee0b210b912cb281d88ca56fd15e3a2ece61be9dcf96afc00a6f8 notification.toml
5a607ce6cdd11ffbe528b9a85e0012b48accefa6ccfeda9d6aa70d92ccf7f219e75c93cd2f1c36f3eb16204b3652a45dcd52ffcb64bceef91d081702b19cef3c replication.toml
d21981923b5964cf8365185a4f7c28a14e33ba6f60ad63e797e315544a6c22efdaa72814292824c07ef14554738769e0fd4c670fe797cf77b0226b2595a8b43b security.toml
7a91ce9da79b92e5ef42d4915f56a010bceaaa6c96dcef1f7b1821ee208d381aaa88b9cf495248276132e66d3215927f589b7fabc4eae2c2cb195645f904fac7 shell.toml
130b9932f99d0a3ec3c30c74eaf1dc441c1a9252da30e2c5365084f2a0679f58531e6180689c24b71f92cf9a7966b02ea25ee31d356e7118cbb82743d0bfcbd9 filer.toml
088c3aebc142054af1b54a92a2c5bd30d53be61bdf382f7cae2efef2d917d7b57022d9b494a60f32c7bf56689d4ce2f971e19c98da1d87e27021a3e948035605 master.toml
79a078133c259473e601488cd1d8032b74c5fa32da6f34a4ed46efa9736bf5369365a77d775e3d78512b1060cd87012eb40226829eecb30544e1542d165af7d6 security.toml
82e2793bf483ffb5b0c8fbe38e6c9df75afe01f824f8414cafd91e4bed5c79c13dae1ca659070401d4968d16ed4b26455b0c6208f777705527bceb2e5f286988 seaweedfs.admin.confd
5ad952c37c62a770327bd70f7349fa677406606f0b9bf03fdc8f6c6804701f1e77710ab20d6153f9e0cfb549ec161d68a3316abab9c59837bbe3f91ee99e5ce0 seaweedfs.filer.confd
583de285a15b9006881821127b3fa0759216649c87c2f9aa5eaf73993ebfa66f7e06d364b1a35dd332efc9db4867120a3564f6ef12d2b39f00d7020c604599d6 seaweedfs.initd
+11 -4
View File
@@ -1,6 +1,6 @@
# SeaweedFS Alpine Package
Repackages official SeaweedFS 4.39 Linux release tarballs for `x86_64` and
Repackages official SeaweedFS 4.47 Linux release tarballs for `x86_64` and
`aarch64`.
## Package Commands
@@ -12,6 +12,10 @@ ALPINE_PACKAGE=seaweedfs mise run apk:update-generated
ALPINE_PACKAGE=seaweedfs mise run apk:checksum
```
The refresh command generates every SeaweedFS 4.47 scaffold configuration:
`admin`, `credential`, `filer`, `master`, `volume`, `notification`,
`replication`, `security`, and `shell`.
Build:
```sh
@@ -75,13 +79,16 @@ Runtime paths:
/etc/init.d/seaweedfs.*
```
Edit `/etc/conf.d/seaweedfs.<role>` for flags and `/etc/seaweedfs/*.toml` for
SeaweedFS config. Upstream examples:
Edit `/etc/conf.d/seaweedfs.<role>` for flags. The package supplies a small set
of safe defaults in `/etc/seaweedfs/`; the complete upstream-generated scaffold
configs are available at:
```text
/usr/share/doc/seaweedfs/examples/
```
Copy and customize a scaffold file only when enabling its related feature.
Enable services:
```sh
@@ -133,5 +140,5 @@ rc-service seaweedfs.master restart
Pin:
```sh
apk add seaweedfs=4.39-r0
apk add seaweedfs=4.47-r2
```
+2 -6
View File
@@ -1,8 +1,4 @@
# Configuration for `weed admin`.
#
# This package disables automatic maintenance by default. Enable individual
# maintenance services deliberately after reviewing the cluster's storage and
# replication policy. The setting is persisted in the admin data directory.
# Disable automatic maintenance until the cluster's storage and replication
# policy has been reviewed. This setting is persisted in the admin data directory.
[maintenance]
enabled = false
@@ -1,19 +1,3 @@
# Use the existing filer store for credentials by default.
[credential.filer_etc]
enabled = true
[credential.postgres]
enabled = false
hostname = "localhost"
port = 5432
username = "seaweedfs"
password = ""
database = "seaweedfs"
schema = "public"
sslmode = "disable"
table_prefix = "sw_"
connection_max_idle = 10
connection_max_open = 100
connection_max_lifetime_seconds = 3600
[credential.memory]
enabled = false
@@ -68,7 +68,7 @@ port = 3306
username = "root"
password = ""
database = "" # create or use an existing database
connection_max_idle = 10
connection_max_idle = 50
connection_max_open = 50
connection_max_lifetime_seconds = 300
interpolateParams = false
@@ -97,7 +97,7 @@ port = 3306
username = "root"
password = ""
database = "" # create or use an existing database
connection_max_idle = 10
connection_max_idle = 50
connection_max_open = 50
connection_max_lifetime_seconds = 300
interpolateParams = false
@@ -106,13 +106,9 @@ enableUpsert = true
upsertQuery = """INSERT INTO `%s` (`dirhash`,`name`,`directory`,`meta`) VALUES (?,?,?,?) AS `new` ON DUPLICATE KEY UPDATE `meta` = `new`.`meta`"""
[postgres] # or cockroachdb, YugabyteDB
# CREATE TABLE IF NOT EXISTS filemeta (
# dirhash BIGINT,
# name VARCHAR(65535),
# directory VARCHAR(65535),
# meta bytea,
# PRIMARY KEY (dirhash, name)
# );
# createTable = true # auto-create filemeta with the default schema
# createTable = false # skip table creation (default; for restricted DB roles)
# createTable = """CREATE TABLE IF NOT EXISTS "%s" (...)""" # custom template
enabled = false
hostname = "localhost"
port = 5432
@@ -127,7 +123,7 @@ sslmode = "disable"
# sslkey = "/path/to/client.key" # client private key file
# sslrootcert = "/path/to/ca.crt" # CA certificate file
# sslcrl = "/path/to/client.crl" # Certificate Revocation List (CRL) (optional)
connection_max_idle = 10
connection_max_idle = 50
connection_max_open = 50
connection_max_lifetime_seconds = 300
# Set to true when using PgBouncer connection pooler
@@ -166,7 +162,7 @@ sslmode = "disable"
# sslkey = "/path/to/client.key" # client private key file
# sslrootcert = "/path/to/ca.crt" # CA certificate file
# sslcrl = "/path/to/client.crl" # Certificate Revocation List (CRL) (optional)
connection_max_idle = 10
connection_max_idle = 50
connection_max_open = 50
connection_max_lifetime_seconds = 300
# Set to true when using PgBouncer connection pooler
@@ -0,0 +1,29 @@
# Put this file to one of the location, with descending priority
# ./volume.toml
# $HOME/.seaweedfs/volume.toml
# /etc/seaweedfs/volume.toml
# this file is read by volume servers
[volume.disk.io]
# Disk IO probing is disabled by default. When enabled, a volume server can
# stop advertising a disk after sustained IO errors or latency degradation.
probe = false
timeout = "2s"
interval = "60s"
window = "1m"
min.samples = 10
max.stat.failures = 5
recovery.coef = 0.5
[volume.disk.io.slow]
percent = 20
[volume.disk.io.error]
percent = 10
# slow threshold per disk type, matched against each -dir's -disk tag.
# a disk whose type is not listed here uses the hdd threshold.
[volume.disk.io.slow.latency]
hdd = "500ms"
ssd = "100ms"
nvme = "50ms"
+1 -43
View File
@@ -1,46 +1,4 @@
[filer.options]
recursive_delete = false
# Store standalone filer metadata in the package-managed data directory.
[leveldb2]
enabled = true
dir = "/var/lib/seaweedfs/filer/meta"
[sqlite]
enabled = false
dbFile = "/var/lib/seaweedfs/filer/filer.db"
[mysql]
enabled = false
dsn = "root@tcp(localhost:3306)/seaweedfs?collation=utf8mb4_bin"
enable_tls = false
hostname = "localhost"
port = 3306
username = "root"
password = ""
database = ""
connection_max_idle = 10
connection_max_open = 50
connection_max_lifetime_seconds = 300
interpolateParams = false
enableUpsert = true
[postgres]
enabled = false
hostname = "localhost"
port = 5432
username = "postgres"
password = ""
database = "postgres"
schema = ""
sslmode = "disable"
connection_max_idle = 10
connection_max_open = 50
connection_max_lifetime_seconds = 300
pgbouncer_compatible = false
enableUpsert = true
[redis2]
enabled = false
address = "localhost:6379"
password = ""
database = 0
+1 -25
View File
@@ -1,27 +1,3 @@
# Disable scheduled maintenance until it is explicitly configured.
[master.maintenance]
scripts = ""
sleep_minutes = 17
[master.sequencer]
type = "raft"
sequencer_snowflake_id = 0
[storage.backend.s3.default]
enabled = false
aws_access_key_id = ""
aws_secret_access_key = ""
region = "us-east-2"
bucket = ""
endpoint = ""
storage_class = "STANDARD_IA"
[master.volume_growth]
copy_1 = 7
copy_2 = 6
copy_3 = 3
copy_other = 1
threshold = 0.9
disable = false
[master.replication]
treat_replication_as_minimums = false
@@ -1,42 +0,0 @@
[notification.log]
enabled = false
[notification.kafka]
enabled = false
hosts = ["localhost:9092"]
topic = "seaweedfs_filer"
offsetFile = "/var/lib/seaweedfs/filer/last.offset"
offsetSaveIntervalSeconds = 10
sasl_enabled = false
sasl_mechanism = "PLAIN"
sasl_username = ""
sasl_password = ""
tls_enabled = false
tls_ca_cert = ""
tls_client_cert = ""
tls_client_key = ""
tls_insecure_skip_verify = false
[notification.aws_sqs]
enabled = false
aws_access_key_id = ""
aws_secret_access_key = ""
region = "us-east-2"
sqs_queue_name = ""
[notification.google_pub_sub]
enabled = false
google_application_credentials = ""
project_id = ""
topic = ""
[notification.webhook]
enabled = false
endpoint = ""
bearer_token = ""
timeout_seconds = 10
max_retries = 3
backoff_seconds = 3
max_backoff_seconds = 30
workers = 5
buffer_size = 10000
@@ -1,29 +0,0 @@
[source.filer]
enabled = false
grpcAddress = "localhost:18888"
directory = "/buckets"
excludeDirectories = "/buckets/tmp"
[sink.local]
enabled = false
directory = "/var/lib/seaweedfs/backup"
is_incremental = false
[sink.filer]
enabled = false
grpcAddress = "localhost:18888"
directory = "/backup"
replication = ""
collection = ""
ttlSec = 0
is_incremental = false
[sink.s3]
enabled = false
aws_access_key_id = ""
aws_secret_access_key = ""
region = "us-east-2"
bucket = ""
directory = "/"
endpoint = ""
is_incremental = false
@@ -25,6 +25,7 @@ test -x /usr/bin/weed-worker
/usr/bin/weed-worker --help >/dev/null
test -d /usr/share/doc/seaweedfs/examples
test -f /usr/share/doc/seaweedfs/examples/master.toml
test -f /usr/share/doc/seaweedfs/examples/volume.toml
test -f /usr/share/bash-completion/completions/weed
weed version
@@ -46,5 +46,6 @@ apk_test_install_run "${repo_root}" "${PACKAGE_NAME:-seaweedfs}" "${PACKAGE_VERS
apk info -e seaweedfs-bash-completion
test -d /usr/share/doc/seaweedfs/examples
test -f /usr/share/doc/seaweedfs/examples/master.toml
test -f /usr/share/doc/seaweedfs/examples/volume.toml
test -f /usr/share/bash-completion/completions/weed
SCRIPT
@@ -2,7 +2,7 @@
set -euo pipefail
package_dir="${PACKAGE_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}"
configs=(admin credential filer master notification replication security shell)
configs=(admin credential filer master volume notification replication security shell)
pkgver="$(
awk -F= '$1 == "pkgver" { print $2; exit }' "${package_dir}/APKBUILD"
)"
+1 -102
View File
@@ -1,104 +1,3 @@
[cors.allowed_origins]
values = "*"
[jwt.signing]
key = ""
expires_after_seconds = 10
# Do not expose the administrative UI by default.
[access]
ui = false
[filer.expose_directory_metadata]
enabled = true
[jwt.signing.read]
key = ""
expires_after_seconds = 10
[jwt.filer_signing]
key = ""
expires_after_seconds = 10
[jwt.filer_signing.read]
key = ""
expires_after_seconds = 10
[grpc]
ca = ""
allowed_wildcard_domain = ""
[grpc.volume]
cert = ""
key = ""
allowed_commonNames = ""
[grpc.master]
cert = ""
key = ""
allowed_commonNames = ""
[grpc.filer]
cert = ""
key = ""
allowed_commonNames = ""
[grpc.s3]
cert = ""
key = ""
allowed_commonNames = ""
[grpc.admin]
cert = ""
key = ""
allowed_commonNames = ""
[grpc.worker]
cert = ""
key = ""
allowed_commonNames = ""
[grpc.client]
cert = ""
key = ""
[https.client]
enabled = false
cert = ""
key = ""
ca = ""
insecure_skip_verify = false
[https.volume]
cert = ""
key = ""
ca = ""
[https.master]
cert = ""
key = ""
ca = ""
[https.filer]
cert = ""
key = ""
ca = ""
[https.admin]
cert = ""
key = ""
ca = ""
[admin]
user = ""
password = ""
[admin.readonly]
user = ""
password = ""
[s3.sse]
kek = ""
key = ""
[guard]
white_list = ""
@@ -1,8 +0,0 @@
[cluster]
default = "c1"
[cluster.c1]
master = "localhost:9333" # comma-separated master servers
[cluster.c2]
master = ""