v1.0.0
[v1.0.0]
Первый стабильный релиз self-hosted приложения для личного учёта финансов.
Добавлено
Установка и инфраструктура
- Три способа установки: сборка из исходников (
make build), Docker (GHCR), бинарники GitHub Releases (Linux, Windows, macOS; amd64 и arm64) - Первый запуск через
/setup: администратор, пароль с подтверждением, опциональная регистрация - Автоматические миграции SQLite (goose) при старте; схема
001…019(одна таблица — один файл) - Синхронизация версии приложения в БД (
app_version/previous_app_version) при обновлении бинарника - Переменные окружения (
BUHGALTER_ADDR,BUHGALTER_DATA_DIR,BUHGALTER_LOCALES_DIR, …) - Пример nginx reverse proxy + HTTPS; поле внешний URL в админке для работы за прокси
- CI/CD: тесты, линтеры, сборка Docker-образа при git tag; GoReleaser для релизов
Пользователи и безопасность
- Регистрация (если разрешена), сессии в cookie (10 дней неактивности)
- API-токены (Bearer),
GET /auth/verify - Правила сложности пароля при setup, смене пароля и создании пользователя
- Изоляция данных по
user_id; админ-панель: пользователи, системные настройки, бэкапы, восстановление, диагностика - Секретный ключ шифрования токенов уведомлений (set-only в админке)
- Audit log в
logs/audit/YYYY-MM-DD.jsonl
Финансовый учёт
- Счета: банковские (справочник банков РФ) и наличные, архивация, основной счёт (★)
- Категории и подкатегории доходов/расходов с иконками, drag-order, главная категория на тип
- Операции: расход, доход, переводы; плановые операции (
future) с активацией по дате - Двойной баланс на главной: текущий и прогноз с учётом будущих операций за месяц
- Долги: единый список должников, погашение, виджет на главной, уведомления по срокам
- Кредиты: график платежей, автосписание в полночь по timezone пользователя, досрочные платежи, закрытие и удаление
Импорт, экспорт, аналитика
- Импорт CSV/XLSX с маппингом колонок (preset Cubux)
- Экспорт операций в CSV
- Статистика по типам, категориям и периодам; поиск по операциям и комментариям
- Контекстная сводка на страницах со списками операций
Уведомления
- Telegram и MAX (official API
platform-api2.max.ru); настраиваемые шаблоны и время отправки - Уведомления по долгам («я должен» / «мне должны») с учётом timezone
Интерфейс
- SvelteKit UI: светлая и тёмная тема, русский и английский (svelte-i18n)
- Настройки: профиль, пароль, счета, категории, импорт, уведомления, API-токены
- Адаптивная вёрстка, PWA (manifest, service worker, иконки)
- Toast-уведомления, пустые состояния, единые диалоги (без
window.confirm)
API и документация
- REST API
/api/v1/…с полным OpenAPI (описания на русском) - Интерактивная документация: Redoc на
/docs - Документация в
docs/: установка, модель данных, UI-гайды, импорт Cubux
База данных
- Все изменения в базе данных - через миграции
Локализация
- Локали сервера вынесены из бинарника (
server/locales/, volume в Docker)
Техническое
- Стек: Go 1.26+, SQLite, SvelteKit, встроенный статический фронтенд (
embedstatic) - Команда
make version vX.Y.Z— единая простановка semver во всех артефактах (VERSION, OpenAPI, Dockerfile, …)
Коммиты
Changelog
- 0bc2ef8 Release v1.0.0: первый стабильный релиз.
Docker
Вложения docker-compose.yaml и .env — тот же compose из репозитория; .env задаёт BUHGALTER_IMAGE_TAG=1.0.0.
docker pull ghcr.io/kai-zer-ru/buhgalter:1.0.0
docker compose -f docker-compose.yaml up -dИли без compose:
docker run -d --name buhgalter \
-p 8765:8765 \
-v buhgalter-data:/app/data \
-v buhgalter-backups:/app/backups \
--restart unless-stopped \
ghcr.io/kai-zer-ru/buhgalter:1.0.0