Версия: v0.1 (25.10.2025)
Статус: ✅ Готов к продакшену
Оптимизация: Для серверов с 2GB RAM
# Клонирование
git clone https://github.com/audiogenius/expense-tracker.git
cd expense-tracker
# Настройка
cp env.example .env
# Отредактируйте .env файл
# Запуск
docker-compose up --build -dСм. HOSTING_SETUP.md - полная инструкция по развертыванию на хостинге.
- Запись расходов:
100,100 продукты - Команды:
/total,/debts,/help - Автоопределение категорий
- Умные подсказки
- Графики: Line chart (расходы по дням), Pie chart (по категориям)
- Фильтры: По периодам и категориям
- Автодополнение: Умные подсказки категорий
- Виртуализация: Быстрая работа с большими списками
- Telegram Login: Вход через Telegram
- Ollama интеграция: Локальная AI для анализа расходов
- Автоматические уведомления: Telegram с аналитикой
- Fallback: Правило-основанная аналитика при недоступности AI
- Keyset pagination: Быстрая загрузка больших списков
- In-memory кэш: 5-минутный кэш для частых запросов
- Виртуализация: Рендеринг только видимых элементов
- Мемоизация: Оптимизированные компоненты React
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Telegram Bot │ │ Web Frontend │ │ Analytics │
│ │ │ │ │ │
│ - Команды │ │ - React SPA │ │ - Ollama AI │
│ - Запись │ │ - Charts.js │ │ - Уведомления │
│ - Уведомления │ │ - Виртуализация │ │ - Fallback │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ API Service │
│ │
│ - REST API │
│ - JWT Auth │
│ - Кэширование │
│ - Подсказки │
└─────────────────┘
│
┌─────────────────┐
│ PostgreSQL │
│ │
│ - Оптимизированные индексы
│ - pg_trgm поиск
│ - Constraints
└─────────────────┘
- Go - API сервис
- PostgreSQL - База данных с оптимизированными индексами
- Docker - Контейнеризация
- JWT - Авторизация
- React + TypeScript - SPA приложение
- Chart.js - Графики и диаграммы
- react-window - Виртуализация списков
- Vite - Сборка
- Ollama - Локальная LLM (qwen2.5:0.5b)
- Go - Analytics сервис
- Telegram Bot API - Уведомления
- Docker Compose - Оркестрация
- Nginx - Reverse proxy
- SSL/TLS - Безопасность
- Health checks - Мониторинг
expense-tracker/
├── api-service/ # Go API сервис
│ ├── cmd/api/ # Точка входа
│ ├── internal/ # Внутренние пакеты
│ │ ├── auth/ # JWT авторизация
│ │ ├── handlers/ # HTTP обработчики
│ │ └── cache/ # In-memory кэш
│ └── Dockerfile
├── bot-service/ # Telegram бот
│ ├── cmd/ # Точка входа
│ └── Dockerfile
├── frontend-service/ # React приложение
│ ├── src/
│ │ ├── components/ # React компоненты
│ │ │ ├── Suggestions/ # Автодополнение
│ │ │ ├── Transactions/ # Виртуализированные списки
│ │ │ └── Charts/ # Мемоизированные графики
│ │ ├── utils/ # Утилиты (кэш, API)
│ │ └── styles/ # CSS модули
│ └── Dockerfile
├── analytics-service/ # AI аналитика
│ ├── internal/
│ │ ├── ollama/ # Ollama клиент
│ │ ├── handlers/ # HTTP обработчики
│ │ └── scheduler/ # Планировщик задач
│ └── Dockerfile
├── db/ # База данных
│ ├── init.sql # Схема БД
│ └── migrations/ # Миграции
├── deploy/ # Скрипты развертывания
│ ├── timeweb-setup.sh
│ ├── docker-compose.timeweb.yml
│ └── init-ollama-timeweb.sh
├── docs/ # Документация
│ └── updates/ # История обновлений
├── docker-compose.yml # Основная конфигурация
├── docker-compose.prod.yml # Продакшен конфигурация
└── env.example # Пример переменных окружения
# База данных
POSTGRES_USER=expense_user
POSTGRES_PASSWORD=your_strong_password
POSTGRES_DB=expense_tracker
# Telegram бот
TELEGRAM_BOT_TOKEN=your_bot_token_from_botfather
TELEGRAM_WHITELIST=your_telegram_id
# API ключи
BOT_API_KEY=random_secure_key
JWT_SECRET=another_random_secure_key
# Ollama (для аналитики)
OLLAMA_URL=http://ollama:11434
OLLAMA_MODEL=qwen2.5:0.5b
OLLAMA_NUM_PARALLEL=1
OLLAMA_MAX_LOADED_MODELS=1- Создание бота: @BotFather →
/newbot - Получение ID: @userinfobot →
/start
# Клонирование
git clone https://github.com/audiogenius/expense-tracker.git
cd expense-tracker
# Настройка
cp env.example .env
# Отредактируйте .env
# Запуск
docker-compose up --build -d# Подключение к серверу
ssh root@147.45.246.210
# Установка (автоматический скрипт)
curl -sSL https://raw.githubusercontent.com/audiogenius/expense-tracker/main/deploy/timeweb-setup.sh | bash
# Или ручная установка
git clone https://github.com/audiogenius/expense-tracker.git
cd expense-tracker
cp deploy/docker-compose.timeweb.yml docker-compose.yml
# Настройте .env и запуститеПодробная инструкция: HOSTING_SETUP.md
# API
curl http://localhost:8080/api/health
# Analytics
curl http://localhost:8081/health
# Ollama
curl http://localhost:11434/api/tags# Все сервисы
docker-compose logs -f
# Конкретный сервис
docker-compose logs -f api
docker-compose logs -f bot
docker-compose logs -f analytics# Использование памяти
free -h
# Docker статистика
docker stats
# Диск
df -h- ✅ Система умных подсказок
- ✅ Оптимизация для 2GB RAM
- ✅ Ollama интеграция
- ✅ Виртуализация и кэширование
- v0.1 - 25.10.2025 - Первая оптимизированная версия
# Перезапуск тяжелых сервисов
docker-compose restart ollama analytics# Проверка логов
docker-compose logs -f bot
# Перезапуск
docker-compose restart bot# Очистка кэша
docker-compose restart api
# Проверка индексов БД
docker-compose exec db psql -U expense_user -d expense_tracker -c "\di"- GitHub Issues: https://github.com/audiogenius/expense-tracker/issues
- Документация: docs/
- Обновления: docs/updates/
MIT License - см. LICENSE
Expense Tracker v0.1 - Умный трекер расходов с AI аналитикой! 🚀