Hledger-Plugin – Klartext-Buchführungstagebücher in Themen anzeigen

:information_source: Zusammenfassung Rendert hledger-Buchungen als Live-Dashboard im ersten Beitrag eines Themas.
:hammer_and_wrench: Repository gitea.kosmos.org/raucao/discourse-hledger
:open_book: Installationsanleitung README

Funktionen

Füge ein hledger-Journal in einen eingefassten hledger-Codeblock im ersten Beitrag eines Themas ein, und es wird durch ein Dashboard mit fünf Berichten ersetzt, die bei Bedarf vom hledger-Executables des Servers generiert werden:

  • :clipboard: Konten — der vollständige Kontenspiegel, alle übergeordneten Konten aufgefaltet.

  • :balance_scale: Bilanz — Aktiva, Passiva und Eigenkapital, gruppiert in Abschnitte.

  • :chart_increasing: GuV — Erträge und Aufwendungen.

  • :busts_in_silhouette: Eigenkapital — eine Verteilung des eingebrachten Kapitals nach Währung.

  • :receipt: Journal — ein Transaktionsprotokoll mit jedem Buchungssatz.

  • Berichte können über einen Von/Bis-Datumsbereich gefiltert werden; das Enddatum ist inklusive.

  • Kontensegmente, die als @username geschrieben werden (zum Beispiel equity:@alice), werden zu Discourse-Erwähnungslinks mit der üblichen Profilkarte; nur bestehende Benutzer werden verlinkt.

  • Berichte werden bei Bedarf generiert und pro Beitragsrevision zwischengespeichert, sodass die Bearbeitung des Journals sie aktualisiert.

Beispielblock

```hledger
2024-01-01 Anfangsbestände
    assets:bank:checking       1000.00 EUR
    equity:alice               -600.00 EUR
    equity:bob                 -400.00 EUR
```

Screenshots

Voraussetzungen

  • Das hledger-Executable auf dem Server (getestet mit hledger 1.32.3).
  • Discourse 2.7.0 oder neuer.

Bei der Standard-Docker-Installation das Plugin und das hledger-Paket über deine app.yml installieren und neu aufbauen:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://gitea.kosmos.org/raucao/discourse-hledger.git discourse-hledger
    - exec:
        cd: $home
        cmd:
          - apt-get update
          - DEBIAN_FRONTEND=noninteractive apt-get install -y hledger

Konfiguration

  1. Das Plugin in Admin > Einstellungen > Plugins aktivieren (hledger enabled).
  2. Ein hledger-Journal in den ersten Beitrag eines Themas einfügen.
  3. Optional hledger path setzen, falls das Executable nicht im standardmäßigen PATH liegt.

Einstellungen

Name Beschreibung
hledger enabled Das Plugin aktivieren.
hledger path Pfad zum hledger-Executable (Standard: hledger).
hledger max journal bytes Maximale Größe eines akzeptierten Journals in Bytes (Standard: 262144).
hledger max journal lines Maximale Anzahl an Zeilen in einem Journal (Standard: 5000).
hledger timeout seconds Zeitlimit für jeden hledger-Aufruf in Sekunden (Standard: 10).
hledger max output bytes Obergrenze für den erfassten hledger-Ausgabestrom in Bytes (Standard: 1048576).
hledger memory limit mb Speichergrenze für den hledger-Prozess; 0 deaktiviert sie (Standard: 256).
hledger global rate limit per minute Obergrenze für die Berichtsgenerierung über alle Benutzer hinweg; 0 deaktiviert sie (Standard: 120).

Sicherheit

Journale sind nicht vertrauenswürdige Eingaben. Das Plugin führt hledger als nicht privilegierten Subprozess mit einer bereinigten Umgebung, einem privaten Arbeitsverzeichnis, einem harten Timeout, CPU-/Dateigrößen-/Speichergrenzen und einer Ausgabegrenze aus und lehnt include-Direktiven ab. Berichte werden nur für Themen zurückgegeben, die der Betrachter sehen kann, und Anfragen werden pro IP (30/min) und global drosselt.

Kompatibilität und Lizenz

  • MIT-Lizenz
  • Feedback, Fehlerberichte und Übersetzungen sind in diesem Thema oder per E-Mail, Social Media (ActivityPub) oder Chat (XMPP) an raucao@kosmos.org willkommen
2 „Gefällt mir“