| Краткое описание | Отображение журналов hledger в виде живой панели управления в первом сообщении темы. | |
| Репозиторий | gitea.kosmos.org/raucao/discourse-hledger | |
| Гид по установке | README |
Возможности
Разместите журнал hledger в блоке кода hledger с ограничителями в первом сообщении темы, и он будет заменен панелью управления с пятью отчетами, которые генерируются по запросу с помощью исполняемого файла hledger на сервере:
-
Счета — полное дерево балансов, все родительские счета развернуты. -
Баланс — активы, обязательства и капитал, сгруппированные по разделам. -
P&L — доходы и расходы. -
Капитал — распределение вложенного капитала по каждому типу актива. -
Журнал — лог транзакций с каждой записью. -
Отчеты можно фильтровать по диапазону дат «С»/«По»; конечная дата включается в расчет.
-
Сегменты счетов, записанные в формате
@username(например,equity:@alice), превращаются в ссылки-упоминания Discourse с обычным профилем; ссылки создаются только для существующих пользователей. -
Отчеты генерируются по запросу и кэшируются для каждой редакции поста, поэтому редактирование журнала обновляет их.
Пример блока
```hledger
2024-01-01 Начальные балансы
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
- exec:
cd: $home
cmd:
- apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get install -y hledger
Конфигурация
- Включите плагин в
Администрирование > Настройки > Плагины(hledger enabled). - Добавьте журнал hledger в первое сообщение темы.
- При необходимости установите
hledger path, если исполняемый файл не находится в стандартном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/Nostr) или в чате (XMPP) на raucao@kosmos.org


