Files
vps-tracker/AGENTS.md
T
2026-03-21 00:52:49 +07:00

63 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# VPS Tracker — Руководство для ИИ
## Описание проекта
VPS Tracker — приложение для учёта виртуальных серверов (VPS), провайдеров, аккаунтов, платежей и балансов. Поддерживает синхронизацию с BILLmanager 6 API.
## Структура проекта
```
vps-tracker/
├── server/ # Express backend
│ ├── index.js # Точка входа, подключение роутов
│ ├── db/ # База данных (SQLite via sql.js)
│ │ ├── schema.js # CREATE TABLE
│ │ ├── migrations.js # Миграции схемы
│ │ ├── seed.js # Начальные данные из public/data
│ │ └── index.js # initDb, getDb, saveDb
│ ├── adapters/ # Интеграции с внешними API
│ │ └── billmanager/ # BILLmanager 6 API
│ │ ├── client.js # HTTP-запросы
│ │ ├── parsers.js # Парсинг ответов API
│ │ ├── mappers.js # Маппинг в модель vps-tracker
│ │ ├── operations.js # fetchVds, fetchPayments и т.д.
│ │ ├── sync.js # syncFromBillmanager
│ │ └── index.js # Barrel export
│ ├── routes/ # Express роутеры
│ ├── utils/ # row-mappers и др.
│ └── sync-scheduler.js # Планировщик синка
├── src/ # React frontend (Vite)
│ ├── pages/ # Страницы приложения
│ ├── components/ # UI-компоненты
│ └── lib/ # api.js, utils.js
└── public/data/ # JSON для seed (providers, vps, payments...)
```
## Основные сущности
| Сущность | Описание |
|----------|----------|
| **providers** | Хостинг-провайдеры; для BILLmanager: **apiType**, **apiBaseUrl** (один URL на хостера) |
| **provider_accounts** | Аккаунты у провайдера; **apiCredentials** (логин:пароль API) для синка с BILLmanager |
| **vps** | Виртуальные серверы (ip, ram, disk, tariffType, paidUntil) |
| **payments** | Платежи (пополнение баланса, оплата VPS) |
| **balance_ledger** | Движения по балансу |
| **active_tariffs** | Тарифы, загруженные из BILLmanager vds.order |
| **settings** | Настройки приложения (baseCurrency, ratesUrl, syncEnabled) |
## Где искать код по доменам
- **Sync (BILLmanager)** — `server/adapters/billmanager/`, `server/routes/sync.js`, `server/sync-scheduler.js`
- **Тарифы** — `server/adapters/billmanager/operations.js` (fetchVdsOrderPricelist), `server/adapters/billmanager/sync.js`
- **VPS CRUD** — `server/routes/vps.js`
- **Платежи/баланс** — `server/routes/payments.js`, `server/routes/balance-ledger.js`
- **Курсы валют** — `src/lib/utils.js` (convertCurrency, formatInBaseCurrency), настройки в settings.ratesUrl
## BILLmanager API
- [Guide to ISPsystem API](https://www.ispsystem.com/docs/b6c/developer-section/working-with-api/guide-to-ispsystem-software-api)
- [VDS API](https://www.ispsystem.com/docs/b6c/developer-section/billmanager-api/virtual-private-servers-vds)
- [Payments API](https://www.ispsystem.com/docs/b6c/developer-section/billmanager-api/payments-payment)
Формат запроса: `?authinfo=user:pass&out=bjson&func=vds|payment|dashboard.info|vds.order`