Bouw mee aan Huismus
Huismus is open source. Code, vertalingen, testen en goede ideeën zijn welkom. Je hoeft geen boekhouder te zijn: de regels voor geld en facturen staan in de code en in de tests.
Waarmee het gemaakt is
- Django en SQLite: één proces en één databasebestand. Een back-up is een kopie van een map.
- HTMX en gewone CSS: schermen komen van de server. Geen JS-framework en geen build-stap; elk formulier werkt ook zonder JavaScript.
- WeasyPrint voor de pdf's.
- pywebview en PyInstaller voor de app op Mac en Windows, Docker voor een server of Raspberry Pi.
- pytest en Playwright: de browsertests draaien in Chromium, WebKit en Firefox.
Waar je mee kunt helpen
- Testen op Windows: Huismus wordt op een Mac gemaakt. Elke melding van iets wat op Windows raar doet, helpt.
- Vertalingen: Nederlands is de brontaal. Loop de Engelse teksten na, of voeg een taal toe.
- Bugs en wensen: open een issue. Kom je van Moneybird en gaat er iets mis bij het importeren, beschrijf het dan zonder echte gegevens.
- Code: kies een issue, of begin bij iets kleins. Voor iets groters bespreek je eerst de aanpak in een issue.
Zo begin je
Je hebt Python 3.12 of nieuwer nodig, uv en Pango voor de pdf's (op een Mac: brew install pango).
git clone https://github.com/codebyarne/huismus.git
cd huismus
uv sync
./scripts/demo-server.sh # Huismus met negen jaar nepdata
./scripts/verify.sh # alle checks in één commando
./scripts/verify.sh is de poort: een wijziging is klaar als die groen is. Hoe de code in elkaar zit, staat in docs/architectuur.md, het ontwerp in SPEC.md.
Werk je met een AI-assistent, zoals Claude Code? De afspraken voor het project staan in CLAUDE.md, en ook dan keurt ./scripts/verify.sh elke wijziging.
De regels van het huis
Een paar regels zijn hard, omdat het om iemands administratie gaat. De tests en de database bewaken ze.
- Geld in centen: bedragen zijn hele getallen, nooit een float.
- Uitgegeven is vast: een uitgegeven factuur verandert niet meer. Corrigeren doe je met een creditnota.
- Nummers zonder gaten: een nummer krijgt een factuur pas bij het uitgeven.
- Eén functie voor totalen: het scherm, de pdf en de import rekenen op dezelfde manier.
- Geen echte gegevens: nooit een echte factuur, IBAN of export in de repo, een test of een issue.
Ondertekening
Gratis ondertekening van de Windows-versie door SignPath.io, certificaat van SignPath Foundation.
- Gebouwd uit deze broncode: elke versie wordt in GitHub Actions gebouwd uit de code op GitHub. Pas daarna wordt hij ondertekend.
- Auteurs en reviewers: iedereen die meebouwt. Elke wijziging komt binnen via een pull request.
- Goedkeuring: de beheerder van de repository, codebyarne, keurt elke ondertekening met de hand goed.
- Privacy: Huismus stuurt niets naar andere systemen, tenzij jij erom vraagt. De enige uitzondering: eens per dag kijkt het of er een nieuwe versie is. Dat zet je uit bij Instellingen → Updates.
Afspraken
- Eén onderwerp per commit, met een conventioneel commitbericht (
feat(...),fix(...)). - Tests eerst voor alles wat met totalen, nummers of creditnota's te maken heeft.
- Teksten via gettext, in het Nederlands en het Engels.
- Een DCO in plaats van een CLA: onderteken je commits met
git commit -s. De licentie is AGPL-3.0-or-later.