d5f2784b60b1f7217ca1292b565183e5b92a0dc0
Keeping both halves in one step: a bubblewrap runtime alone would only prove that sandboxed builds work somewhere, and web access alone would mean builds running unsandboxed on the webspace. Neither ships value on its own, so step 17 now covers the whole deployment. The web half needs no code: Hostsharing provides Apache plus Let's Encrypt and documents the reverse proxy to a self-hosted service, so the managed nginx container of ADR 0005 is not used there. What it needs is the booked "eigener Serverdienst" option with an assigned localhost port, a systemd user unit (which `init --systemd` already generates), and a `.htaccess` with a `[proxy]` RewriteRule — with sources from Hostsharing's own wiki and feature pages. GitTally fits as is, because it builds external links from `server.publicBaseUrl` rather than from the request, so no forward-headers handling is required. Two points are explicitly marked unverified in the step file: the effective AllowOverride value and whether an unassigned port would bind. Also ticks steps 15 and 16 in the plan index — both carry a Result section and are long done. Co-Authored-By: Claude <noreply@anthropic.com>
GitTally
Lightweight, declarative and highly opinionated software build system (CI/CD).
Documentation
- docs/configuration.md — configuration reference
- docs/bootstrapping.md — initializing a repository with
init - docs/deployment.md — running GitTally as a systemd service behind a reverse proxy
- docs/migration-from-legacy.md — migrating from the legacy bash script
Legacy Script
legacy/gitTally (bash) is deprecated and kept only as a behavioral reference for the rewrite.
Do not use it for new installations; see docs/migration-from-legacy.md.
Developer Setup
Source .envrc to add tools/ to your PATH, or install direnv to have this done automatically on cd:
source .envrc
Common tasks:
./gradlew build # compile and run all checks
./gradlew test # run tests
./gradlew ktlintFormat # auto-format Kotlin sources
./gradlew ktlintCheck # check formatting (also runs as part of build)
adr-status # show all architecture decisions at a glance
direnv
direnv sources .envrc automatically whenever you enter the repository and unloads it when you leave.
# Ubuntu
sudo apt install direnv
# add to ~/.bashrc or ~/.zshrc
eval "$(direnv hook bash)" # or: eval "$(direnv hook zsh)"
Trust the project's .envrc once per clone:
direnv allow
Tools (tools/)
| Command | Description |
|---|---|
adr-status |
List all Architecture Decision Records with their status and decision summary |
Architecture Decision Records
Major technical decisions are documented as ADRs in docs/adrs/.
adr-status # show all decisions at a glance
New ADRs follow the template at docs/adrs/0000-00-00.adr-template.md.
Languages
Kotlin
87%
HTML
4.6%
Shell
4.2%
JavaScript
3%
CSS
1.2%