- PVSM.RU - https://www.pvsm.ru -
В какой‑то момент у меня накопилось несколько у разных провайдеров. Не десятки, но уже достаточно, чтобы каждый месяц ловить себя на одной и той же мысли: «А этот сервер когда оплачивать?»
Ссылка на биллинг — где‑то в закладках. Дата продления — в Telegram. Пароль от кабинета — в другом месте. Таблицы, заметки, все разбросано. Пока серверов немного, это ещё работает. Когда их перевалило за 15, начинаешь постоянно все терять. Кто
Так появилась идея: сделать личный кабинет для своих серверов.
Панель не проводит платежи и не хранит банковские карты. Она напоминает о сроках, держит ссылки на оплату, показывает статус серверов — «в порядке», «скоро», «срочно», «просрочено» — и при желании подтягивает данные из API провайдера. Только на чтение.
Репозиторий:
https://github.com/AlekseyRusaleev/Server‑billing [2]
Релиз v1.0.0:
https://github.com/AlekseyRusaleev/Server‑billing/releases/tag/v1.0.0 [3]
Лицензия: MIT. Проект open source.
Я не хотел делать простыню из 40 пунктов, поэтому опишу главное.
Основная идея — один экран, на котором видно всё важное: серверы, ближайшие оплаты и фильтры.
У каждого сервера есть IP, логин, зашифрованный пароль, дата следующего платежа, кнопка перехода к оплате и кнопка «отметить оплачено». При отметке оплаты дата переносится вперёд, а действие записывается в историю.
Несколько
Напоминания настраиваются за 7, 3, 1, 0 и −1 день до оплаты. Также есть сводки после автосинхронизации и backup базы.
Backup отправляется не сырым SQLite‑файлом, а зашифрованным.db.enc.
Для Telegram‑бота сделал мастер настройки прямо в панели: token → «найти мой чат» → тестовое сообщение. Вручную копировать chat ID необязательно.
Есть три режима работы:
1. Полностью ручной режим — подходит для любого хостера без API.
2. BILLmanager‑совместимый API.
3. Web API по ключу.
Синхронизация ничего не оплачивает и не меняет у провайдера. Она только подтягивает данные: даты, IP, суммы и статусы.
Если какие‑то поля были исправлены вручную, для сервера можно включить флаг «не перезаписывать при автосинхронизации».
Из того, чем я реально пользуюсь или что добавлял под запросы:
· календарь оплат;
· аналитика по месяцам;
· валюты RUB / USD / EUR / USDT;
· мониторинг SSL;
· веб‑SSH из браузера;
· каталог хостеров с фильтрами.
Веб‑SSH есть, но по умолчанию выключен.
Каталог хостеров — скорее витрина и набор шаблонов, чем мой личный список.
На чистом Linux
curl ‑fsSL https://raw.githubusercontent.com/AlekseyRusaleev/Server‑billing/main/scripts/install.sh [4] | bash
Install‑скрипт спрашивает домен. Если домена нет, можно использовать адрес через sslip.io [5]: получится что‑то вроде https://ВАШ_IP.sslip.io [6]. TLS поднимается через Caddy.
Также скрипт попросит:
· логин администратора;
· пароль администратора;
· отдельный пароль разблокировки ключей шифрования.
Последний пароль — это не пароль от панели. Он нужен для расшифровки секретов в базе. Минимальная длина — 12 символов. Его важно сохранить: без него расшифровать данные не получится.
Стек проекта:
· Python 3.12;
· FastAPI;
· SQLite;
· Docker Compose;
· Caddy.
Если 443 порт уже занят nginx, есть отдельный compose‑вариант под nginx.
Проект подойдёт, если у вас несколько
Основной сценарий:
· хранить список серверов;
· видеть ближайшие оплаты;
· получать напоминания;
· держать ссылки на биллинг;
· вести историю оплат;
· при необходимости синхронизироваться с API провайдера.
Не подойдёт, если вам нужны:
· multi‑user;
· роли и права доступа;
· биллинг клиентов;
· приём платежей;
· полноценная CRM для
Это одна учётная запись администратора. Так задумано специально.
Я не продаю SaaS и не ищу инвестора.
v1.0.0 — первая версия, которой уже не стыдно делиться: есть Docker, one‑liner install, Telegram‑напоминания, синхронизация, backup и нормальная базовая безопасность.
Если проект кому‑то сэкономит нервы на продлениях серверов — уже хорошо.
Star на GitHub помогает другим админам наткнуться на репозиторий. Не обязательно, но полезно для проекта.
P. S. Если проект оказался полезен, можно поддержать через Telegram Stars: @AlekseyRdonate_bot. Это необязательно, но будет приятно, ведь так я пойму, что кому‑то помог.
Автор: AlekseyRus
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/vps/453362
Ссылки в тексте:
[1] VPS: https://www.reg.ru/?rlink=reflink-717
[2] https://github.com/AlekseyRusaleev/Server‑billing: https://github.com/AlekseyRusaleev/Server-billing
[3] https://github.com/AlekseyRusaleev/Server‑billing/releases/tag/v1.0.0: https://github.com/AlekseyRusaleev/Server-billing/releases/tag/v1.0.0
[4] https://raw.githubusercontent.com/AlekseyRusaleev/Server‑billing/main/scripts/install.sh: https://raw.githubusercontent.com/AlekseyRusaleev/Server-billing/main/scripts/install.sh
[5] sslip.io: http://sslip.io
[6] https://ВАШ_IP.sslip.io: https://%D0%92%D0%90%D0%A8_IP.sslip.io
[7] Источник: https://habr.com/ru/articles/1048222/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1048222
Нажмите здесь для печати.