| Краткое описание | Отображение журналов 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 discourse-hledger
- 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) или в чате (XMPP) по адресу raucao@kosmos.org


