Bitcoin After Life — Manual

Docs-as-code source for the BAL documentation, built with MkDocs Material. Published at https://bitcoin-after.life/docs/.

Quick start

Windows: double-click serve.bat. Linux / macOS: run ./serve.sh.

Either one installs the dependencies and opens a live preview at http://127.0.0.1:8000, with working search and auto-reload on save.

Manually:

pip install mkdocs-material mkdocs-macros-plugin mkdocs-glightbox pyyaml
python3 tools/make_placeholders.py     # fill missing screenshots with placeholders
mkdocs serve                           # preview at http://127.0.0.1:8000
mkdocs build --strict                  # static site into site/

Opening the built HTML files directly from disk (file://) works for reading, but search will not run — browsers block the index fetch. Use the server.

Layout

docs/                 published pages (Markdown)
docs/img/             screenshots — filenames fixed by screenshots.yml
docs/stylesheets/     screenshot framing CSS
screenshots.yml       manifest of every image the manual expects
tools/                helper scripts
internal/             NOT published — drafts and working notes
.gitea/workflows/     CI: build + deploy on push to main

Versions in one place

Plugin and Electrum versions, and the WeList fee, are not hardcoded in the pages. They live in mkdocs.yml under extra.bal: and are referenced as {{ bal.plugin_version }}. Change the value once and every page updates on the next build.

Variable Meaning
plugin_version Latest plugin release
electrum_tested Electrum version that release was tested against
electrum_latest Latest stable Electrum the manual assumes
welist_fee_sats / welist_period_days WeList listing terms
last_reviewed Bump after a full editorial pass

A typo in a variable name fails the build (on_error_fail: true), so a broken reference can never reach the published site.

Brand assets

docs/assets/logo.svg and docs/assets/favicon.png are placeholders. See internal/brand-assets.md for the official sources and how to swap them in.

Updating the documentation

Text. Edit the .md files in docs/, commit, push. Pages have an edit link pointing back at Gitea, so small fixes can be made from the web editor.

Screenshots. Save the new image over docs/img/<name>.png using the filename in screenshots.yml. Nothing else to change. See internal/screenshot-checklist.md for capture rules and data-hygiene warnings.

Adding a page. Create the .md file under docs/, then add it to nav: in mkdocs.yml. mkdocs build --strict fails on broken internal links, so a typo in a cross-reference is caught before deploy.

Italian translation

The configuration is prepared but not enabled. To turn it on:

pip install mkdocs-static-i18n

then uncomment the plugins: block in mkdocs.yml and add page.it.md files next to the English ones. Untranslated pages fall back to English automatically, so you can translate progressively.

Deployment

.gitea/workflows/deploy.yml builds and publishes to /var/www/bal-docs/ on every push to main. It requires Gitea Actions enabled and a registered runner labelled docs-runner. Until that is set up, deploy manually:

mkdocs build
rsync -a --delete site/ /var/www/bal-docs/

Status

Based on the website, the WeList, the Gitea repositories and the BAL MANUAL revB PDF (July 2026). Open questions and points needing developer validation are tracked in internal/source-notes.md.

Description
No description provided
Readme 2.6 MiB
Languages
Python 100%