Настройки окружения
В данном разделе мы ознакомимся с Вами с конфигурацией проекта
Используемые файлы:
/opt/marzban/.env
Настройки UVICORN
UVICORN_HOST
Привязка приложения к хосту (по умолчанию: 0.0.0.0
)
0.0.0.0 означает все доступные адреса на машине.
UVICORN_PORT
Привязка приложения к порту (по умолчанию: 8000
)
UVICORN_UDS
Привязка приложения к UNIX domain socket
Если значение установлено, переменные UVICORN_HOST
и UVICORN_PORT
игнорируются.
UVICORN_SSL_CERTFILE
UVICORN_SSL_CERTFILE
Адрес файла сертификата SSL.
Пример: /var/lib/marzban/certs/fullchain.pem
Настройки XRAY
XRAY_JSON:
Адрес файла JSON конфигурации Xray. (по умолчанию: xray_config.json
)
XRAY_SUBSCRIPTION_URL_PREFIX:
Префикс адреса подписки.
XRAY_SUBSCRIPTION_PATH
значение по умолчанию: sub
Путь к странице полписки
Пример: “SomeRandomSUB”
XRAY_EXECUTABLE_PATH
Адрес исполняемого файла Xray.
Значение по умолчанию: /usr/local/bin/xray
XRAY_ASSETS_PATH
Путь к папке с файлами ресурсов для Xray (файлы geoip.dat и geosite.dat)
Значение по умолчанию: /usr/local/share/xray
XRAY_EXCLUDE_INBOUND_TAGS
Теги входящих соединений, которые не требуют управления и не должны быть включены в список прокси.
Пример: “IBOUND_X INBOUND_Y INBOUND_Z
”
XRAY_FALLBACKS_INBOUND_TAG
Если вы используете входящее соединение с несколькими резервными вариантами, укажите здесь его тег.
Настройки Telegram
TELEGRAM_API_TOKEN
Токен Telegram-бота (полученный от @botfather)
TELEGRAM_ADMIN_ID
Числовой идентификатор администратора в Telegram (полученный от @userinfobot)
TELEGRAM_PROXY_URL
URL прокси для запуска Telegram-бота (если серверы Telegram заблокированы на вашем сервере).
Пример: “socks5://127.0.0.1:1080
”
Настройки Шаблонов
CUSTOM_TEMPLATES_DIRECTORY
Путь к папке с пользовательскими шаблонами.
Значение по умолчанию: app/templates
CLASH_SUBSCRIPTION_TEMPLATE
Шаблон для создания конфигурации Clash.
Значение по умолчанию: clash/default.yml
Пример: default.yml
SUBSCRIPTION_PAGE_TEMPLATE
Шаблон страницы подписки Значение по умолчанию: subscription/index.html
HOME_PAGE_TEMPLATE
Шаблон главной страницы.
Значение по умолчанию: home/index.html
SINGBOX_SUBSCRIPTION_TEMPLATE
Настройки MUX для Sing-box
Значение по умолчанию: singbox/mux_config.json
Настройки Подписки
SUB_PROFILE_TITLE
Заголовок подписки на клиенте
Пример: Susbcription
SUB_SUPPORT_URL
Ссылка-поддержки в подписке на клиенте
Пример: https://t.me/support
SUB_UPDATE_INTERVAL
Период авто-обновления подписки на клиенте
Пример: 1
установит период авто-обновления в 1 час
Настройки БД
SQLALCHEMY_DATABASE_URL
URL базы данных для SQLAlchemy.
Значение по умолчанию: sqlite:///db.sqlite3
Настройки Разработчика
WEBHOOK_ADDRESS
начение по умолчанию: DEFAULT
Вы можете задать несколько адресов через ,
WEBHOOK_SECRET
Значение по умолчанию: DEFAULT
SUDO_USERNAME:
Переменная
username`
SUDO_PASSWORD
Переменная password
DOCS
Активация документации API по адресам /docs
и /redoc
.
Значение по умолчанию:false
JWT_ACCESS_TOKEN_EXPIRE_MINUTES
Время истечения срока действия доступного токена в минутах.
Значение по умолчанию: 1440
0 означает “без истечения срока действия”.
DEBUG
Активация режима разработки (development).
Значение по умолчанию: false
VITE_BASE_API
Префикс пути API для использования в панели управления (фронт-энд).
Значение по умолчанию: /api/
Получение SSL
Рекомендуется получить и настроить сертификат для обеспечения безопасности передачи данных панели и защиты от атак “человек-по-середине”, работы TLS подключений, функционирования подписок и многого другого.
Рекомендуемое расположение файлов:
/var/lib/marzban/certs/fullchain.pem
/var/lib/marzban/certs/key.pem
Получение сертификата с acme.sh
- Установка необходимого ПО
sudo apt install cron socat
- Установка acme.sh
curl https://get.acme.sh | sh -s email=EMAIL
- Создание директории для сертификатов
sudo mkdir -p /var/lib/marzban/certs/
Получение сертификатов
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt --issue --standalone -d DOMAIN \
--key-file /var/lib/marzban/certs/key.pem \
--fullchain-file /var/lib/marzban/certs/fullchain.pem
Замените DOMAIN на ваш домен или субдомен.
Получение WILDCARD сертификата с acme.sh
- Получение ключа API Cloudflare
Получите Global API Key в аккаунте Cloudflare для автоматической настройки DNS-записей.
- Настройка переменных окружения
export CF_Key="ваш_cloudflare_api_key"
export CF_Email="ваш_cloudflare_email"
- Выпуск wildcard сертификата
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt --issue --dns dns_cf \
-d DOMAIN \
-d *.DOMAIN \
--key-file /var/lib/marzban/certs/key.pem \
--fullchain-file /var/lib/marzban/certs/fullchain.pem
Замените DOMAIN на ваш домен.
Для просмотра списка выпущенных сертификатов:
~/.acme.sh/acme.sh --list
Для ручного продления сертификатов:
Вы должны перечислить все домены, которые хотите продлить
sudo mkdir -p /var/lib/marzban/certs/
Подключение SSL
Если включить SSL в Marzban, панель управления и ссылка на подписку будут доступны через https.
SSL с помощью Uvicorn
Marzban запускается по умолчанию с помощьюUvicorn, он же позволяет вам определять файлы сертификатов SSL.
Используемые файлы:
/var/lib/marzban/certs/fullchain.pem
/var/lib/marzban/certs/key.pem
После создания файлов сертификатов SSL установите в файле .env следующие переменные .
- Открываем файл настроек
sudo nano /opt/marzban/.env
- Устанавливаем новые значения
UVICORN_PORT = 8000
UVICORN_PORT = 443
# UVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/example.com/fullchain.pem"
# UVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/example.com/key.pem"
UVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/fullchain.pem"
UVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/key.pem"
# XRAY_SUBSCRIPTION_URL_PREFIX = "https://example.com"
XRAY_SUBSCRIPTION_URL_PREFIX = https://YOUR_DOMAIN
- Сохраняем внесенные изменения
Для того, что бы изменения вступили в силу, необходимо перезапустить панель
sudo marzban restart