Attention
- This is preview version and it unstable
- You can`t downgrade from This version to older versions so get a backup before update
v1.0.0-alpha-1
🚀 Enhancements
- Shadcn config + sidebar configuration (828606b8)
- admin: Add ability to disable admin account (#1599)
- System mode added to theme switch (fbf3bec3)
- NextPlan -> userTemplate relation (#1596)
- Tabs Component Reusuabled (874f85cb)
- Allow connecting from whole LAN (c47429f3)
- Statistics page closer to figma UI (a1e46849)
- Hosts page added and validated with zod (3406d17b)
- Colorize server logs (dd044960)
- Statistics header filled with dynamic data and translated (315004a6)
- Dynamic xray core config (6f662e61)
- Dynamic logs (4a03c65a)
- dependency: Replace pip with uv (#1666)
- Add ruff as code formater (72514365)
- ruff: Add ruff to workspace (71431111)
- Added group topics to telegram bot (#1668)
- Add ruff to dev dependency groups (089e74e2)
- Hosts data is dynamic ([ drag to change the order of hosts ](https://github.com/Gozargah/Marzban/commit/ drag to change the order of hosts ))
- hosts: Add priority to proxy hosts (4e17521f)
- dependencies: Add @dnd-kit/utilities to package.json and update pnpm-lock.yaml (7f68f16b)
- logging: Implement custom logging formatter and introduce get_logger utility (2f8f4524)
- hosts: Add transports settings to hosts (#1684)
- Add dynamic variable support for user status texts (#1689)
- Add password as an alias of publicKey (#1693)
- Add password as an alias of publicKey " (#1693, #1694)
- hosts: Add {USAGE_PERCENTAGE} variable (#1700)
- admin: Add sub_template, sub_domain, profile_title and support_url (#1702)
- Add keepalive (b6226808)
- Add real-time node stats (3b966a2c)
- Add get user online ips (e408b069)
- Add more specific log for node operator (91f660b6)
- Implement Group-Based Access Control System (#1713)
- notification: Added notification for host operations (#1714)
- Add PostgreSQL Database Support (#1717)
- Add subscription operator (055efb32)
- Add admin operator (7a4e4ed1)
- Node: Add sync users path (c0e84561)
- operation: Complete user operator (e0ced775)
- admin: Add password validations and prevent using week password for admins (fa480d80)
- Added notification for new things (#1728)
- Support gui for singbox app (a62354f2)
- Add list validator (6540e782)
- Add aiosqlite driver to env example (ac06d730)
- Added notification for user operations (#1731)
- cli: Add reset admin usage command and help command (76c518e3)
- Added on hold for user status notifications (#1732)
- Refactor XRay Config Processing for Better Maintainability and Multiple Fallback Support (#1720)
- hosts: Add Host Status Management System (#1733)
- Added webhook notifications (#1735)
- node: Add connect and error notfication for node (e7250a78)
- group: Update users to node after modify or delete group (ca1e9893)
- CI/CD: Add github actions for testing database migration (614c1c74)
- Implement XHTTP upload/download splitting (#1743)
- Update users after disable admin users (8005076f)
- Add CodeQL for api (e1c4ac22)
- Add CodeQL for frontend (243bce9a)
- Hosts CRUD working with validations toasts and etc. (d1aac2bc)
- Whole sortable host card clickable (ae0cd200)
- Add comprehensive test suite for API endpoints and database operations (#1750)
- UserTemplates: Add extra_settings to user templates (61758aef)
- Add MAX_RETRIES for notfication (32f8ed32)
- Add groups page with CRUD and toasts and fix focus bug on options click of hosts (5c5194f2)
- Nodes page enchaned CRUD of each node certificate settings in page (47099a91)
- Show node status in node modal edit (b1d1c7af)
- Separate nodes backend config (#1752)
- Add admins page skeleton (eea2806b)
- Major frontend improvements and refactoring (9a868514)
- Add node stats table (#1755)
- Add remove old inbounds job (#1756)
- Add db.rollback before raise error in operation (2c72ce9b)
- Node api key (3ac7f93e)
- Add status and reset_usage for user template (8d621a6f)
- api: Add create and update users fom templates (9a256985)
- admin: Add total_users to admin response (6d7b61ec)
- Add reset user from template functionality (90f48a9a)
- Add data_limit_reset_strategy and on_hold_timeout to usertemplate (db535e61)
- workflow: Change build from on tag to on release (db199297)
- New telegram bot (#1767)
- tgbot: Start command (#1769)
- Increase username lenght (faf6d034)
- admin: Add discord id (2de65f2c)
- notfication: Core notfication (affb4b60)
- Admins page FrontEnd (10e18c5d)
- Add note to fron-template api (f757d1b2)
- tests: Add tests for subscription urls and sub links generators (39d2b307)
- Add gather logs option for node (c9e7181f)
- Add search by protocols id and passwoed (57b57c4e)
- Settings: Create settings table and migrate with .env (#1792)
- Add install node and npm command to Makefile (929c4aeb)
- TgBot: Create User and Main Menu (#1781)
- Add light theme support & remove logs timestamp (#1801)
- tgbot: Make scret key required for telegram bot (50c7f2a4)
🩹 Fixes
- Datetime bug (#1562)
- Update repository clone URL in README (#1578)
- Migrations conflicts (#1595)
- Subscription template error (#1602)
- fronteed: Rtl support for rtl languages (f9537ce1)
- frontend: Sidebar lang switch direction (b20187a4)
- Set direction on i18n initialization (37f146e2)
- frontend: Sidebar - backgrond background color on dark mode (821d7337)
- Language switch position (618e4a29)
- Button styles (769f5dbe)
- frontend: Users api call (6d0f159e)
- 404 error in active-next endpoint (1ce8c216)
- Reset_user_by_next (2353e3fa)
- Activating nextplan (#1606)
- Xhttp extra in v2ray links (#1613)
- Dynamically set https for VITE_BASE_API when SSL is enabled (dd204185)
- Sidebar Translation ([ Users Table Closer to UI ](https://github.com/Gozargah/Marzban/commit/ Users Table Closer to UI ))
- sing-box: Sing-box 1.11 template migration (#1629)
- Users page UI improvements (d90cbbd1)
- Added @monaco-editor/react to pnpm (4f9e59e4)
- Color input border dark mode visible (a5d78c41)
- Editor ltr staticly (06032b23)
- Sidebar bug on change lang fixed (5514e436)
- PageHeader component direction is now dynamic (97751b1b)
- Prevent using 0.0.0.0 as private ip (f5270211)
- Correct ip compare (188411f6)
- Dashboard UI improvements (5e8360d6)
- Templates UI mismatches based on latest next changes (f1e0b1e2)
- General settings closer to figma UI (4c568697)
- Input color in dark mode visible (f04ea8ad)
- Extand body font to use other default fonts (95c33d55)
- Add host modal closer to Figma UI (1db215df)
- Colorize logs level (82c186dc)
- Remove validators for host response (24dec481)
- ruff: Rcheck errors (6c320642)
- Import app in main (4c1f469f)
- node: Add usage_coefficient when creating node (#1674)
- Add check command (91e6d375)
- Using or instead of , in a list (8c1b8866)
- migration: Add close session (a6eb1db1)
- migration: Close session after migration (7b0893d2)
- migration: Priority for mysql (66d042ac)
- migration: Correct sqlite check placement in priority migration (718c84a2)
- dashboard: Update VITE_BASE_API configuration and adjust websocket URL path (73c5cb8e)
- fastapi: Update on startup and shutdown events to lifespan (8b294b00)
- Remove debug print statement from shutdown functions (bc96ac8d)
- Disable openapi schema (#1673)
- Ruff not working in vscode (#1685)
- Ruff config in vscode workspace (#1686)
- makefile: Fix watch command and add check and format for ruff (#1688)
- Exclude Zone.Identifier files (8b2a0eff)
- Use sse-starlette to prevent deadlock in sse (548275a0)
- Correct use response_model for api (d0b02107)
- Migration in mysql (#1708)
- Migration default value bug (03c051c1)
- Modify user template (f01805f0)
- Functions not awaited (604f238f)
- Remove unused import in models.admin (1c647302)
- router: User template prefix (4b319161)
- Better host crud (64f2027d)
- Better admin crud structure (7a588f3e)
- Admin module for async engine (f7208a64)
- Async database queries (ad57c148)
- Use new admin model for notfications (26e3d850)
- cli: Crash no admin in database (9998675f)
- cli: Some small improvements (fea8d054)
- cli: Some ui issues (5ecf0d6d)
- migration: Postgresql enum name (46110b6a)
- Record usage for async engine (1effe20b)
- Telegram formatting (#1738)
- Send notfication job infinite loop (188052f8)
- Reset usage job send notfication (7e1eb85b)
- Get users sort option (18e4735c)
- Changed zeros to Unlimited and Never (#1739)
- Improve host management with sortable functionality and deletion handling (1799ef6a)
- Change orval config to ts and update api (bf19f4cd)
- jobs: Less db.commit in job review users (5f5e554a)
- mysql: Error on shutdown (d737143a)
- mysql: Change mysql driver (5e84a85e)
- migration: EnumArray for postgresql (39e8ad1d)
- Typo (6561df7f)
- Change path for test databases (4638d78b)
- Circular import (c2f0a29a)
- Status code for create endpoints (5148c790)
- Test databases job (6516390d)
- Do not let user select the same host as download host (8eda4997)
- Remove id check when adding new hostt (3b5e09d0)
- Remove unused objects (59889115)
- Shadowsocks 2022 (5734a5d5)
- Added a cooldown to handle API rate limits (#1745)
- Duplicate Operation ID (df4d96e6)
- CodeQL actions (66b12dd2)
- Bug of changing dir fixed (75790fd9)
- Node path conflict (5ac3575e)
- Fix hosts some validation bugs (2904e3d0)
- Codeql configs (288c22e4)
- Make extra optional (6bc341ff)
- api: Delete endpoints status code (should be 204) (446b5f70)
- Handle error during nore update (7dc25d30)
- Remove old group templates (5cef2e2a)
- Remove unused codes (79f34a39)
- Hosts security settings emprty selectbox bug fixed (891bf9cd)
- Add max logs to nodemodal (9ad443c8)
- Add fixture for geting access_token instad of using the test function (e0ffbc4a)
- Add tests dirctory to test worker (f7572734)
- Fix host creation bug (a0e0e179)
- Refetch groups after each action (8677dcfc)
- Backend id for /api/nodes (d01eabbd)
- Hosts refactored add some missing types fixed focus bugs in dialog (94b3876e)
- Add toggle theme to login page add icon login for button and some space changes (4ab8721b)
- Add translations for toggle theme (35ac050b)
- Update orval api file (4fa5711f)
- Remove old logic conetexts folder and use orval dynamic api instead (707dc5fd)
- Remove old types directory and use orval types and update client type variables (0b35d2f3)
- Try to make /api/groups response time faster (d65e5ca2)
- Modify host (5b3ea1db)
- Add ds hosts controler for update_hosts (2697ffae)
- Node message max len (14e5a01a)
- Update gozargah-node-bridge package (4d6b34a6)
- Remove node tls from api (234969f7)
- Node operation import (9601d06a)
- Migration (abc3b529)
- Create and update admins (100321ec)
- Migrations on pgsql (9dc1b472)
- Groups migrations (a8831406)
- Remove duplicated inbounds in groups (12eb1fca)
- Use pnmp v10 (9bbb10fd)
- Pnpm install (8a569028)
- Working directory (bfb846f8)
- Setup node-js (5334aa2f)
- Build wirh vite_api (bc3a1158)
- If-present (04ce75e6)
- Ruff config (d1318f4f)
- Discord id type (d0c861d3)
- stats: Better stats response (cae92921)
- Handle disabled admin (3905234e)
- Clean up error in cli (0096b3fa)
- Generating subsription (67c97e39)
- Reading data in subscription (4f5990b8)
- validate_dates function (3b145725)
- Modify hosts notif name (aa8d7e66)
- workflow: Build workflow performance (#1780)
- Remove realtime_bandwidth for master (33f4ffd2)
- Create and modify user with template (467bccc3)
- User template load attr logic (b89c6130)
- User template test (550943d4)
- User expire timezone (2c0a2ead)
- Postgresql datetime (5b54f6c9)
- Modify user from template logic (a50cd7a5)
- Prevent error in migration (c709b9b7)
- Use property instead of helper function (36db566f)
- subscription: Load inbounds before check it (448f8759)
- Gather logs default value (dd460844)
- Import (a1869185)
- Premissiones (9ccb1b69)
- User dialog on hold duration and loading state improvements (#1789)
- Proxy_id search (ae2895a1)
- Nontype error when creating usertemplate (957fdaab)
- Improved Charts Data & Responsive UI Enhancements (#1793)
- Remove api token from telegram webhook path (9b6d7673)
- Rename admin users usage to used traffic (37c055a4)
- Show lifetime usage instead of reseted usage (569406e9)
- settings: Force webhook_secret for telegram bot (5b885bb1)
- settings: Typo (3184509e)
- test: Typo (28d7d804)
- Add periodic reset startegy (#1798)
- Add periodic reset strategy and resolve API & translation file bugs (#1799)
- D085fae205b6 downgrade for mysql (540f1162)
- node: core_config_id error (8468b7d5)
- Nullable core_config_id only for response (4e0bd71c)
- makefile: Install pnpm from original source and avoid using npm (2a5a8627)
💅 Refactors
- user: Change user expire to datetime (#1502)
- Mainly orval configuration to use pre-defined react-query hooks (146b7ad0)
- Route files name conventions sidebar mobile view upgrate react-router unnecessary dependencies removed (dd694fca)
- Fonts configurations and style importing (48aa78e5)
- Unused layout files removed (b97a9dcc)
- Reality settings key handling (#1695)
- node: Remove xray_api files (fb5fef7f)
- Replace gozargah node with marzban node (7ac208d6)
- node: Replace websocket with sse (f0129448)
- subscription: Improve subscription router code organization and performance (#1707)
- auth: Better structure for admin authentication (11458bff)
- Migrate to SQLAlchemy v2 with Async Support (#1724)
- Make user models more structed (9f5d8ace)
- cli: Add Admin Management Interface to Marzban CLI (#1729)
- jobs: Use full async advantage (fcb4d485)
- Make reset_user_data_usage async (55319afd)
- subscription: Extract common network and TLS settings logic (#1737)
- remove expired: More readable code (918683af)
- User usage query and make it possible to get stats in different periods (9934c159)
- Node usage to support different periods (35035a11)
- Change backend config to core config (931d479a)
- db: Change load logic (#1773)
📖 Documentation
- Add mysql and postgresql url sample to .env (77e81cbd)
🏡 Chore
- Update contribution guide to use pnpm (9286b076)
- Frontned development requirements (8ddda3f1)
- Format code and fix some warnings (#1687)
- Create operator for hosts (#1712)
- Try new approach for operations (73fb1c53)
- Rename V2rayShareLink to StandardLinks (38244edf)
- Better operations for groups (f29a7291)
- Better operations for user_templates (224a4909)
- Some changes in user operations (b20487a7)
- Add logger for groups and templates (cbd3dd13)
- Better admin models (61fecb71)
- Change add to create in notfication function name (1ff0f9ef)
- Move user status to db/models.py (7200cef9)
- Move PasswordValidator to validators folder (58876b57)
- Remore unnecessary host model (56ea986f)
- Update gozargah-node-bridge package (58d22f3d)
- Remove unnecessary responses (443871af)
- Remove unneserly import (e43e0a52)
- Rename backend to core (f4db96d5)
- Clean up functions (#1768)
- Remove unused dependency (f5509fa4)
- Replace requests with httpx (3ce23ee1)
- Remove unused import (557c1287)
- Remove unused selectload (c389a7dc)
- Replace datetime.nowutc with datetime.now (0cb0d0d7)
- Add username lenght check (de37c665)
- authenticatin: Remove check_sudo_admin unnecessary code (e5fae17e)
- More readable code for action with template (c647fe2a)
- More readable workflow (cbe5c3cc)
- Clean-up env (591ce722)
- Better code (230cd4cf)
- Better error handling logic (ab22b909)
- Core id can be none in node modify (620c3316)
- Remove extra data from config file (26098b4b)
🤖 CI
- Add wait for database (bdcb43bd)
❤️ Contributors
- M03ED (@M03ED)
- Mohammad immohammad20000@protonmail.com
- Sina (@x0sina)
- T3ST3ST3R0N (@T3ST3ST3R0N)
- Random Guy (@M03ED)
- Triplemdev mohammadimahdi294@gmail.com
- X0sina bulletsina77@gmail.com
- Sinacket bulletsina77@gmail.com
- Atomic8oy tpaix87@gmail.com
- Xmohammad1
- Vladislav
- SaintShit saintshit@proton.me
- Ilia
- Gozarman
- WhyMan
- Joursoir chat@joursoir.net
- Muhammad
- Arian Omrani arianomrani24@gmail.com