-
-
-## فهرست مطالب
-- [بررسی اجمالی](#بررسی-اجمالی)
- - [چرا مرزبان؟](#چرا-مرزبان)
- - [امکانات](#امکانات)
-- [راهنمای نصب](#راهنمای-نصب)
-- [تنظیمات](#تنظیمات)
-- [استفاده از API](#استفاده-از-api)
-- [پشتیبان گیری از مرزبان](#پشتیبان-گیری-از-مرزبان)
-- [ربات تلگرام](#ربات-تلگرام)
-- [رابط خط فرمان (CLI) مرزبان](#رابط-خط-فرمان-cli-مرزبان)
-- [ارسال اعلانها به آدرس وبهوک](#ارسال-اعلانها-به-آدرس-وبهوک)
-- [کمک مالی](#کمک-مالی)
-- [لایسنس](#لایسنس)
-- [مشارکت در توسعه](#مشارکت-در-توسعه)
-
-
-# بررسی اجمالی
-
-مرزبان یک نرم افزار (وب اپلیکیشن) مدیریت پروکسی است که امکان مدیریت چند صد حساب پروکسی را با قدرت و دسترسی بالا فراهم میکند. مرزبان از [Xray-core](https://github.com/XTLS/Xray-core) قدرت گرفته و با Python و React پیاده سازی شده است.
-
-## چرا مرزبان؟
-
-مرزبان دارای یک رابط کاربری ساده است که قابلیت های زیادی دارد. مرزبان امکان ایجاد چند نوع پروکسی برای کاربر ها را فراهم میکند بدون اینکه به تنظیمات پیچیده ای نیاز داشته باشید. به کمک رابط کاربری تحت وب مرزبان، شما میتوانید کاربران را مانیتور، ویرایش و در صورت نیاز، محدود کنید.
-
-### امکانات
-
-- **رابط کاربری تحت وب** آماده
-- به صورت **REST API** پیاده سازی شده
-- پشتیبانی از پروتکل های **Vmess**, **VLESS**, **Trojan** و **Shadowsocks**
-- امکان فعالسازی **چندین پروتکل** برای هر یوزر
-- امکان ساخت **چندین کاربر** بر روی یک inbound
-- پشتیبانی از **چندین inbound** بر روی **یک port** (به کمک fallbacks)
-- محدودیت بر اساس مصرف **ترافیک** و **تاریخ انقضا**
-- محدودیت **ترافیک دوره ای** (به عنوان مثال روزانه، هفتگی و غیره)
-- پشتیبانی از **Subscription link** سازگار با **V2ray** _(مثل نرم افزار های V2RayNG, OneClick, Nekoray و...)_ و **Clash**
-- ساخت **لینک اشتراک گذاری** و **QRcode** به صورت خودکار
-- مانیتورینگ منابع سرور و **مصرف ترافیک**
-- پشتیبانی از تنظیمات xray
-- پشتیبانی از **TLS**
-- **ربات تلگرام**
-- **رابط خط فرمان (CLI)** داخلی
-- قابلیت ایجاد **چندین مدیر** (تکمیل نشده است)
-
-# راهنمای نصب
-
-برای نصب کافیه دستور زیر رو اجرا کنید
-
-```bash
-sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install
-```
-
-وقتی نصب تمام شد:
-
-- شما لاگ های مرزبان رو مشاهده میکنید که میتوانید با بستن ترمینال یا فشار دادن `Ctrl+C` از آن خارج شوید
-- فایل های مرزبان در پوشه `/opt/marzban` قرار میگیرند
-- فایل تنظیمات در مسیر `/opt/marzban/.env` قرار میگیرد ([تنظیمات](#تنظیمات) را مشاهده کنید)
-- فایل های مهم (اطلاعات) مرزبان در مسیر `/usr/lib/marzban` قرار میگیرند
-- شما از طریق آدرس `http://YOUR_SERVER_IP:8000/dashboard/` میتوانید وارد داشبورد مرزبان شوید (YOUR_SERVER_IP را با آیپی سرور خود عوض کنید)
-
-در مرحله بعد, باید یک ادمین سودو بسازید
-
-```bash
-marzban cli admin create --sudo
-```
-
-تمام! حالا با این اطلاعات میتوانید وارد مرزبان شوید
-
-برای مشاهده راهنمای اسکریپت مرزبان دستور زیر را اجرا کنید
-
-```bash
-marzban --help
-```
-
-اگر مشتاق هستید که مرزبان رو با پایتون و به صورت دستی اجرا کنید، مراحل زیر را مشاهده کنید
-
-
نصب به صورت دستی (پیچیده)
-
-لطفا xray را نصب کنید.
-شما میتواند به کمک [Xray-install](https://github.com/XTLS/Xray-install) این کار را انجام دهید.
-
-```bash
-bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
-```
-
-پروژه را clone کنید و dependency ها را نصب کنید. دقت کنید که نسخه پایتون شما Python>=3.8 باشد.
-
-```bash
-git clone https://github.com/Gozargah/Marzban.git
-cd Marzban
-wget -qO- https://bootstrap.pypa.io/get-pip.py | python3 -
-python3 -m pip install -r requirements.txt
-```
-
-همچنین میتواند از , [Python Virtualenv](https://pypi.org/project/virtualenv/) هم استفاده کنید.
-
-سپس کامند زیر را اجرا کنید تا دیتابیس تنظیم شود.
-
-```bash
-alembic upgrade head
-```
-
-اگر می خواهید از `marzban-cli` استفاده کنید، باید آن را به یک فایل در `$PATH` خود لینک و قابل اجرا (executable) کنید. سپس تکمیل خودکار (auto-completion) آن را نصب کنید:
-
-```bash
-sudo ln -s $(pwd)/marzban-cli.py /usr/bin/marzban-cli
-sudo chmod +x /usr/bin/marzban-cli
-marzban-cli completion install
-```
-
-حالا یک کپی از `.env.example` با نام `.env` بسازید و با یک ادیتور آن را باز کنید و تنظیمات دلخواه خود را انجام دهید. یه عنوان مثال نام کاربری و رمز عبور را می توانید در این فایل تغییر دهید.
-
-```bash
-cp .env.example .env
-nano .env
-```
-
-> برای اطلاعات بیشتر بخش [تنظیمات](#تنظیمات) را مطالعه کنید.
-
-در انتها, مرزبان را به کمک دستور زیر اجرا کنید.
-
-```bash
-python3 main.py
-```
-
-اجرا با استفاده از systemctl در لینوکس
-```
-systemctl enable /var/lib/marzban/marzban.service
-systemctl start marzban
-```
-
-اجرا با nginx
-```
-server {
- listen 443 ssl http2;
- listen [::]:443 ssl http2;
- server_name example.com;
-
- ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
- ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
-
- location ~* /(dashboard|api|docs|redoc|openapi.json) {
- proxy_pass http://0.0.0.0:8000;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
-}
-```
-or
-```
-server {
- listen 443 ssl http2;
- listen [::]:443 ssl http2;
- server_name marzban.example.com;
-
- ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
- ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
-
- location / {
- proxy_pass http://0.0.0.0:8000;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
-}
-```
-
-به صورت پیشفرض مرزبان در آدرس `http://localhost:8000/dashboard` اجرا میشود. شما میتوانید با تغییر `UVICORN_HOST` و `UVICORN_PORT`، هاست و پورت را تغییر دهید.
-
-
-# تنظیمات
-
-> متغیر های زیر در فایل `env` یا `.env` استفاده میشوند. شما می توانید با تعریف و تغییر آن ها، تنظیمات مرزبان را تغییر دهید.
-
-| توضیحات | متغیر |
-| ----------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: |
-| نام کاربری مدیر کل | SUDO_USERNAME |
-| رمز عبور مدیر کل | SUDO_PASSWORD |
-| آدرس دیتابیس ([بر اساس مستندات SQLAlchemy](https://docs.sqlalchemy.org/en/20/core/engines.html#database-urls)) | SQLALCHEMY_DATABASE_URL |
-| آدرس هاستی که مرزبان روی آن اجرا میشود (پیشفرض: `0.0.0.0`) | UVICORN_HOST |
-| پورتی که مرزبان روی آن اجرا میشود (پیشفرض: `8000`) | UVICORN_PORT |
-| اجرای مرزبان بر روی یک Unix domain socket | UVICORN_UDS |
-| آدرس گواهی SSL به جهت ایمن کردن پنل مرزبان | UVICORN_SSL_CERTFILE |
-| آدرس کلید گواهی SSL | UVICORN_SSL_KEYFILE |
-| مسیر فایل json تنظیمات xray (پیشفرض: `xray_config.json`) | XRAY_JSON |
-| مسیر باینری xray (پیشفرض: `/usr/local/bin/xray`) | XRAY_EXECUTABLE_PATH |
-| مسیر asset های xray (پیشفرض: `/usr/local/share/xray`) | XRAY_ASSETS_PATH |
-| پیشوند (یا هاست) آدرس های اشتراکی (زمانی کاربرد دارد که نیاز دارید دامنه subscription link ها با دامنه پنل متفاوت باشد) | XRAY_SUBSCRIPTION_URL_PREFIX |
-| تگ inboundای که به عنوان fallback استفاده میشود. | XRAY_FALLBACKS_INBOUND_TAG |
-| تگ های inbound ای که لازم نیست در کانفیگ های ساخته شده وجود داشته باشند. | XRAY_EXCLUDE_INBOUND_TAGS |
-| آدرس محل template های شخصی سازی شده کاربر | CUSTOM_TEMPLATES_DIRECTORY |
-| تمپلیت مورد استفاده برای تولید کانفیگ های Clash (پیشفرض: `clash/default.yml`) | CLASH_SUBSCRIPTION_TEMPLATE |
-| تمپلیت صفحه اطلاعات اشتراک کاربر (پیشفرض `subscription/index.html`) | SUBSCRIPTION_PAGE_TEMPLATE |
-| تمپلیت صفحه اول (پیشفرض: `home/index.html`) | HOME_PAGE_TEMPLATE |
-| توکن ربات تلگرام (دریافت از [@botfather](https://t.me/botfather)) | TELEGRAM_API_TOKEN |
-| آیدی عددی ادمین در تلگرام (دریافت از [@userinfobot](https://t.me/userinfobot)) | TELEGRAM_ADMIN_ID |
-| اجرای ربات از طریق پروکسی | TELEGRAM_PROXY_URL |
-| مدت زمان انقضا توکن دسترسی به پنل مرزبان, `0` به معنای بدون تاریخ انقضا است (پیشفرض: `1440`) | JWT_ACCESS_TOKEN_EXPIRE_MINUTES |
-| فعال سازی داکیومنتیشن به آدرس `/docs` و `/redoc`(پیشفرض: `False`) | DOCS |
-| فعالسازی حالت توسعه (development) (پیشفرض: `False`) | DEBUG |
-| WEBHOOK_ADDRESS | آدرس webhook که تغییرات حالت یک کاربر به آن ارسال میشوند. اگر این متغیر مقدار داشته باشد، ارسال پیامها انجام میشوند. |
-| WEBHOOK_SECRET | متغیری که به عنوان `x-webhook-secret` در header ارسال میشود. (پیشفرض: `None`) |
-| تعداد دفعاتی که برای ارسال یک پیام، در صورت تشخیص خطا در ارسال تلاش دوباره شود (پیشفرض `3`) | NUMBER_OF_RECURRENT_NOTIFICATIONS |
-| مدت زمان بین هر ارسال دوباره پیام در صورت تشخیص خطا در ارسال به ثانیه (پیشفرض: `180`) | RECURRENT_NOTIFICATIONS_TIMEOUT |
-| هنگام رسیدن مصرف کاربر به چه درصدی پیام اخطار به آدرس وبهوک ارسال شود (پیشفرض: `80`) | NOTIFY_REACHED_USAGE_PERCENT |
-| چند روز مانده به انتهای سرویس پیام اخطار به آدرس وبهوک ارسال شود (پیشفرض: `3`) | NOTIFY_DAYS_LEFT |
-
-
-# استفاده از API
-مرزبان به توسعه دهندگانAPI REST ارائه می دهد. برای مشاهده اسناد API در قالب Swagger UI یا ReDoc، متغیر `DOCS=True` را در تنظیمات خود ست کنید و در مرورگر به مسیر `/docs` و `/redoc` بروید.
-
-
-# پشتیبان گیری از مرزبان
-بهتر است همیشه از فایل های مرزبان خود نسخه پشتیبان تهیه کنید تا در صورت خرابی سیستم یا حذف تصادفی اطلاعات از دست نروند. مراحل تهیه نسخه پشتیبان از مرزبان به شرح زیر است:
-
-1. به طور پیش فرض، تمام فایل های مهم مرزبان در `/var/lib/marzban` ذخیره می شوند (در نسخه داکر). کل پوشه `/var/lib/marzban` را در یک مکان پشتیبان مورد نظر خود، مانند هارد دیسک خارجی یا فضای ذخیره سازی ابری کپی کنید.
-2. علاوه بر این، مطمئن شوید که از فایل env خود که حاوی متغیرهای تنظیمات شما است و همچنین فایل پیکربندی Xray خود نسخه پشتیبان تهیه کنید.
-
-با انجام این مراحل، می توانید اطمینان حاصل کنید که از تمام فایل ها و داده های مرزبان خود یک نسخه پشتیبان تهیه کرده اید. به خاطر داشته باشید که نسخه های پشتیبان خود را به طور مرتب به روز کنید تا آنها را به روز نگه دارید.
-
-
-# ربات تلگرام
-مرزبان دارای یک ربات تلگرام داخلی است که می تواند مدیریت سرور، ایجاد و حذف کاربر و ارسال نوتیفیکیشن را انجام دهد. این ربات را می توان با انجام چند مرحله ساده به راحتی فعال کرد
-
-برای فعال کردن ربات تلگرام:
-
-1. در تنظیمات، متغیر`TELEGRAM_API_TOKEN` را به API TOKEN ربات تلگرام خود تنظیم کنید.
-2. همینطور، متغیر`TELEGRAM_ADMIN_ID` را به شناسه عددی حساب تلگرام خود تنظیم کنید. شما میتوانید شناسه خود را از [@userinfobot](https://t.me/userinfobot) دریافت کنید.
-
-
-# رابط خط فرمان (CLI) مرزبان
-مرزبان دارای یک رابط خط فرمان (Command Line Interface / CLI) داخلی است که به مدیران اجازه می دهد با مرزبان ارتباط مستقیم داشته باشند.
-
-اگر از Docker برای مرزبان استفاده می کنید، بهتر است از دستور های `docker exec` یا `docker-compose exec` استفاده کنید تا به پوسته (shell) تعاملی کانتینر مرزبان دسترسی پیدا کنید.
-
-برای مثال، به پوشه ی `docker-compose.yml` مرزبان بروید و دستور زیر را اجرا کنید:
-
-```bash
-$ sudo docker-compose exec -it marzban bash
-```
-
-رابط خط فرمان (CLI) مرزبان از طریق دستور `marzban-cli` هرکجا در دسترس خواهد بود!
-
-برای کسب اطلاعات بیشتر می توانید [مستندات CLI مرزبان](./cli/README.md) را مطالعه کنید.
-
-
-# ارسال اعلانها به آدرس وبهوک
-شما میتوانید آدرسی را برای مرزبان فراهم کنید تا تغییرات کاربران را به صورت اعلان برای شما ارسال کند.
-
-اعلانها به صورت یک درخواست POST به آدرسی که در `WEBHOOK_ADDRESS` فراهم شده به همراه مقدار تعیین شده در `WEBHOOK_SECRET` به عنوان `x-webhook-secret` در header درخواست ارسال میشوند.
-
-نمونهای از درخواست ارسال شده توسط مرزبان:
-
-```
-Headers:
-Host: 0.0.0.0:9000
-User-Agent: python-requests/2.28.1
-Accept-Encoding: gzip, deflate
-Accept: */*
-Connection: keep-alive
-x-webhook-secret: something-very-very-secret
-Content-Length: 107
-Content-Type: application/json
-
-
-
-Body:
-{"username": "marzban_test_user", "action": "user_updated", "enqueued_at": 1680506457.636369, "tries": 0}
-```
-
-انواع مختلف actionهایی که مرزبان ارسال میکند: `user_created`, `user_updated`, `user_deleted`, `user_limited`, `user_expired`, `user_disabled`, `user_enabled`
-
-
-# کمک مالی
-اگر مرزبان را برای شما مفید بوده و میخواهید از توسعه آن حمایت کنید، میتوانید در یکی از طریق یکی از شبکه های کریپتو زیر کمک مالی کنید:
-
-- شبکه TRON (TRX): `TX8kJoDcowQPBFTYHAJR36GyoUKP1Xwzkb`
-- شبکه ETH، BNB، MATIC: `0xFdc9ad32454FA4fc4733270FCc12ddBFb68b83F7`
-- شبکه بیت کوین: `bc1qpys2nefgsjjgae3g3gqy9crsv3h3rm96tlkz0v`
-- شبکه Dogecoin: `DJAocBAu8y6LwhDKUktLAyzV8xyoFeHH6R`
-- شبکه TON: `EQAVf-7hAXHlF-jmrKE44oBwN7HGQFVBLAtrOsev5K4qR4P8`
-
-
-از حمایت شما متشکرم!
-
-
-# لایسنس
-
-توسعه یافته شده در [ناشناس!] و منتشر شده تحت لایسنس [AGPL-3.0](./LICENSE).
-
-
-# مشارکت در توسعه
-این ❤️🔥 تقدیم به همهی کسایی که در توسعه مرزبان مشارکت میکنند! اگر میخواهید مشارکت داشته باشید، لطفاً [دستورالعملهای مشارکت](CONTRIBUTING.md) ما را بررسی کنید و در صورت تمایل Pull Request ارسال کنید یا یک Issue باز کنید. همچنین از شما برای پیوستن به گروه [تلگرام](https://t.me/gozargah_marzban) ما برای حمایت یا کمک به راهنمایی استقبال می کنیم.
-
-لطفا اگر امکانش رو دارید، با بررسی [لیست کار ها](https://github.com/gozargah/marzban/issues) به ما در بهبود مرزبان کمک کنید. کمک های شما با آغوش باز پذیرفته میشه.
-
-
-با تشکر از همه همکارانی که به بهبود مرزبان کمک کردند:
-
-
-## Оглавление
-
-- [Введение](#введение)
- - [Почему Marzban](#почему-marzban)
- - [Функции](#функции)
-- [Руководство по установке](#руководство-по-установке)
-- [Конфигурация](#конфигурация)
-- [API](#api)
-- [Backup](#backup)
-- [Telegram бот](#telegram-bot)
-- [Marzban CLI](#marzban-cli)
-- [Marzban Node](#marzban-node)
-- [Webhook уведомления](#webhook-уведомления)
-- [Поддержка](#поддержка)
-- [Лицензия](#лицензия)
-- [Участники](#участники)
-
-# Введение
-
-Marzban (Персидское слово "Пограничник" - произносится /mærz'ban/) — это инструмент управления прокси-серверами, который предоставляет простой и удобный пользовательский интерфейс для управления сотнями учетных записей прокси на базе [Xray-core](https://github.com/XTLS/Xray-core) и созданный с использованием Python и ReactJS.
-
-## Почему Marzban?
-
-Marzban удобен в использовании, многофункционален и надежен. Он позволяет создавать различные прокси для пользователей без сложной настройки. С помощью встроенного веб-интерфейса можно контролировать, изменять и ограничивать пользователей.
-
-### Функции
-
-- Готовый **Web UI**
-- **REST API** бэкэнд
-- Поддержка [**множества узлов**](#marzban-node) (для распределения инфраструктуры и масштабируемости)
-- Поддержка протоколов **Vmess**, **VLESS**, **Trojan** и **Shadowsocks**
-- Возможность активации **нескольких протоколов** для каждого пользователя
-- **Несколько пользователей** на одном inbound
-- **Несколько inbound** на **одном порту** (поддержка fallbacks)
-- Ограничения на основе **количества трафика** и **срока действия**
-- Ограничение трафика по **периодам** (например выдавать трафик на день, неделю и т. д.)
-- Поддержка **ссылок-подписок** совместимых с **V2ray** _(такие как V2RayNG, OneClick, Nekoray, и др.)_, **Clash** и **ClashMeta**
-- Автоматическая генерация **Ссылок** и **QRcode**
-- Мониторинг ресурсов сервера и **использования трафика**
-- Настраиваемые конфигурации xray
-- Поддержка **TLS** и **REALITY**
-- Встроенный **Telegram Bot**
-- Встроенный **Command Line Interface (CLI)**
-- **Несколько языков**
-- Поддержка **Нескольких администраторов** (WIP)
-
-# Руководство по установке
-
-Выполните быструю установку с помощью следующей команды:
-
-```bash
-sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install
-```
-
-Когда установка будет завершена:
-- Вы увидите логи, которые можно остановить, нажав `Ctrl+C` или закрыв терминал.
-- Файлы Marzban будут размещены по адресу `/opt/marzban`.
-- Файл конфигурации будет размещен по адресу `/opt/marzban/.env` (см. [Конфигурация](#конфигурация)).
-- Файлы с данными будут размещены по адресу `/var/lib/marzban`.
-- Вы можете получить доступ к панели управления, введя в адресной строке `http://YOUR_SERVER_IP:8000/dashboard/` (заменив YOUR_SERVER_IP на актуальный IP адрес вашего сервера).
-
-Далее, Вам нужно создать главного администратора для входа в панель управления Marzban, выполнив следующую команду:
-
-```bash
-marzban cli admin create --sudo
-```
-
-Готово! Теперь Вы можете войти, используя данные своей учетной записи.
-
-Для того, чтобы увидеть справочное сообщение от скрипта Marzban, выполните команду:
-
-```bash
-marzban --help
-```
-
-Если Вы хотите запустить проект, используя его исходный код, обратитесь к разделу ниже
-
-
Ручная установка
-
-Установите xray на Ваш сервер.
-
-Вы можете сделать это, используя [Xray-install](https://github.com/XTLS/Xray-install):
-
-```bash
-bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
-```
-
-Клонируйте этот проект и установите зависимости (Вам нужен Python >= 3.8):
-
-```bash
-git clone https://github.com/Gozargah/Marzban.git
-cd Marzban
-wget -qO- https://bootstrap.pypa.io/get-pip.py | python3 -
-python3 -m pip install -r requirements.txt
-```
-
-В качестве альтернативы для создания виртуальной среды можно использовать [Python Virtualenv](https://pypi.org/project/virtualenv/).
-
-Затем выполните следующую команду для запуска скрипта миграции базы данных:
-
-```bash
-alembic upgrade head
-```
-
-Если Вы хотите использовать `marzban-cli`, необходимо связать его с файлом в `$PATH`, сделать его исполняемым и установить:
-
-```bash
-sudo ln -s $(pwd)/marzban-cli.py /usr/bin/marzban-cli
-sudo chmod +x /usr/bin/marzban-cli
-marzban-cli completion install
-```
-
-Теперь настало время настройки.
-
-Создайте копию файла `.env.example`, посмотрите его и отредактируйте с помощью текстового редактора,например `nano`.
-
-Возможно, вам захочется изменить учетные данные администратора.
-
-```bash
-cp .env.example .env
-nano .env
-```
-
-> Проверьте раздел [Конфигурации](#конфигурация) для получения большей информации.
-
-В завершение запустите приложение с помощью следующей команды:
-
-```bash
-python3 main.py
-```
-
-Для запуска с помощью linux systemctl (скопируйте файл marzban.service в `/var/lib/marzban/marzban.service`):
-
-```
-systemctl enable /var/lib/marzban/marzban.service
-systemctl start marzban
-```
-
-Для использования с nginx:
-
-```
-server {
- listen 443 ssl http2;
- listen [::]:443 ssl http2;
- server_name example.com;
-
- ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
- ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
-
- location ~* /(dashboard|api|docs|redoc|openapi.json) {
- proxy_pass http://0.0.0.0:8000;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
-
- # xray-core ws-path: /
- # client ws-path: /marzban/me/2087
- #
- # All traffic is proxed through port 443, and send to the xray port(2087, 2088 etc.).
- # The '/marzban' in location regex path can changed any characters by yourself.
- #
- # /${path}/${username}/${xray-port}
- location ~* /marzban/.+/(.+)$ {
- proxy_redirect off;
- proxy_pass http://127.0.0.1:$1/;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection "upgrade";
- proxy_set_header Host $http_host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
-}
-```
-
-или:
-
-```
-server {
- listen 443 ssl http2;
- listen [::]:443 ssl http2;
- server_name marzban.example.com;
-
- ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
- ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
-
- location / {
- proxy_pass http://0.0.0.0:8000;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
-}
-```
-
-По умолчанию приложение будет запускаться на `http://localhost:8000/dashboard`. Вы можете настроить его, изменив переменные окружения `UVICORN_HOST` и `UVICORN_PORT`.
-
-
-# Конфигурация
-
-> Ниже приведены настройки, которые можно задать с помощью переменных окружения поместив их в файл `.env`.
-
-| Перменная | Описание |
-| --------------------------------- | ----------------------------------------------------------------------------------------------------- |
-| SUDO_USERNAME | Имя пользователя главного администратора |
-| SUDO_PASSWORD | Пароль главного администратора |
-| SQLALCHEMY_DATABASE_URL | Путь к файлу БД ([SQLAlchemy's docs](https://docs.sqlalchemy.org/en/20/core/engines.html#database-urls)) |
-| UVICORN_HOST | Привязка приложения к хосту (по умолчанию: `0.0.0.0`) |
-| UVICORN_PORT | Привязка приложения к порту (по умолчанию: `8000`) |
-| UVICORN_UDS | Привязка приложения к UNIX domain socket |
-| UVICORN_SSL_CERTFILE | Адрес файла сертификата SSL |
-| UVICORN_SSL_KEYFILE | Адрес файла ключа SSL |
-| XRAY_JSON | Адрес файла JSON конфигурации Xray. (по умолчанию: `xray_config.json`) |
-| XRAY_EXECUTABLE_PATH | Путь к бинарникам Xray (по умолчанию: `/usr/local/bin/xray`) |
-| XRAY_ASSETS_PATH | Путь к папке с рессурсными файлами для Xray (файлы geoip.dat и geosite.dat) (по умолчанию: `/usr/local/share/xray`) |
-| XRAY_SUBSCRIPTION_URL_PREFIX | Префикс адреса подписки |
-| XRAY_FALLBACKS_INBOUND_TAG | Если вы используете входящее соединение с несколькими резервными вариантами, укажите здесь его тег
-| XRAY_EXCLUDE_INBOUND_TAGS | Теги входящих соединений, которые не требуют управления и не должны быть включены в список прокси
-| CUSTOM_TEMPLATES_DIRECTORY | Путь к папке с пользовательскими шаблонами (по умолчанию: `app/templates`) |
-| CLASH_SUBSCRIPTION_TEMPLATE | Шаблон для создания конфигурации Clash (по умолчанию: `clash/default.yml`) |
-| SUBSCRIPTION_PAGE_TEMPLATE | Шаблон для страницы подписки (по умолчанию: `subscription/index.html`) |
-| HOME_PAGE_TEMPLATE | Шаблон главной страницы (по умолчанию: `home/index.html`) |
-| TELEGRAM_API_TOKEN | Токен Telegram-бота (полученный от [@botfather](https://t.me/botfather)) |
-| TELEGRAM_ADMIN_ID | Числовой идентификатор администратора в Telegram (полученный от [@userinfobot](https://t.me/userinfobot)) |
-| TELEGRAM_PROXY_URL | URL прокси для запуска Telegram-бота (если серверы Telegram заблокированы на вашем сервере). |
-| JWT_ACCESS_TOKEN_EXPIRE_MINUTES | Время истечения срока действия доступного токена в минутах, `0` означает "без истечения срока действия" (по умолчанию: `1440`) |
-| DOCS | Активация документации API по адресам `/docs` и `/redoc`. (по умолчанию: `False`) |
-| DEBUG | Активация режима разработки (development) (по умолчанию: `False`) |
-| WEBHOOK_ADDRESS | Адрес Webhook для отправки уведомлений. Уведомления Webhook будут отправляться, если это значение было установлено |
-| WEBHOOK_SECRET | Webhook secret будет передаваться с каждым запросом в виде `x-webhook-secret` в заголовке (по умолчанию: `None`) |
-| NUMBER_OF_RECURRENT_NOTIFICATIONS | Сколько раз повторять попытку отправки уведомления при обнаружении ошибки (по умолчанию: `3`) |
-| RECURRENT_NOTIFICATIONS_TIMEOUT | Тайм-аут между каждым повторным запросом при обнаружении ошибки в секундах (по умолчанию: `180`) |
-| NOTIFY_REACHED_USAGE_PERCENT | При каком проценте использования отправлять предупреждение (по умолчанию: `80`) |
-| NOTIFY_DAYS_LEFT | Когда отправлять предупреждение об истечении срока действия (по умолчанию: `3`) |
-
-# API
-
-Marzban предоставляет REST API, позволяющий разработчикам программно взаимодействовать с сервисами Marzban. Для просмотра документации по API в Swagger UI или ReDoc установите переменную `DOCS=True` и перейдите по ссылкам `/docs` и `/redoc`.
-
-# Backup
-
-Всегда полезно регулярно создавать резервные копии файлов Marzban, чтобы предотвратить потерю данных в случае системных сбоев или случайного удаления. Ниже приведены шаги для создания резервной копии Marzban:
-
-1. По умолчанию все важные файлы Marzban сохраняются в папке `/var/lib/marzban` (в версиях Docker). Скопируйте весь каталог `/var/lib/marzban` в выбранное вами место резервного копирования, например на внешний жесткий диск или в облачное хранилище.
-2. Кроме того, не забудьте сделать резервную копию файла env, содержащего переменные конфигурации, а также файла конфигурации Xray. Если вы устанавливали Marzban с помощью marzban-scripts (рекомендуемый подход к установке), то env и другие конфигурации должны находиться в каталоге `/opt/marzban/`.
-
-Выполнив эти действия, вы сможете обеспечить резервное копирование всех файлов и данных Marzban, а также переменных конфигурации и конфигурации Xray на случай, если в будущем потребуется их восстановить. Не забывайте регулярно обновлять резервные копии, чтобы поддерживать их в актуальном состоянии.
-
-# Telegram Bot
-
-Marzban поставляется с встроенным ботом Telegram, который может управлять сервером, создавать и удалять пользователей, а также отправлять уведомления. Этот бот можно легко включить, выполнив несколько простых шагов, и он предоставляет удобный способ взаимодействия с Marzban без необходимости каждый раз заходить на сервер.
-
-Чтобы включить Telegram-бота, выполните следующие действия:
-
-1. установите `TELEGRAM_API_TOKEN` в качестве API-токена вашего бота.
-2. установите `TELEGRAM_ADMIN_ID` в качестве цифрового ID вашего Telegram-аккаунта, который вы можете получить от [@userinfobot](https://t.me/userinfobot)
-
-# Marzban CLI
-
-Marzban поставляется с встроенным CLI под названием `marzban-cli`, который позволяет администраторам напрямую взаимодействовать с ним.
-
-Если вы установили Marzban с помощью скрипта установки, то доступ к командам cli можно получить, выполнив команду:
-
-```bash
-marzban cli [OPTIONS] COMMAND [ARGS]...
-```
-
-Для получения дополнительной информации можно ознакомиться с [документацией по Marzban CLI](./cli/README.md).
-
-# Marzban Node
-
-Проект Marzban представляет [Marzban-node](https://github.com/gozargah/marzban-node), который помогает Вам в распределении инфраструктуры. С помощью Marzban-node можно распределить инфраструктуру по нескольким узлам, получив такие преимущества, как высокая доступность, масштабируемость и гибкость. Marzban-node позволяет пользователям подключаться к различным серверам, предоставляя им гибкость в выборе, а не ограничиваться только одним сервером.
-Более подробная информация и инструкции по установке приведены в [официальной документации Marzban-node](https://github.com/gozargah/marzban-node).
-
-
-# Webhook уведомления
-
-Вы можете задать адрес webhook, и Marzban будет отправлять уведомления на этот адрес.
-
-Запросы будут отправляться в виде POST-запроса на адрес, указанный в `WEBHOOK_ADDRESS`, с `WEBHOOK_SECRET` в качестве `x-webhook-secret` в заголовках.
-
-Пример запроса, отправленного Marzban:
-
-```
-Headers:
-Host: 0.0.0.0:9000
-User-Agent: python-requests/2.28.1
-Accept-Encoding: gzip, deflate
-Accept: */*
-Connection: keep-alive
-x-webhook-secret: something-very-very-secret
-Content-Length: 107
-Content-Type: application/json
-
-
-
-Body:
-{"username": "marzban_test_user", "action": "user_updated", "enqueued_at": 1680506457.636369, "tries": 0}
-```
-
-Различные типы действий: `user_created`, `user_updated`, `user_deleted`, `user_limited`, `user_expired`, `user_disabled`, `user_enabled`
-
-# Поддержка
-
-Если вы нашли Marzban полезным и хотели бы поддержать его развитие, вы можете сделать пожертвование в одной из следующих криптовалютных сетей:
-
-- TRON network (TRC20): `TX8kJoDcowQPBFTYHAJR36GyoUKP1Xwzkb`
-- ETH, BNB, MATIC network (ERC20, BEP20): `0xFdc9ad32454FA4fc4733270FCc12ddBFb68b83F7`
-- Bitcoin network: `bc1qpys2nefgsjjgae3g3gqy9crsv3h3rm96tlkz0v`
-- Dogecoin network: `DJAocBAu8y6LwhDKUktLAyzV8xyoFeHH6R`
-- TON network: `EQAVf-7hAXHlF-jmrKE44oBwN7HGQFVBLAtrOsev5K4qR4P8`
-
-Спасибо за поддержку!
-
-# Лицензия
-
-Сделано в [Unknown!] и опубликовано под [AGPL-3.0](./LICENSE).
-
-# Участники
-
-Мы ❤️🔥 участников проекта! Если вы хотите внести свой вклад, пожалуйста, ознакомьтесь с нашим [Contributing Guidelines](CONTRIBUTING.md) и не стесняйтесь отправлять запросы на исправление ошибок или сообщить о проблеме. Мы также приглашаем вас присоединиться к нашей группе [Telegram](https://t.me/gozargah_marzban) для получения поддержки.
-
-Проверьте [open issues](https://github.com/gozargah/marzban/issues), чтобы помочь развитию этого проекта.
-
-
-Спасибо всем участникам, благодаря которым Marzban становится лучше:
-
-
-
-## 目录
-- [概览](#概览)
- - [为什么要使用 Marzban?](#为什么要使用-marzban)
- - [特性](#特性)
-- [安装指南](#安装指南)
-- [配置](#配置)
-- [如何使用 API](#如何使用-api)
-- [如何备份 Marzban](#如何备份-marzban)
-- [Telegram bot](#telegram-bot)
-- [捐赠](#捐赠)
-- [许可](#许可)
-- [贡献者](#贡献者)
-
-
-# 概览
-
-Marzban(Marzban一词源自波斯语,意为“边境警卫”,发音为 /mærz'ban/)是一个代理管理工具,提供简单易用的用户界面,可管理数百个代理账户,由 [Xray-core](https://github.com/XTLS/Xray-core) 提供支持,使用 Python 和 Reactjs 构建。
-
-
-
-## 为什么要使用 Marzban?
-
-Marzban 是一个用户友好、功能丰富且可靠的工具。它让您可以为用户创建不同的代理,无需进行任何复杂的配置。通过其内置的 Web 界面,您可以监视、修改和限制用户。
-
-### 特性
-
-- 内置 **Web 界面**
-- 完全支持 **REST API** 的后端
-- 支持 **Vmess**、**VLESS**、**Trojan** 和 **Shadowsocks** 协议
-- 单用户的**多协议**支持
-- 单入站的**多用户**支持
-- 单端口的**多入站**支持(使用 fallbacks)
-- **流量**和**过期日期**限制
-- 周期性的流量限制(例如每天、每周等)
-- 兼容 **V2ray** 的**订阅链接**(例如 V2RayNG、OneClick、Nekoray 等)和 **Clash**
-- 自动化的**分享链接**和**二维码**生成器
-- 系统监控和**流量统计**
-- 可自定义的 xray 配置
-- **TLS** 支持
-- 集成的 **Telegram Bot**
-- **多管理员**支持(WIP)
-
-
-# 安装指南
-Run the following command
-
-```bash
-sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install
-```
-
-Once the installation is complete:
-
-- You will see the logs that you can stop watching them by closing the terminal or pressing `Ctrl+C`
-- The Marzban files will be located at `/opt/marzban`
-- The configuration file can be found at `/opt/marzban/.env` (refer to [configurations](#configuration) section to see variables)
-- The data files will be placed at `/usr/lib/marzban`
-- You can access the Marzban dashboard by opening a web browser and navigating to `http://YOUR_SERVER_IP:8000/dashboard/` (replace YOUR_SERVER_IP with the actual IP address of your server)
-
-Next, you need to create a sudo admin for logging into the Marzban dashboard by the following command
-
-```bash
-marzban cli admin create --sudo
-```
-
-That's it! You can login to your dashboard using these credentials
-
-To see the help message of the Marzban script, run the following command
-
-```bash
-marzban --help
-```
-
-If you are eager to run the project using the source code, check the section below
-
-