Commit graph

  • 6372d649da fix: node installer refuses a non-empty server before touching it and reports active only after xray stays up main savsis 2026-10-04 04:48:39 +05:00
  • 4791c5ca2b chore: point repo links, badges and the installer at savsisbtw/mbs-panel savsis 2026-10-04 03:51:22 +05:00
  • a701d55e3b docs: chains, users, audit log, mbs update/backup/mirror in the readme, chains row in the landing comparison savsis 2026-10-04 03:51:17 +05:00
  • e3bd279407 ci: smoke tests for chains and mbs update, separate node code in the backup round-trip step savsis 2026-10-04 03:51:17 +05:00
  • 264991593a feat: mbs update takes a mirror url, backs up first and survives manual edits savsis 2026-10-04 03:51:16 +05:00
  • 2c5ec8b06c feat: admin panel redesign, chain builder, users page, audit log, command palette savsis 2026-10-04 03:51:16 +05:00
  • da6200ae4a feat: server chains (client -> A -> B -> internet), audit log, users list, csv export savsis 2026-10-04 03:51:16 +05:00
  • 6546d5bed1 feat: two-sided referral program savsis 2026-09-26 22:29:15 +05:00
  • 695771c79a fix: node-provisioning status poll could run forever, silently or stuck on "waiting" savsis 2026-09-14 09:09:36 +05:00
  • 2b34b11391 fix: 12 admin actions failed completely silently on error — no message, no visible change, nothing savsis 2026-09-14 07:35:44 +05:00
  • 02ff43095c site: catch up the comparison table with v1.2.0 (hold/pause, node webhooks, custom admin path, drag-n-drop) savsis 2026-09-14 05:58:27 +05:00
  • 591b1ba692 chore: bump version to v1.2.0 in the panel UI v1.2.0 savsis 2026-09-14 05:25:19 +05:00
  • 8343a66a14 fix: admin panel showed raw JSON error envelopes instead of the actual message savsis 2026-09-14 04:25:34 +05:00
  • 59f67b8e4e fix: two more unguarded int() calls on admin input, one with a real reproducible crash path savsis 2026-09-14 03:55:37 +05:00
  • f37b8a5018 fix: validate node code/label/port when manually adding a node — was completely unvalidated savsis 2026-09-14 03:25:49 +05:00
  • bbbab9998e feat: outbound webhooks for node lifecycle — closes the "users + nodes" gap from the comparison savsis 2026-09-14 02:56:25 +05:00
  • b8c4949201 feat: search and status filter on the Подписки table savsis 2026-09-14 02:27:40 +05:00
  • 670579fccd feat: optional custom admin login path — matches a Remnawave-listed security measure Marzban doesn't have savsis 2026-09-14 01:58:45 +05:00
  • f6e4e52b65 feat: outbound webhooks for revoke/hold/resume — only grant and payment fired before savsis 2026-09-14 01:26:26 +05:00
  • 71c98c5032 test: verify backup/restore actually undoes branding, live settings and held subscriptions together savsis 2026-09-14 00:57:56 +05:00
  • 906b1f5842 feat: pause/resume a subscription without losing paid time (Remnawave-style hold) savsis 2026-09-14 00:28:20 +05:00
  • 7cc50973f6 feat: custom brand name everywhere + a working client-facing site out of the box savsis 2026-09-13 23:52:54 +05:00
  • 7d140711fd feat: plan prices, payment toggles and HWID limit now editable live from the admin panel, no restart savsis 2026-09-13 23:27:06 +05:00
  • 1747d63539 perf: two more N+1s in bot.py, found by scanning the whole codebase for the pattern savsis 2026-09-13 22:10:12 +05:00
  • 6d94b36c31 docs: fill in the panel's own reference docs for everything shipped tonight savsis 2026-09-13 21:42:33 +05:00
  • 4b86406041 feat: outbound webhooks for payment/subscription events savsis 2026-09-13 21:15:13 +05:00
  • 24a1b26df2 site: add multi-admin, 2FA, rate-limit rows to the landing comparison table savsis 2026-09-13 20:45:12 +05:00
  • dcfcf8f650 feat: Platega credentials section in the Payments wizard, for parity with YooKassa savsis 2026-09-13 19:50:54 +05:00
  • 6311532c45 feat: payments setup wizard — legal pages + YooKassa keys from the admin UI savsis 2026-09-13 19:23:25 +05:00
  • 3bd38103c3 ci: cover tonight's features — TOTP, backup/restore, node reorder, multi-admin, rate-limit savsis 2026-09-12 17:37:57 +05:00
  • 61bcd41561 docs: README feature list catches up with tonight's additions, v1.1.0 v1.1.0 savsis 2026-09-12 17:09:19 +05:00
  • 52f5c551cb security: rate-limit admin login and TOTP verification savsis 2026-09-12 16:42:20 +05:00
  • 11c75c13d1 perf: multi-worker uvicorn + fix N+1 on the hottest path in the app savsis 2026-09-12 16:13:44 +05:00
  • 7098e59967 feat: TOTP two-factor auth for admin login savsis 2026-09-12 15:43:52 +05:00
  • 9e6e314c94 feat: multi-admin support — named logins instead of one shared password savsis 2026-09-12 15:13:16 +05:00
  • 81cbc4e391 fix: prune old backup safety-copies and expired admin sessions instead of letting them pile up forever savsis 2026-09-12 15:08:34 +05:00
  • 2a68b2ff40 feat: drag-and-drop node reordering in the admin panel savsis 2026-09-12 10:55:15 +05:00
  • 91a8a4374b site: mark backup/restore as shipped on the landing comparison table savsis 2026-09-12 10:24:18 +05:00
  • f586cf9fa3 feat: backup & restore built into the admin panel savsis 2026-09-12 10:23:38 +05:00
  • cfac7c1445 site: landing install command now routes through our own site, not raw github clone savsis 2026-09-12 09:54:11 +05:00
  • 54dc9e2dae site: project landing page, deployed at mbs.savsis.xyz savsis 2026-09-12 09:43:28 +05:00
  • abdf18faae feat: validate xray config before every restart, local + managed nodes savsis 2026-09-12 09:34:52 +05:00
  • f9ee4f5933 fix: 18-point audit pass — payment races, hwid limit bugs, blocking SSH/HTTP in event loops, N+1 queries, ssh host-key pinning, dead code savsis 2026-09-11 22:20:54 +05:00
  • 2604c2dfe7 feat: mirror repo on api.savsis.xyz as primary update source, github as fallback savsis 2026-09-11 17:02:22 +05:00
  • 36fa7d55b0 fix: xray (runs as nobody) couldn't read root-only letsencrypt certs for WS+TLS — copy to /etc/xray/certs with correct perms, keep it fresh via renewal hook savsis 2026-09-11 08:23:21 +05:00
  • a8deb1fa8b fix: no-cache headers on admin panel HTML so updates show up without a hard refresh savsis 2026-09-10 23:34:23 +05:00
  • 320742bd63 cli: mbs update now also refreshes /usr/local/bin/mbs itself after pulling savsis 2026-09-10 23:32:20 +05:00
  • bfc2fd7b4c settings: change Telegram bot token/username from the admin UI (validated via getMe); mbs restart now covers bot+api+xray+nginx savsis 2026-09-10 23:29:58 +05:00
  • 04db4a359e ui: dark scrollbars everywhere, Документация section (architecture/nodes/password/fail2ban) savsis 2026-09-10 23:25:37 +05:00
  • 5725922bdc fix: refresh node cache on Gifts/User card open (new nodes weren't showing up); preselect country flag in node edit modal savsis 2026-09-10 23:06:46 +05:00
  • 8a3ac30dbb chore: trigger CI (diagnosing missing runs) savsis 2026-09-10 22:59:05 +05:00
  • 76eef6fece cli: mbs update — safe git pull with syntax check + auto-rollback on failure savsis 2026-09-10 22:57:49 +05:00
  • f5f8f21f5d payments: status verification (check + auto-reconcile pending), admin Payments view savsis 2026-09-10 22:46:55 +05:00
  • 44d738f8a4 docs: badges (CI, license, release, python, xray-core) v1.0.0 savsis 2026-09-10 22:39:16 +05:00
  • cea0bffe68
    Update README.md Welfizx 2026-09-10 22:38:49 +05:00
  • c80f860a82 docs: diagram for panel<->node connectivity (local vs SSH-managed) savsis 2026-09-10 22:36:14 +05:00
  • dde311aab1 docs: mermaid architecture/payment/node-add diagrams, stability notes, troubleshooting savsis 2026-09-10 22:30:18 +05:00
  • 235b61cd34 install: retry flaky network steps (apt/git/pip/certbot/xray), pipefail safety savsis 2026-09-10 22:28:31 +05:00
  • 603d88acae perf: indices on hot query columns, WAL+NORMAL synchronous for write throughput savsis 2026-09-10 22:24:52 +05:00
  • 453270d1aa docs: update feature list with HWID limit, user card, traffic reset savsis 2026-09-10 22:20:25 +05:00
  • ca6e928f98 design: staggered reveal animation on every table/list row across the panel savsis 2026-09-10 22:19:34 +05:00
  • a275000b5d admin: full user card — subscription history, manual grant, devices/HWID in one modal savsis 2026-09-10 22:17:16 +05:00
  • 9a86b8cb03 admin: reset traffic counter per subscription (xray api statsquery -reset) savsis 2026-09-10 22:14:16 +05:00
  • fb11aafda6 ci: import api/bot at CI time, exercise payments+HWID db logic savsis 2026-09-10 22:06:15 +05:00
  • fe579430bd hwid: per-user device limit like Remnawave (x-hwid header, opt-in) savsis 2026-09-10 22:06:15 +05:00
  • 7b5fd8dceb site: offer + privacy policy templates for YooKassa compliance, README payments section savsis 2026-09-10 21:49:10 +05:00
  • 5b30d1f148 payments: Platega + YooKassa integration, opt-in via PAYMENTS_ENABLED savsis 2026-09-10 21:44:45 +05:00
  • c9955b2774 chore: point install/clone URL at devsavsis/mbs-panel savsis 2026-09-10 21:44:45 +05:00
  • 1965ef9f62 install: anonymous install-count ping (opt-out via MBS_SKIP_STATS) savsis 2026-09-10 21:13:44 +05:00
  • f657644ce6 admin: full node editing (label/address/port/sni/keys), country picker in edit modal savsis 2026-09-10 18:21:13 +05:00
  • 5308b9a446 ci: use a valid dummy password for the smoke test savsis 2026-09-10 18:14:40 +05:00
  • 84ffb8363d security: reject weak/default admin panel passwords at startup savsis 2026-09-10 18:14:05 +05:00
  • 0333f33b29 docs: readme, MIT license, CI workflow savsis 2026-09-10 17:45:43 +05:00
  • b7792421dd deploy: one-command installer, systemd units, mbs CLI savsis 2026-09-10 17:45:43 +05:00
  • 23bb0da6c0 frontend: admin panel SPA and public site pages savsis 2026-09-10 17:45:43 +05:00
  • 073c4fb9f0 bot + api: telegram bot (aiogram) and FastAPI backend savsis 2026-09-10 17:45:43 +05:00
  • e4c2012cf8 core: env-driven config, sqlite schema, xray/node management, subscription links savsis 2026-09-10 17:45:36 +05:00