Hledger 플러그인 - 주제에서 평문 회계 장부를 렌더링

:information_source: 요약 hledger 저널을 토픽의 첫 번째 게시물에서 실시간 대시보드로 렌더링합니다.
:hammer_and_wrench: 저장소 gitea.kosmos.org/raucao/discourse-hledger
:open_book: 설치 가이드 README

기능

토픽의 첫 번째 게시물에 hledger 코드 블록으로 hledger 저널을 넣으면, 서버의 hledger 실행 파일이 요청 시점에 생성하는 5가지 보고서로 구성된 대시보드로 대체됩니다:

  • :clipboard: 계좌(Accounts) — 모든 상위 계좌가 확장된 전체 잔고 트리.

  • :balance_scale: 재무 상태표(Balance sheet) — 자산, 부채, 자본을 섹션별로 묶어 표시.

  • :chart_increasing: 손익계산서(P&L) — 수익과 비용.

  • :busts_in_silhouette: 자본(Equity) — 상품별로 분류된 출자 자본 분포.

  • :receipt: 저널(Journal) — 각 회계 처리가 포함된 거래 로그.

  • 보고서는 시작일/종료일 범위로 필터링할 수 있으며, 종료일은 포함됩니다.

  • @username 형식으로 작성된 계좌 세그먼트(예: equity:@alice)는 일반적인 프로필 카드가 포함된 Discourse 멘션 링크로 변환됩니다. 기존에 존재하는 사용자만 링크됩니다.

  • 보고서는 요청 시점에 생성되며 게시물 수정 버전별로 캐시되므로, 저널을 수정하면 보고서가 새로고침됩니다.

예시 블록

```hledger
2024-01-01 Opening balances
    assets:bank:checking       1000.00 EUR
    equity:alice               -600.00 EUR
    equity:bob                 -400.00 EUR
```

스크린샷

요구 사항

  • 서버에 설치된 hledger 실행 파일 (hledger 1.32.3에서 테스트됨).
  • Discourse 2.7.0 이상.

표준 Docker 설치 환경에서는 플러그인과 hledger 패키지를 app.yml을 통해 설치하고 다시 빌드해야 합니다:

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

설정

  1. Admin > Settings > Plugins에서 플러그인을 활성화합니다 (hledger enabled).
  2. 토픽의 첫 번째 게시물에 hledger 저널을 추가합니다.
  3. 실행 파일이 기본 PATH에 없다면 hledger path를 선택적으로 설정합니다.

설정 항목

이름 설명
hledger enabled 플러그인 활성화.
hledger path hledger 실행 파일 경로 (기본값 hledger).
hledger max journal bytes 허용되는 저널의 최대 크기 (바이트 단위, 기본값 262144).
hledger max journal lines 저널의 최대 라인 수 (기본값 5000).
hledger timeout seconds 각 hledger 호출에 대한 실제 시간 제한 (기본값 10).
hledger max output bytes 캡처된 hledger 출력의 상한선 (기본값 1048576).
hledger memory limit mb hledger 프로세스의 메모리 상한선; 0이면 비활성화 (기본값 256).
hledger global rate limit per minute 모든 사용자를 통틀어 보고서 생성 횟수 상한선; 0이면 비활성화 (기본값 120).

보안

저널은 신뢰할 수 없는 입력으로 간주됩니다. 이 플러그인은 hledger를 특권이 없는 서브프로세스로 실행하며, 정리된 환경, 사설 작업 디렉터리, 강제 타임아웃, CPU/파일 크기/메모리 제한 및 출력 상한선을 적용하고, include 지시문을 거부합니다. 보고서는 뷰어가 볼 수 있는 토픽에 대해서만 반환되며, 요청은 IP당(분당 30회) 및 전역적으로 속도 제한됩니다.

호환성 및 라이선스

  • MIT 라이선스
  • 피드백, 버그 보고서 및 번역은 이 토픽 또는 이메일, 소셜 미디어(ActivityPub), 채팅(XMPP)을 통해 raucao@kosmos.org로 환영합니다.
2개의 좋아요