Build it yourself¶
Local build and tests¶
git clone https://github.com/blunan/meta-trade-browser.git
cd meta-trade-browser
docker build -t meta-trade-browser:dev .
tests/access.sh
docker build --build-arg STRIP_WINE_DEBUG=falsekeeps Wine's debug information, for crash backtraces with function names; the image grows by about 1 GB.tests/access.shchecks the access layer: logins, refusals, origins, headers, certificates, listening ports. It needs no internet and leaves nothing behind.--hostadds the host-networking test, which binds127.0.0.1:3911on the machine.-
tests/compose.dev.yamlruns a local build with the example's settings, with its own container name, port (3201), folders and password, next to a real deployment:docker compose -f compose.yaml -f tests/compose.dev.yaml build docker compose -f compose.yaml -f tests/compose.dev.yaml up -d
In CI¶
.github/workflows/image.yml runs the same checks on every pull request and on main:
shellcheckon every script;- the build, then
tests/access.sh --host; - Trivy, which fails on any fixable HIGH or CRITICAL finding. Its exceptions, each with its reason, are in
.trivyignore.yaml.
On main it then pushes the image it tested, signs it, and tags it (see Verify the image). It runs on no schedule and can't be run by hand: the image changes only when a pull request is merged. Renovate proposes updates to the base image, the pinned actions and the tools as pull requests, and none merges by itself.
This guide¶
The guide is built with Material for MkDocs from docs/ and mkdocs.yml. docs/requirements.txt pins every package with its hash; it's generated from docs/requirements.in with pip-compile --generate-hashes, by hand, with the command in that file (Renovate leaves both files alone). To preview it:
python3 -m venv .venv
.venv/bin/pip install --require-hashes -r docs/requirements.txt
.venv/bin/mkdocs serve
Then browse to http://127.0.0.1:8000. mkdocs build --strict fails on a broken link, as the repository's workflow does.