diff --git a/README.md b/README.md index ae2a8d2..63f0e85 100644 --- a/README.md +++ b/README.md @@ -16,16 +16,14 @@ https://code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages ### Add The Package Repository -Install the registry signing key on each Alpine node: +Install the registry key: ```sh cd /etc/apk/keys curl -fsSLOJ https://code.factoring.digital/api/packages/public/alpine/key ``` -Keep the filename returned by Gitea. Alpine matches repository signatures by key filename, otherwise `apk update` reports `UNTRUSTED signature`. - -Add the stable package repository matching the Alpine branch on the node: +Add the repository for the node's Alpine branch: ```sh printf '%s\n' \ @@ -35,8 +33,7 @@ printf '%s\n' \ apk update ``` -If a forked or future registry is private, include a Gitea user and package token in the -repository URL: +Private registry URL format: ```text https://:@code.factoring.digital/api/packages/public/alpine/v3.24/alpine-packages @@ -59,8 +56,6 @@ seaweedfs SeaweedFS 4.31 release binary and OpenRC role splits greptimedb GreptimeDB 1.0.2 built from source for x86_64 ``` -Package-specific details are in the linked package READMEs above. - Local build output is written under: ```text @@ -100,17 +95,13 @@ gitea-workflow-build Run the Gitea build workflow locally through act as a pull ``` `apk:build` targets `x86_64` by default. Multi-arch builds target `x86_64` and -`aarch64`; override with `ALPINE_ARCHES` when needed: +`aarch64`: ```sh ALPINE_ARCHES="x86_64 aarch64" mise run apk:build-all ``` -Unqualified build and install-test tasks discover all packages. GreptimeDB is a -source build and can take close to an hour; it is limited to `x86_64` during -production evaluation. Target fast package work explicitly: - -Build or test a subset of packages with `ALPINE_PACKAGE` or `ALPINE_PACKAGES`: +Limit package selection with `ALPINE_PACKAGE` or `ALPINE_PACKAGES`: ```sh ALPINE_PACKAGE=seaweedfs mise run apk:build @@ -121,29 +112,27 @@ ALPINE_PACKAGE=greptimedb mise run apk:build ALPINE_PACKAGE=greptimedb SKIP_BUILD=1 mise run apk:test-install ``` -Docker-backed build tasks keep Cargo registry, Rustup, and Cargo target caches in named Docker volumes. The default volume scope is derived from the Git remote owner/repository and is split by package and architecture. Override it when needed: +Override Docker cache scope: ```sh ALPINE_APK_CACHE_SCOPE=public-alpine-packages ALPINE_PACKAGE=greptimedb mise run apk:build ALPINE_APK_CACHE_PREFIX=alpine-apk-ci ALPINE_PACKAGE=greptimedb mise run apk:build ``` -Use the test shell to inspect the package in Alpine with the current build -installed: +Open an Alpine test shell: ```sh ALPINE_PACKAGE=seaweedfs mise run apk:shell mise run apk:test-shell ``` -Use the install test to validate the production instructions against the local -package repository in a fresh Alpine container: +Run the install test: ```sh mise run apk:test-install ``` -Use `SKIP_BUILD=1` to reuse existing local packages: +Reuse existing local packages: ```sh SKIP_BUILD=1 mise run apk:test-install @@ -152,45 +141,35 @@ SKIP_BUILD=1 mise run apk:test-shell ### Adding Packages -Each package lives under: +Package path: ```text packaging/alpine/local// ``` -The only required file is `APKBUILD`. Package-specific helpers can be added as -hooks: +Optional package hooks: ```text packaging/alpine/local//scripts/test-install.sh packaging/alpine/local//scripts/update-generated-sources.sh ``` -Repo-level tasks discover all `packaging/alpine/local/*/APKBUILD` files. Hook -tasks skip packages that do not provide the requested hook. - -Start new packages from the blueprint: +Start from the blueprint: ```text packaging/alpine/blueprint/ ``` -For compiled software, declare build tools in `makedepends` and use normal -Alpine `build()`, `check()`, and `package()` functions in the package's -`APKBUILD`. - ### Generated Package Sources -Generated files should live next to the package's `APKBUILD` so -`abuild checksum` can track them as ordinary package sources. For SeaweedFS, -that includes: +Generated package sources live next to the package `APKBUILD`: ```text packaging/alpine/local/seaweedfs/example-*.toml packaging/alpine/local/seaweedfs/weed.bash-completion ``` -Refresh generated sources through package-local hooks: +Refresh generated sources: ```sh mise run apk:update-generated @@ -198,14 +177,10 @@ ALPINE_PACKAGE=seaweedfs mise run apk:update-generated mise run apk:checksum ``` -Run `apk:checksum` after changing any file listed in `source=`. - ### Gitea Workflow -The workflow at `.gitea/workflows/build.yml` builds against each stable Alpine -target in its matrix and publishes to the matching registry branch, currently -`v3.23` and `v3.24`, on push or tag. It skips publishing for pull request -events. +`.gitea/workflows/build.yml` builds and publishes `v3.23` and `v3.24`. +Pull requests build only. Repository variables: @@ -222,13 +197,13 @@ PACKAGE_USER= PACKAGE_TOKEN= ``` -Pre-check the workflow locally with `act`: +Check the workflow locally: ```sh mise run gitea-workflow-build ``` -Publish already-built local packages manually: +Publish local packages: ```sh INSTANCE_URL=https://code.factoring.digital \ diff --git a/packaging/alpine/local/greptimedb/README.md b/packaging/alpine/local/greptimedb/README.md index 3d4ae79..703bc54 100644 --- a/packaging/alpine/local/greptimedb/README.md +++ b/packaging/alpine/local/greptimedb/README.md @@ -1,8 +1,9 @@ # GreptimeDB Alpine Package -This package builds `greptime` from the upstream GreptimeDB source release and packages OpenRC service subpackages plus default `/etc/greptimedb` configuration. +Builds `greptime` from the upstream source release and packages OpenRC service +subpackages plus `/etc/greptimedb` defaults. -The APKBUILD builds the release directly: +Build command: ```sh cargo build --profile nightly --locked --bin greptime --features servers/dashboard @@ -10,9 +11,7 @@ cargo build --profile nightly --locked --bin greptime --features servers/dashboa ## Runtime Layout -The package installs the upstream `greptime` binary as `/usr/bin/greptime`. -OpenRC support is split into component subpackages that map to the documented -GreptimeDB commands: +Installs `/usr/bin/greptime` and component OpenRC packages: - `greptimedb-docs`: upstream configuration examples and reference files from `config/` @@ -22,23 +21,19 @@ GreptimeDB commands: - `greptimedb-flownode-openrc`: `greptime flownode start` - `greptimedb-frontend-openrc`: `greptime frontend start` -Default TOML files are installed in `/etc/greptimedb`. The standalone config -listens on the documented local ports: +Default TOML files are installed in `/etc/greptimedb`. Standalone ports: - `127.0.0.1:4000`: HTTP API and dashboard - `127.0.0.1:4001`: gRPC - `127.0.0.1:4002`: MySQL - `127.0.0.1:4003`: PostgreSQL -GreptimeDB binds to localhost by default. Edit the matching TOML file before -exposing a service on another interface. - -Install `greptimedb-docs` for the full upstream configuration reference and -example files under `/usr/share/doc/greptimedb/config`. +Configs bind to localhost by default. Upstream config examples are in +`/usr/share/doc/greptimedb/config`. ## OpenRC Usage -Install and start the standalone service: +Standalone: ```sh apk add greptimedb greptimedb-docs greptimedb-standalone-openrc @@ -46,7 +41,7 @@ rc-update add greptimedb.standalone default rc-service greptimedb.standalone start ``` -Install the distributed components when managing a small OpenRC deployment: +Distributed components: ```sh apk add \ @@ -57,8 +52,7 @@ apk add \ greptimedb-frontend-openrc ``` -The package starts each service with `-c /etc/greptimedb/.toml`. -Package wrapper settings live in `/etc/conf.d/greptimedb.`: +Wrapper settings in `/etc/conf.d/greptimedb.`: - `GREPTIMEDB_CONFIG`: config file path passed with `-c` - `GREPTIMEDB_LOG_DIR`: component log directory passed with `--log-dir` @@ -68,35 +62,27 @@ Package wrapper settings live in `/etc/conf.d/greptimedb.`: - `GREPTIMEDB_OPTS`: extra component arguments appended after package defaults - `GREPTIMEDB_GLOBAL_OPTS`: arguments inserted before the component command -GreptimeDB's own config environment variables are separate from these OpenRC -wrapper variables. The upstream docs use component prefixes such as -`GREPTIMEDB_STANDALONE`, `GREPTIMEDB_DATANODE`, `GREPTIMEDB_FRONTEND`, and -`GREPTIMEDB_METASRV` with double underscores for nested config keys. - -For production clusters, follow the upstream deployment guidance. GreptimeDB -recommends Kubernetes and the GreptimeDB Operator for production self-hosting. - ## Package Commands -Refresh the source checksum after changing `pkgver`: +Refresh checksums: ```sh ALPINE_PACKAGE=greptimedb mise run apk:checksum ``` -Build only this package: +Build: ```sh ALPINE_PACKAGE=greptimedb mise run apk:build ``` -Install-test an existing local build without recompiling: +Install-test local build: ```sh ALPINE_PACKAGE=greptimedb SKIP_BUILD=1 mise run apk:test-install ``` -Install-test from a published Gitea Alpine repository: +Install-test published repository: ```sh ALPINE_PACKAGE=greptimedb \ @@ -106,5 +92,4 @@ ALPINE_REPOSITORY_KEY_URL=https://code.factoring.digital/api/packages/public/alp mise run apk:test-install ``` -The full build can take close to an hour. Do not run it as part of lightweight -metadata or script checks. +Full builds take close to an hour. diff --git a/packaging/alpine/local/seaweedfs/README.md b/packaging/alpine/local/seaweedfs/README.md index 0a766ba..b2cde60 100644 --- a/packaging/alpine/local/seaweedfs/README.md +++ b/packaging/alpine/local/seaweedfs/README.md @@ -1,23 +1,24 @@ # SeaweedFS Alpine Package -This package repackages the official SeaweedFS 4.31 Linux release tarballs for `x86_64` and `aarch64`. It installs the `weed` binary, short active config defaults, generated examples, bash completion, and split OpenRC service packages. +Repackages official SeaweedFS 4.31 Linux release tarballs for `x86_64` and +`aarch64`. ## Package Commands -Refresh generated config examples and bash completion after changing the SeaweedFS version or generated source flow: +Refresh generated sources: ```sh ALPINE_PACKAGE=seaweedfs mise run apk:update-generated ALPINE_PACKAGE=seaweedfs mise run apk:checksum ``` -Build only this package: +Build: ```sh ALPINE_PACKAGE=seaweedfs mise run apk:build ``` -Install-test an existing local build without rebuilding: +Install-test local build: ```sh ALPINE_PACKAGE=seaweedfs SKIP_BUILD=1 mise run apk:test-install @@ -25,9 +26,7 @@ ALPINE_PACKAGE=seaweedfs SKIP_BUILD=1 mise run apk:test-install ## Install Node Roles -Install the base package plus only the OpenRC role packages needed on that node. - -For a single-node test or a compact small deployment: +Single-node install: ```sh apk add seaweedfs \ @@ -36,7 +35,7 @@ apk add seaweedfs \ seaweedfs-filer-openrc ``` -For separated production nodes, install only the role running there: +Role-specific installs: ```sh apk add seaweedfs seaweedfs-master-openrc @@ -57,7 +56,7 @@ seaweedfs-admin-openrc -> /etc/init.d/seaweedfs.admin seaweedfs-worker-openrc -> /etc/init.d/seaweedfs.worker ``` -The package name is `seaweedfs`, matching Alpine aports. If a node already has Alpine's old generic OpenRC package installed, remove it before installing a role-specific split: +Replace Alpine's old generic OpenRC package before installing a role split: ```sh apk del seaweedfs-openrc @@ -66,7 +65,7 @@ apk add seaweedfs seaweedfs-master-openrc ## Configure Services -Runtime files are installed in the usual Alpine locations: +Runtime paths: ```text /usr/bin/weed @@ -75,13 +74,14 @@ Runtime files are installed in the usual Alpine locations: /etc/init.d/seaweedfs.* ``` -Edit `/etc/conf.d/seaweedfs.` for command-line flags and `/etc/seaweedfs/*.toml` for SeaweedFS config. The packaged defaults are short and production-neutral; full upstream example configs are in: +Edit `/etc/conf.d/seaweedfs.` for flags and `/etc/seaweedfs/*.toml` for +SeaweedFS config. Upstream examples: ```text /usr/share/doc/seaweedfs/examples/ ``` -Enable and start only the services needed on the node: +Enable services: ```sh rc-update add seaweedfs.master default @@ -94,7 +94,7 @@ rc-update add seaweedfs.filer default rc-service seaweedfs.filer start ``` -Check the installed binary and service state: +Check status: ```sh weed version @@ -103,30 +103,28 @@ rc-service seaweedfs.master status ## Optional Packages -Install docs and generated examples: +Docs and examples: ```sh apk add seaweedfs-doc ``` -Install bash completion: +Bash completion: ```sh apk add bash-completion seaweedfs-bash-completion ``` -`seaweedfs-bash-completion` is also selected automatically when `seaweedfs` and `bash-completion` are installed together. - ## Upgrade Or Pin -Use normal Alpine package operations: +Upgrade: ```sh apk upgrade seaweedfs rc-service seaweedfs.master restart ``` -Pin a specific package build when needed: +Pin: ```sh apk add seaweedfs=4.31-r3