| 1 |
a47eb4c |
Dawsh |
2y ago |
<p align="center"> |
| 2 |
a47eb4c |
Dawsh |
2y ago |
<a href="https://github.com/gozargah/marzban" target="_blank" rel="noopener noreferrer"> |
| 3 |
a47eb4c |
Dawsh |
2y ago |
<picture> |
| 4 |
a47eb4c |
Dawsh |
2y ago |
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/Gozargah/Marzban-docs/raw/master/screenshots/logo-dark.png"> |
| 5 |
a47eb4c |
Dawsh |
2y ago |
<img width="160" height="160" src="https://github.com/Gozargah/Marzban-docs/raw/master/screenshots/logo-light.png"> |
| 6 |
a47eb4c |
Dawsh |
2y ago |
</picture> |
| 7 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 8 |
a47eb4c |
Dawsh |
2y ago |
</p> |
| 9 |
a47eb4c |
Dawsh |
2y ago |
|
| 10 |
a47eb4c |
Dawsh |
2y ago |
<h1 align="center"/>Marzban</h1> |
| 11 |
a47eb4c |
Dawsh |
2y ago |
|
| 12 |
a47eb4c |
Dawsh |
2y ago |
<p align="center"> |
| 13 |
a47eb4c |
Dawsh |
2y ago |
Унифицированное решение с графическим интерфейсом, устойчивое к цензуре, на базе <a href="https://github.com/XTLS/Xray-core">Xray</a> |
| 14 |
a47eb4c |
Dawsh |
2y ago |
</p> |
| 15 |
a47eb4c |
Dawsh |
2y ago |
|
| 16 |
a47eb4c |
Dawsh |
2y ago |
<br/> |
| 17 |
a47eb4c |
Dawsh |
2y ago |
<p align="center"> |
| 18 |
a47eb4c |
Dawsh |
2y ago |
<a href="#"> |
| 19 |
a47eb4c |
Dawsh |
2y ago |
<img src="https://img.shields.io/github/actions/workflow/status/gozargah/marzban/build.yml?style=flat-square" /> |
| 20 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 21 |
a47eb4c |
Dawsh |
2y ago |
<a href="https://hub.docker.com/r/gozargah/marzban" target="_blank"> |
| 22 |
a47eb4c |
Dawsh |
2y ago |
<img src="https://img.shields.io/docker/pulls/gozargah/marzban?style=flat-square&logo=docker" /> |
| 23 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 24 |
a47eb4c |
Dawsh |
2y ago |
<a href="#"> |
| 25 |
a47eb4c |
Dawsh |
2y ago |
<img src="https://img.shields.io/github/license/gozargah/marzban?style=flat-square" /> |
| 26 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 27 |
a47eb4c |
Dawsh |
2y ago |
<a href="https://t.me/gozargah_marzban" target="_blank"> |
| 28 |
a47eb4c |
Dawsh |
2y ago |
<img src="https://img.shields.io/badge/telegram-group-blue?style=flat-square&logo=telegram" /> |
| 29 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 30 |
a47eb4c |
Dawsh |
2y ago |
<a href="#"> |
| 31 |
a47eb4c |
Dawsh |
2y ago |
<img src="https://img.shields.io/badge/twitter-commiunity-blue?style=flat-square&logo=twitter" /> |
| 32 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 33 |
a47eb4c |
Dawsh |
2y ago |
<a href="#"> |
| 34 |
a47eb4c |
Dawsh |
2y ago |
<img src="https://img.shields.io/github/stars/gozargah/marzban?style=social" /> |
| 35 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 36 |
a47eb4c |
Dawsh |
2y ago |
</p> |
| 37 |
a47eb4c |
Dawsh |
2y ago |
|
| 38 |
a47eb4c |
Dawsh |
2y ago |
<p align="center"> |
| 39 |
a47eb4c |
Dawsh |
2y ago |
<a href="./README.md"> |
| 40 |
a47eb4c |
Dawsh |
2y ago |
English |
| 41 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 42 |
a47eb4c |
Dawsh |
2y ago |
/ |
| 43 |
a47eb4c |
Dawsh |
2y ago |
<a href="./README-fa.md"> |
| 44 |
a47eb4c |
Dawsh |
2y ago |
فارسی |
| 45 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 46 |
a47eb4c |
Dawsh |
2y ago |
/ |
| 47 |
a47eb4c |
Dawsh |
2y ago |
<a href="./README-zh-cn.md"> |
| 48 |
a47eb4c |
Dawsh |
2y ago |
简体中文 |
| 49 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 50 |
a47eb4c |
Dawsh |
2y ago |
/ |
| 51 |
a47eb4c |
Dawsh |
2y ago |
<a href="./README-ru.md"> |
| 52 |
a47eb4c |
Dawsh |
2y ago |
Русский |
| 53 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 54 |
a47eb4c |
Dawsh |
2y ago |
</p> |
| 55 |
a47eb4c |
Dawsh |
2y ago |
|
| 56 |
a47eb4c |
Dawsh |
2y ago |
<p align="center"> |
| 57 |
a47eb4c |
Dawsh |
2y ago |
<a href="https://github.com/gozargah/marzban" target="_blank" rel="noopener noreferrer" > |
| 58 |
a47eb4c |
Dawsh |
2y ago |
<img src="https://github.com/Gozargah/Marzban-docs/raw/master/screenshots/preview.png" alt="Marzban screenshots" width="600" height="auto"> |
| 59 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 60 |
a47eb4c |
Dawsh |
2y ago |
</p> |
| 61 |
a47eb4c |
Dawsh |
2y ago |
|
| 62 |
a47eb4c |
Dawsh |
2y ago |
## Оглавление |
| 63 |
a47eb4c |
Dawsh |
2y ago |
|
| 64 |
a47eb4c |
Dawsh |
2y ago |
- [Введение](#введение) |
| 65 |
a47eb4c |
Dawsh |
2y ago |
- [Почему Marzban](#почему-marzban) |
| 66 |
a47eb4c |
Dawsh |
2y ago |
- [Функции](#функции) |
| 67 |
a47eb4c |
Dawsh |
2y ago |
- [Руководство по установке](#руководство-по-установке) |
| 68 |
a47eb4c |
Dawsh |
2y ago |
- [Конфигурация](#конфигурация) |
| 69 |
a47eb4c |
Dawsh |
2y ago |
- [API](#api) |
| 70 |
a47eb4c |
Dawsh |
2y ago |
- [Backup](#backup) |
| 71 |
a47eb4c |
Dawsh |
2y ago |
- [Telegram бот](#telegram-bot) |
| 72 |
a47eb4c |
Dawsh |
2y ago |
- [Marzban CLI](#marzban-cli) |
| 73 |
a47eb4c |
Dawsh |
2y ago |
- [Marzban Node](#marzban-node) |
| 74 |
a47eb4c |
Dawsh |
2y ago |
- [Webhook уведомления](#webhook-уведомления) |
| 75 |
a47eb4c |
Dawsh |
2y ago |
- [Поддержка](#поддержка) |
| 76 |
a47eb4c |
Dawsh |
2y ago |
- [Лицензия](#лицензия) |
| 77 |
a47eb4c |
Dawsh |
2y ago |
- [Участники](#участники) |
| 78 |
a47eb4c |
Dawsh |
2y ago |
|
| 79 |
a47eb4c |
Dawsh |
2y ago |
# Введение |
| 80 |
a47eb4c |
Dawsh |
2y ago |
|
| 81 |
a47eb4c |
Dawsh |
2y ago |
Marzban (Персидское слово "Пограничник" - произносится /mærz'ban/) — это инструмент управления прокси-серверами, который предоставляет простой и удобный пользовательский интерфейс для управления сотнями учетных записей прокси на базе [Xray-core](https://github.com/XTLS/Xray-core) и созданный с использованием Python и ReactJS. |
| 82 |
a47eb4c |
Dawsh |
2y ago |
|
| 83 |
a47eb4c |
Dawsh |
2y ago |
## Почему Marzban? |
| 84 |
a47eb4c |
Dawsh |
2y ago |
|
| 85 |
a47eb4c |
Dawsh |
2y ago |
Marzban удобен в использовании, многофункционален и надежен. Он позволяет создавать различные прокси для пользователей без сложной настройки. С помощью встроенного веб-интерфейса можно контролировать, изменять и ограничивать пользователей. |
| 86 |
a47eb4c |
Dawsh |
2y ago |
|
| 87 |
a47eb4c |
Dawsh |
2y ago |
### Функции |
| 88 |
a47eb4c |
Dawsh |
2y ago |
|
| 89 |
a47eb4c |
Dawsh |
2y ago |
- Готовый **Web UI** |
| 90 |
a47eb4c |
Dawsh |
2y ago |
- **REST API** бэкэнд |
| 91 |
a47eb4c |
Dawsh |
2y ago |
- Поддержка [**множества узлов**](#marzban-node) (для распределения инфраструктуры и масштабируемости) |
| 92 |
a47eb4c |
Dawsh |
2y ago |
- Поддержка протоколов **Vmess**, **VLESS**, **Trojan** и **Shadowsocks** |
| 93 |
a47eb4c |
Dawsh |
2y ago |
- Возможность активации **нескольких протоколов** для каждого пользователя |
| 94 |
a47eb4c |
Dawsh |
2y ago |
- **Несколько пользователей** на одном inbound |
| 95 |
a47eb4c |
Dawsh |
2y ago |
- **Несколько inbound** на **одном порту** (поддержка fallbacks) |
| 96 |
a47eb4c |
Dawsh |
2y ago |
- Ограничения на основе **количества трафика** и **срока действия** |
| 97 |
a47eb4c |
Dawsh |
2y ago |
- Ограничение трафика по **периодам** (например выдавать трафик на день, неделю и т. д.) |
| 98 |
a47eb4c |
Dawsh |
2y ago |
- Поддержка **ссылок-подписок** совместимых с **V2ray** _(такие как V2RayNG, OneClick, Nekoray, и др.)_, **Clash** и **ClashMeta** |
| 99 |
a47eb4c |
Dawsh |
2y ago |
- Автоматическая генерация **Ссылок** и **QRcode** |
| 100 |
a47eb4c |
Dawsh |
2y ago |
- Мониторинг ресурсов сервера и **использования трафика** |
| 101 |
a47eb4c |
Dawsh |
2y ago |
- Настраиваемые конфигурации xray |
| 102 |
a47eb4c |
Dawsh |
2y ago |
- Поддержка **TLS** и **REALITY** |
| 103 |
a47eb4c |
Dawsh |
2y ago |
- Встроенный **Telegram Bot** |
| 104 |
a47eb4c |
Dawsh |
2y ago |
- Встроенный **Command Line Interface (CLI)** |
| 105 |
a47eb4c |
Dawsh |
2y ago |
- **Несколько языков** |
| 106 |
a47eb4c |
Dawsh |
2y ago |
- Поддержка **Нескольких администраторов** (WIP) |
| 107 |
a47eb4c |
Dawsh |
2y ago |
|
| 108 |
a47eb4c |
Dawsh |
2y ago |
# Руководство по установке |
| 109 |
a47eb4c |
Dawsh |
2y ago |
|
| 110 |
a47eb4c |
Dawsh |
2y ago |
Выполните быструю установку с помощью следующей команды: |
| 111 |
a47eb4c |
Dawsh |
2y ago |
|
| 112 |
a47eb4c |
Dawsh |
2y ago |
```bash |
| 113 |
a47eb4c |
Dawsh |
2y ago |
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install |
| 114 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 115 |
a47eb4c |
Dawsh |
2y ago |
|
| 116 |
a47eb4c |
Dawsh |
2y ago |
Когда установка будет завершена: |
| 117 |
a47eb4c |
Dawsh |
2y ago |
- Вы увидите логи, которые можно остановить, нажав `Ctrl+C` или закрыв терминал. |
| 118 |
a47eb4c |
Dawsh |
2y ago |
- Файлы Marzban будут размещены по адресу `/opt/marzban`. |
| 119 |
a47eb4c |
Dawsh |
2y ago |
- Файл конфигурации будет размещен по адресу `/opt/marzban/.env` (см. [Конфигурация](#конфигурация)). |
| 120 |
a47eb4c |
Dawsh |
2y ago |
- Файлы с данными будут размещены по адресу `/var/lib/marzban`. |
| 121 |
a47eb4c |
Dawsh |
2y ago |
- Вы можете получить доступ к панели управления, введя в адресной строке `http://YOUR_SERVER_IP:8000/dashboard/` (заменив YOUR_SERVER_IP на актуальный IP адрес вашего сервера). |
| 122 |
a47eb4c |
Dawsh |
2y ago |
|
| 123 |
a47eb4c |
Dawsh |
2y ago |
Далее, Вам нужно создать главного администратора для входа в панель управления Marzban, выполнив следующую команду: |
| 124 |
a47eb4c |
Dawsh |
2y ago |
|
| 125 |
a47eb4c |
Dawsh |
2y ago |
```bash |
| 126 |
a47eb4c |
Dawsh |
2y ago |
marzban cli admin create --sudo |
| 127 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 128 |
a47eb4c |
Dawsh |
2y ago |
|
| 129 |
a47eb4c |
Dawsh |
2y ago |
Готово! Теперь Вы можете войти, используя данные своей учетной записи. |
| 130 |
a47eb4c |
Dawsh |
2y ago |
|
| 131 |
a47eb4c |
Dawsh |
2y ago |
Для того, чтобы увидеть справочное сообщение от скрипта Marzban, выполните команду: |
| 132 |
a47eb4c |
Dawsh |
2y ago |
|
| 133 |
a47eb4c |
Dawsh |
2y ago |
```bash |
| 134 |
a47eb4c |
Dawsh |
2y ago |
marzban --help |
| 135 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 136 |
a47eb4c |
Dawsh |
2y ago |
|
| 137 |
a47eb4c |
Dawsh |
2y ago |
Если Вы хотите запустить проект, используя его исходный код, обратитесь к разделу ниже |
| 138 |
a47eb4c |
Dawsh |
2y ago |
<details markdown="1"> |
| 139 |
a47eb4c |
Dawsh |
2y ago |
<summary><h3>Ручная установка</h3></summary> |
| 140 |
a47eb4c |
Dawsh |
2y ago |
|
| 141 |
a47eb4c |
Dawsh |
2y ago |
Установите xray на Ваш сервер. |
| 142 |
a47eb4c |
Dawsh |
2y ago |
|
| 143 |
a47eb4c |
Dawsh |
2y ago |
Вы можете сделать это, используя [Xray-install](https://github.com/XTLS/Xray-install): |
| 144 |
a47eb4c |
Dawsh |
2y ago |
|
| 145 |
a47eb4c |
Dawsh |
2y ago |
```bash |
| 146 |
a47eb4c |
Dawsh |
2y ago |
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install |
| 147 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 148 |
a47eb4c |
Dawsh |
2y ago |
|
| 149 |
a47eb4c |
Dawsh |
2y ago |
Клонируйте этот проект и установите зависимости (Вам нужен Python >= 3.8): |
| 150 |
a47eb4c |
Dawsh |
2y ago |
|
| 151 |
a47eb4c |
Dawsh |
2y ago |
```bash |
| 152 |
a47eb4c |
Dawsh |
2y ago |
git clone https://github.com/Gozargah/Marzban.git |
| 153 |
a47eb4c |
Dawsh |
2y ago |
cd Marzban |
| 154 |
a47eb4c |
Dawsh |
2y ago |
wget -qO- https://bootstrap.pypa.io/get-pip.py | python3 - |
| 155 |
a47eb4c |
Dawsh |
2y ago |
python3 -m pip install -r requirements.txt |
| 156 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 157 |
a47eb4c |
Dawsh |
2y ago |
|
| 158 |
a47eb4c |
Dawsh |
2y ago |
В качестве альтернативы для создания виртуальной среды можно использовать [Python Virtualenv](https://pypi.org/project/virtualenv/). |
| 159 |
a47eb4c |
Dawsh |
2y ago |
|
| 160 |
a47eb4c |
Dawsh |
2y ago |
Затем выполните следующую команду для запуска скрипта миграции базы данных: |
| 161 |
a47eb4c |
Dawsh |
2y ago |
|
| 162 |
a47eb4c |
Dawsh |
2y ago |
```bash |
| 163 |
a47eb4c |
Dawsh |
2y ago |
alembic upgrade head |
| 164 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 165 |
a47eb4c |
Dawsh |
2y ago |
|
| 166 |
a47eb4c |
Dawsh |
2y ago |
Если Вы хотите использовать `marzban-cli`, необходимо связать его с файлом в `$PATH`, сделать его исполняемым и установить: |
| 167 |
a47eb4c |
Dawsh |
2y ago |
|
| 168 |
a47eb4c |
Dawsh |
2y ago |
```bash |
| 169 |
a47eb4c |
Dawsh |
2y ago |
sudo ln -s $(pwd)/marzban-cli.py /usr/bin/marzban-cli |
| 170 |
a47eb4c |
Dawsh |
2y ago |
sudo chmod +x /usr/bin/marzban-cli |
| 171 |
a47eb4c |
Dawsh |
2y ago |
marzban-cli completion install |
| 172 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 173 |
a47eb4c |
Dawsh |
2y ago |
|
| 174 |
a47eb4c |
Dawsh |
2y ago |
Теперь настало время настройки. |
| 175 |
a47eb4c |
Dawsh |
2y ago |
|
| 176 |
a47eb4c |
Dawsh |
2y ago |
Создайте копию файла `.env.example`, посмотрите его и отредактируйте с помощью текстового редактора,например `nano`. |
| 177 |
a47eb4c |
Dawsh |
2y ago |
|
| 178 |
a47eb4c |
Dawsh |
2y ago |
Возможно, вам захочется изменить учетные данные администратора. |
| 179 |
a47eb4c |
Dawsh |
2y ago |
|
| 180 |
a47eb4c |
Dawsh |
2y ago |
```bash |
| 181 |
a47eb4c |
Dawsh |
2y ago |
cp .env.example .env |
| 182 |
a47eb4c |
Dawsh |
2y ago |
nano .env |
| 183 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 184 |
a47eb4c |
Dawsh |
2y ago |
|
| 185 |
a47eb4c |
Dawsh |
2y ago |
> Проверьте раздел [Конфигурации](#конфигурация) для получения большей информации. |
| 186 |
a47eb4c |
Dawsh |
2y ago |
|
| 187 |
a47eb4c |
Dawsh |
2y ago |
В завершение запустите приложение с помощью следующей команды: |
| 188 |
a47eb4c |
Dawsh |
2y ago |
|
| 189 |
a47eb4c |
Dawsh |
2y ago |
```bash |
| 190 |
a47eb4c |
Dawsh |
2y ago |
python3 main.py |
| 191 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 192 |
a47eb4c |
Dawsh |
2y ago |
|
| 193 |
a47eb4c |
Dawsh |
2y ago |
Для запуска с помощью linux systemctl (скопируйте файл marzban.service в `/var/lib/marzban/marzban.service`): |
| 194 |
a47eb4c |
Dawsh |
2y ago |
|
| 195 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 196 |
a47eb4c |
Dawsh |
2y ago |
systemctl enable /var/lib/marzban/marzban.service |
| 197 |
a47eb4c |
Dawsh |
2y ago |
systemctl start marzban |
| 198 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 199 |
a47eb4c |
Dawsh |
2y ago |
|
| 200 |
a47eb4c |
Dawsh |
2y ago |
Для использования с nginx: |
| 201 |
a47eb4c |
Dawsh |
2y ago |
|
| 202 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 203 |
a47eb4c |
Dawsh |
2y ago |
server { |
| 204 |
a47eb4c |
Dawsh |
2y ago |
listen 443 ssl http2; |
| 205 |
a47eb4c |
Dawsh |
2y ago |
listen [::]:443 ssl http2; |
| 206 |
a47eb4c |
Dawsh |
2y ago |
server_name example.com; |
| 207 |
a47eb4c |
Dawsh |
2y ago |
|
| 208 |
a47eb4c |
Dawsh |
2y ago |
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; |
| 209 |
a47eb4c |
Dawsh |
2y ago |
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; |
| 210 |
a47eb4c |
Dawsh |
2y ago |
|
| 211 |
a47eb4c |
Dawsh |
2y ago |
location ~* /(dashboard|api|docs|redoc|openapi.json) { |
| 212 |
a47eb4c |
Dawsh |
2y ago |
proxy_pass http://0.0.0.0:8000; |
| 213 |
a47eb4c |
Dawsh |
2y ago |
proxy_set_header Host $host; |
| 214 |
a47eb4c |
Dawsh |
2y ago |
proxy_set_header X-Real-IP $remote_addr; |
| 215 |
a47eb4c |
Dawsh |
2y ago |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
| 216 |
a47eb4c |
Dawsh |
2y ago |
} |
| 217 |
a47eb4c |
Dawsh |
2y ago |
|
| 218 |
a47eb4c |
Dawsh |
2y ago |
# xray-core ws-path: / |
| 219 |
a47eb4c |
Dawsh |
2y ago |
# client ws-path: /marzban/me/2087 |
| 220 |
a47eb4c |
Dawsh |
2y ago |
# |
| 221 |
a47eb4c |
Dawsh |
2y ago |
# All traffic is proxed through port 443, and send to the xray port(2087, 2088 etc.). |
| 222 |
a47eb4c |
Dawsh |
2y ago |
# The '/marzban' in location regex path can changed any characters by yourself. |
| 223 |
a47eb4c |
Dawsh |
2y ago |
# |
| 224 |
a47eb4c |
Dawsh |
2y ago |
# /${path}/${username}/${xray-port} |
| 225 |
a47eb4c |
Dawsh |
2y ago |
location ~* /marzban/.+/(.+)$ { |
| 226 |
a47eb4c |
Dawsh |
2y ago |
proxy_redirect off; |
| 227 |
a47eb4c |
Dawsh |
2y ago |
proxy_pass http://127.0.0.1:$1/; |
| 228 |
a47eb4c |
Dawsh |
2y ago |
proxy_http_version 1.1; |
| 229 |
a47eb4c |
Dawsh |
2y ago |
proxy_set_header Upgrade $http_upgrade; |
| 230 |
a47eb4c |
Dawsh |
2y ago |
proxy_set_header Connection "upgrade"; |
| 231 |
a47eb4c |
Dawsh |
2y ago |
proxy_set_header Host $http_host; |
| 232 |
a47eb4c |
Dawsh |
2y ago |
proxy_set_header X-Real-IP $remote_addr; |
| 233 |
a47eb4c |
Dawsh |
2y ago |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
| 234 |
a47eb4c |
Dawsh |
2y ago |
} |
| 235 |
a47eb4c |
Dawsh |
2y ago |
} |
| 236 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 237 |
a47eb4c |
Dawsh |
2y ago |
|
| 238 |
a47eb4c |
Dawsh |
2y ago |
или: |
| 239 |
a47eb4c |
Dawsh |
2y ago |
|
| 240 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 241 |
a47eb4c |
Dawsh |
2y ago |
server { |
| 242 |
a47eb4c |
Dawsh |
2y ago |
listen 443 ssl http2; |
| 243 |
a47eb4c |
Dawsh |
2y ago |
listen [::]:443 ssl http2; |
| 244 |
a47eb4c |
Dawsh |
2y ago |
server_name marzban.example.com; |
| 245 |
a47eb4c |
Dawsh |
2y ago |
|
| 246 |
a47eb4c |
Dawsh |
2y ago |
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; |
| 247 |
a47eb4c |
Dawsh |
2y ago |
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; |
| 248 |
a47eb4c |
Dawsh |
2y ago |
|
| 249 |
a47eb4c |
Dawsh |
2y ago |
location / { |
| 250 |
a47eb4c |
Dawsh |
2y ago |
proxy_pass http://0.0.0.0:8000; |
| 251 |
a47eb4c |
Dawsh |
2y ago |
proxy_set_header Host $host; |
| 252 |
a47eb4c |
Dawsh |
2y ago |
proxy_set_header X-Real-IP $remote_addr; |
| 253 |
a47eb4c |
Dawsh |
2y ago |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
| 254 |
a47eb4c |
Dawsh |
2y ago |
} |
| 255 |
a47eb4c |
Dawsh |
2y ago |
} |
| 256 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 257 |
a47eb4c |
Dawsh |
2y ago |
|
| 258 |
a47eb4c |
Dawsh |
2y ago |
По умолчанию приложение будет запускаться на `http://localhost:8000/dashboard`. Вы можете настроить его, изменив переменные окружения `UVICORN_HOST` и `UVICORN_PORT`. |
| 259 |
a47eb4c |
Dawsh |
2y ago |
</details> |
| 260 |
a47eb4c |
Dawsh |
2y ago |
|
| 261 |
a47eb4c |
Dawsh |
2y ago |
# Конфигурация |
| 262 |
a47eb4c |
Dawsh |
2y ago |
|
| 263 |
a47eb4c |
Dawsh |
2y ago |
> Ниже приведены настройки, которые можно задать с помощью переменных окружения поместив их в файл `.env`. |
| 264 |
a47eb4c |
Dawsh |
2y ago |
|
| 265 |
a47eb4c |
Dawsh |
2y ago |
| Перменная | Описание | |
| 266 |
a47eb4c |
Dawsh |
2y ago |
| --------------------------------- | ----------------------------------------------------------------------------------------------------- | |
| 267 |
a47eb4c |
Dawsh |
2y ago |
| SUDO_USERNAME | Имя пользователя главного администратора | |
| 268 |
a47eb4c |
Dawsh |
2y ago |
| SUDO_PASSWORD | Пароль главного администратора | |
| 269 |
a47eb4c |
Dawsh |
2y ago |
| SQLALCHEMY_DATABASE_URL | Путь к файлу БД ([SQLAlchemy's docs](https://docs.sqlalchemy.org/en/20/core/engines.html#database-urls)) | |
| 270 |
a47eb4c |
Dawsh |
2y ago |
| UVICORN_HOST | Привязка приложения к хосту (по умолчанию: `0.0.0.0`) | |
| 271 |
a47eb4c |
Dawsh |
2y ago |
| UVICORN_PORT | Привязка приложения к порту (по умолчанию: `8000`) | |
| 272 |
a47eb4c |
Dawsh |
2y ago |
| UVICORN_UDS | Привязка приложения к UNIX domain socket | |
| 273 |
a47eb4c |
Dawsh |
2y ago |
| UVICORN_SSL_CERTFILE | Адрес файла сертификата SSL | |
| 274 |
a47eb4c |
Dawsh |
2y ago |
| UVICORN_SSL_KEYFILE | Адрес файла ключа SSL | |
| 275 |
a47eb4c |
Dawsh |
2y ago |
| XRAY_JSON | Адрес файла JSON конфигурации Xray. (по умолчанию: `xray_config.json`) | |
| 276 |
a47eb4c |
Dawsh |
2y ago |
| XRAY_EXECUTABLE_PATH | Путь к бинарникам Xray (по умолчанию: `/usr/local/bin/xray`) | |
| 277 |
a47eb4c |
Dawsh |
2y ago |
| XRAY_ASSETS_PATH | Путь к папке с рессурсными файлами для Xray (файлы geoip.dat и geosite.dat) (по умолчанию: `/usr/local/share/xray`) | |
| 278 |
a47eb4c |
Dawsh |
2y ago |
| XRAY_SUBSCRIPTION_URL_PREFIX | Префикс адреса подписки | |
| 279 |
a47eb4c |
Dawsh |
2y ago |
| XRAY_FALLBACKS_INBOUND_TAG | Если вы используете входящее соединение с несколькими резервными вариантами, укажите здесь его тег |
| 280 |
a47eb4c |
Dawsh |
2y ago |
| XRAY_EXCLUDE_INBOUND_TAGS | Теги входящих соединений, которые не требуют управления и не должны быть включены в список прокси |
| 281 |
a47eb4c |
Dawsh |
2y ago |
| CUSTOM_TEMPLATES_DIRECTORY | Путь к папке с пользовательскими шаблонами (по умолчанию: `app/templates`) | |
| 282 |
a47eb4c |
Dawsh |
2y ago |
| CLASH_SUBSCRIPTION_TEMPLATE | Шаблон для создания конфигурации Clash (по умолчанию: `clash/default.yml`) | |
| 283 |
a47eb4c |
Dawsh |
2y ago |
| SUBSCRIPTION_PAGE_TEMPLATE | Шаблон для страницы подписки (по умолчанию: `subscription/index.html`) | |
| 284 |
a47eb4c |
Dawsh |
2y ago |
| HOME_PAGE_TEMPLATE | Шаблон главной страницы (по умолчанию: `home/index.html`) | |
| 285 |
a47eb4c |
Dawsh |
2y ago |
| TELEGRAM_API_TOKEN | Токен Telegram-бота (полученный от [@botfather](https://t.me/botfather)) | |
| 286 |
a47eb4c |
Dawsh |
2y ago |
| TELEGRAM_ADMIN_ID | Числовой идентификатор администратора в Telegram (полученный от [@userinfobot](https://t.me/userinfobot)) | |
| 287 |
a47eb4c |
Dawsh |
2y ago |
| TELEGRAM_PROXY_URL | URL прокси для запуска Telegram-бота (если серверы Telegram заблокированы на вашем сервере). | |
| 288 |
a47eb4c |
Dawsh |
2y ago |
| JWT_ACCESS_TOKEN_EXPIRE_MINUTES | Время истечения срока действия доступного токена в минутах, `0` означает "без истечения срока действия" (по умолчанию: `1440`) | |
| 289 |
a47eb4c |
Dawsh |
2y ago |
| DOCS | Активация документации API по адресам `/docs` и `/redoc`. (по умолчанию: `False`) | |
| 290 |
a47eb4c |
Dawsh |
2y ago |
| DEBUG | Активация режима разработки (development) (по умолчанию: `False`) | |
| 291 |
a47eb4c |
Dawsh |
2y ago |
| WEBHOOK_ADDRESS | Адрес Webhook для отправки уведомлений. Уведомления Webhook будут отправляться, если это значение было установлено | |
| 292 |
a47eb4c |
Dawsh |
2y ago |
| WEBHOOK_SECRET | Webhook secret будет передаваться с каждым запросом в виде `x-webhook-secret` в заголовке (по умолчанию: `None`) | |
| 293 |
a47eb4c |
Dawsh |
2y ago |
| NUMBER_OF_RECURRENT_NOTIFICATIONS | Сколько раз повторять попытку отправки уведомления при обнаружении ошибки (по умолчанию: `3`) | |
| 294 |
a47eb4c |
Dawsh |
2y ago |
| RECURRENT_NOTIFICATIONS_TIMEOUT | Тайм-аут между каждым повторным запросом при обнаружении ошибки в секундах (по умолчанию: `180`) | |
| 295 |
a47eb4c |
Dawsh |
2y ago |
| NOTIFY_REACHED_USAGE_PERCENT | При каком проценте использования отправлять предупреждение (по умолчанию: `80`) | |
| 296 |
a47eb4c |
Dawsh |
2y ago |
| NOTIFY_DAYS_LEFT | Когда отправлять предупреждение об истечении срока действия (по умолчанию: `3`) | |
| 297 |
a47eb4c |
Dawsh |
2y ago |
|
| 298 |
a47eb4c |
Dawsh |
2y ago |
# API |
| 299 |
a47eb4c |
Dawsh |
2y ago |
|
| 300 |
a47eb4c |
Dawsh |
2y ago |
Marzban предоставляет REST API, позволяющий разработчикам программно взаимодействовать с сервисами Marzban. Для просмотра документации по API в Swagger UI или ReDoc установите переменную `DOCS=True` и перейдите по ссылкам `/docs` и `/redoc`. |
| 301 |
a47eb4c |
Dawsh |
2y ago |
|
| 302 |
a47eb4c |
Dawsh |
2y ago |
# Backup |
| 303 |
a47eb4c |
Dawsh |
2y ago |
|
| 304 |
a47eb4c |
Dawsh |
2y ago |
Всегда полезно регулярно создавать резервные копии файлов Marzban, чтобы предотвратить потерю данных в случае системных сбоев или случайного удаления. Ниже приведены шаги для создания резервной копии Marzban: |
| 305 |
a47eb4c |
Dawsh |
2y ago |
|
| 306 |
a47eb4c |
Dawsh |
2y ago |
1. По умолчанию все важные файлы Marzban сохраняются в папке `/var/lib/marzban` (в версиях Docker). Скопируйте весь каталог `/var/lib/marzban` в выбранное вами место резервного копирования, например на внешний жесткий диск или в облачное хранилище. |
| 307 |
a47eb4c |
Dawsh |
2y ago |
2. Кроме того, не забудьте сделать резервную копию файла env, содержащего переменные конфигурации, а также файла конфигурации Xray. Если вы устанавливали Marzban с помощью marzban-scripts (рекомендуемый подход к установке), то env и другие конфигурации должны находиться в каталоге `/opt/marzban/`. |
| 308 |
a47eb4c |
Dawsh |
2y ago |
|
| 309 |
a47eb4c |
Dawsh |
2y ago |
Выполнив эти действия, вы сможете обеспечить резервное копирование всех файлов и данных Marzban, а также переменных конфигурации и конфигурации Xray на случай, если в будущем потребуется их восстановить. Не забывайте регулярно обновлять резервные копии, чтобы поддерживать их в актуальном состоянии. |
| 310 |
a47eb4c |
Dawsh |
2y ago |
|
| 311 |
a47eb4c |
Dawsh |
2y ago |
# Telegram Bot |
| 312 |
a47eb4c |
Dawsh |
2y ago |
|
| 313 |
a47eb4c |
Dawsh |
2y ago |
Marzban поставляется с встроенным ботом Telegram, который может управлять сервером, создавать и удалять пользователей, а также отправлять уведомления. Этот бот можно легко включить, выполнив несколько простых шагов, и он предоставляет удобный способ взаимодействия с Marzban без необходимости каждый раз заходить на сервер. |
| 314 |
a47eb4c |
Dawsh |
2y ago |
|
| 315 |
a47eb4c |
Dawsh |
2y ago |
Чтобы включить Telegram-бота, выполните следующие действия: |
| 316 |
a47eb4c |
Dawsh |
2y ago |
|
| 317 |
a47eb4c |
Dawsh |
2y ago |
1. установите `TELEGRAM_API_TOKEN` в качестве API-токена вашего бота. |
| 318 |
a47eb4c |
Dawsh |
2y ago |
2. установите `TELEGRAM_ADMIN_ID` в качестве цифрового ID вашего Telegram-аккаунта, который вы можете получить от [@userinfobot](https://t.me/userinfobot) |
| 319 |
a47eb4c |
Dawsh |
2y ago |
|
| 320 |
a47eb4c |
Dawsh |
2y ago |
# Marzban CLI |
| 321 |
a47eb4c |
Dawsh |
2y ago |
|
| 322 |
a47eb4c |
Dawsh |
2y ago |
Marzban поставляется с встроенным CLI под названием `marzban-cli`, который позволяет администраторам напрямую взаимодействовать с ним. |
| 323 |
a47eb4c |
Dawsh |
2y ago |
|
| 324 |
a47eb4c |
Dawsh |
2y ago |
Если вы установили Marzban с помощью скрипта установки, то доступ к командам cli можно получить, выполнив команду: |
| 325 |
a47eb4c |
Dawsh |
2y ago |
|
| 326 |
a47eb4c |
Dawsh |
2y ago |
```bash |
| 327 |
a47eb4c |
Dawsh |
2y ago |
marzban cli [OPTIONS] COMMAND [ARGS]... |
| 328 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 329 |
a47eb4c |
Dawsh |
2y ago |
|
| 330 |
a47eb4c |
Dawsh |
2y ago |
Для получения дополнительной информации можно ознакомиться с [документацией по Marzban CLI](./cli/README.md). |
| 331 |
a47eb4c |
Dawsh |
2y ago |
|
| 332 |
a47eb4c |
Dawsh |
2y ago |
# Marzban Node |
| 333 |
a47eb4c |
Dawsh |
2y ago |
|
| 334 |
a47eb4c |
Dawsh |
2y ago |
Проект Marzban представляет [Marzban-node](https://github.com/gozargah/marzban-node), который помогает Вам в распределении инфраструктуры. С помощью Marzban-node можно распределить инфраструктуру по нескольким узлам, получив такие преимущества, как высокая доступность, масштабируемость и гибкость. Marzban-node позволяет пользователям подключаться к различным серверам, предоставляя им гибкость в выборе, а не ограничиваться только одним сервером. |
| 335 |
a47eb4c |
Dawsh |
2y ago |
Более подробная информация и инструкции по установке приведены в [официальной документации Marzban-node](https://github.com/gozargah/marzban-node). |
| 336 |
a47eb4c |
Dawsh |
2y ago |
|
| 337 |
a47eb4c |
Dawsh |
2y ago |
|
| 338 |
a47eb4c |
Dawsh |
2y ago |
# Webhook уведомления |
| 339 |
a47eb4c |
Dawsh |
2y ago |
|
| 340 |
a47eb4c |
Dawsh |
2y ago |
Вы можете задать адрес webhook, и Marzban будет отправлять уведомления на этот адрес. |
| 341 |
a47eb4c |
Dawsh |
2y ago |
|
| 342 |
a47eb4c |
Dawsh |
2y ago |
Запросы будут отправляться в виде POST-запроса на адрес, указанный в `WEBHOOK_ADDRESS`, с `WEBHOOK_SECRET` в качестве `x-webhook-secret` в заголовках. |
| 343 |
a47eb4c |
Dawsh |
2y ago |
|
| 344 |
a47eb4c |
Dawsh |
2y ago |
Пример запроса, отправленного Marzban: |
| 345 |
a47eb4c |
Dawsh |
2y ago |
|
| 346 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 347 |
a47eb4c |
Dawsh |
2y ago |
Headers: |
| 348 |
a47eb4c |
Dawsh |
2y ago |
Host: 0.0.0.0:9000 |
| 349 |
a47eb4c |
Dawsh |
2y ago |
User-Agent: python-requests/2.28.1 |
| 350 |
a47eb4c |
Dawsh |
2y ago |
Accept-Encoding: gzip, deflate |
| 351 |
a47eb4c |
Dawsh |
2y ago |
Accept: */* |
| 352 |
a47eb4c |
Dawsh |
2y ago |
Connection: keep-alive |
| 353 |
a47eb4c |
Dawsh |
2y ago |
x-webhook-secret: something-very-very-secret |
| 354 |
a47eb4c |
Dawsh |
2y ago |
Content-Length: 107 |
| 355 |
a47eb4c |
Dawsh |
2y ago |
Content-Type: application/json |
| 356 |
a47eb4c |
Dawsh |
2y ago |
|
| 357 |
a47eb4c |
Dawsh |
2y ago |
|
| 358 |
a47eb4c |
Dawsh |
2y ago |
|
| 359 |
a47eb4c |
Dawsh |
2y ago |
Body: |
| 360 |
a47eb4c |
Dawsh |
2y ago |
{"username": "marzban_test_user", "action": "user_updated", "enqueued_at": 1680506457.636369, "tries": 0} |
| 361 |
a47eb4c |
Dawsh |
2y ago |
``` |
| 362 |
a47eb4c |
Dawsh |
2y ago |
|
| 363 |
a47eb4c |
Dawsh |
2y ago |
Различные типы действий: `user_created`, `user_updated`, `user_deleted`, `user_limited`, `user_expired`, `user_disabled`, `user_enabled` |
| 364 |
a47eb4c |
Dawsh |
2y ago |
|
| 365 |
a47eb4c |
Dawsh |
2y ago |
# Поддержка |
| 366 |
a47eb4c |
Dawsh |
2y ago |
|
| 367 |
a47eb4c |
Dawsh |
2y ago |
Если вы нашли Marzban полезным и хотели бы поддержать его развитие, вы можете сделать пожертвование в одной из следующих криптовалютных сетей: |
| 368 |
a47eb4c |
Dawsh |
2y ago |
|
| 369 |
a47eb4c |
Dawsh |
2y ago |
- TRON network (TRC20): `TX8kJoDcowQPBFTYHAJR36GyoUKP1Xwzkb` |
| 370 |
a47eb4c |
Dawsh |
2y ago |
- ETH, BNB, MATIC network (ERC20, BEP20): `0xFdc9ad32454FA4fc4733270FCc12ddBFb68b83F7` |
| 371 |
a47eb4c |
Dawsh |
2y ago |
- Bitcoin network: `bc1qpys2nefgsjjgae3g3gqy9crsv3h3rm96tlkz0v` |
| 372 |
a47eb4c |
Dawsh |
2y ago |
- Dogecoin network: `DJAocBAu8y6LwhDKUktLAyzV8xyoFeHH6R` |
| 373 |
a47eb4c |
Dawsh |
2y ago |
- TON network: `EQAVf-7hAXHlF-jmrKE44oBwN7HGQFVBLAtrOsev5K4qR4P8` |
| 374 |
a47eb4c |
Dawsh |
2y ago |
|
| 375 |
a47eb4c |
Dawsh |
2y ago |
Спасибо за поддержку! |
| 376 |
a47eb4c |
Dawsh |
2y ago |
|
| 377 |
a47eb4c |
Dawsh |
2y ago |
# Лицензия |
| 378 |
a47eb4c |
Dawsh |
2y ago |
|
| 379 |
a47eb4c |
Dawsh |
2y ago |
Сделано в [Unknown!] и опубликовано под [AGPL-3.0](./LICENSE). |
| 380 |
a47eb4c |
Dawsh |
2y ago |
|
| 381 |
a47eb4c |
Dawsh |
2y ago |
# Участники |
| 382 |
a47eb4c |
Dawsh |
2y ago |
|
| 383 |
a47eb4c |
Dawsh |
2y ago |
Мы ❤️🔥 участников проекта! Если вы хотите внести свой вклад, пожалуйста, ознакомьтесь с нашим [Contributing Guidelines](CONTRIBUTING.md) и не стесняйтесь отправлять запросы на исправление ошибок или сообщить о проблеме. Мы также приглашаем вас присоединиться к нашей группе [Telegram](https://t.me/gozargah_marzban) для получения поддержки. |
| 384 |
a47eb4c |
Dawsh |
2y ago |
|
| 385 |
a47eb4c |
Dawsh |
2y ago |
Проверьте [open issues](https://github.com/gozargah/marzban/issues), чтобы помочь развитию этого проекта. |
| 386 |
a47eb4c |
Dawsh |
2y ago |
|
| 387 |
a47eb4c |
Dawsh |
2y ago |
<p align="center"> |
| 388 |
a47eb4c |
Dawsh |
2y ago |
Спасибо всем участникам, благодаря которым Marzban становится лучше: |
| 389 |
a47eb4c |
Dawsh |
2y ago |
</p> |
| 390 |
a47eb4c |
Dawsh |
2y ago |
<p align="center"> |
| 391 |
a47eb4c |
Dawsh |
2y ago |
<a href="https://github.com/Gozargah/Marzban/graphs/contributors"> |
| 392 |
a47eb4c |
Dawsh |
2y ago |
<img src="https://contrib.rocks/image?repo=Gozargah/Marzban" /> |
| 393 |
a47eb4c |
Dawsh |
2y ago |
</a> |
| 394 |
a47eb4c |
Dawsh |
2y ago |
</p> |
| 395 |
a47eb4c |
Dawsh |
2y ago |
<p align="center"> |
| 396 |
a47eb4c |
Dawsh |
2y ago |
Made with <a rel="noopener noreferrer" target="_blank" href="https://contrib.rocks">contrib.rocks</a> |
| 397 |
a47eb4c |
Dawsh |
2y ago |
</p> |