Альфа-версия v0.5.1.
mtproxy-logs — это runtime-часть стека:
- пропатченный
MTProxy - managed-запуск с несколькими
secret - хостовые шаблоны сервисов
- формат логов, который использует панель
Этот репозиторий предполагается использовать вместе с mtproxy-logs-panel.
Это публичная альфа-версия.
- проект уже можно использовать
- структура ещё может меняться
- процесс установки ещё упрощается
- перед использованием в production всё нужно перепроверять
scripts/build-patched-mtproxy.shСборкаMTProxyс текущим патчем на количество secret-слотов и события логирования.scripts/mtproxy-managed-run.shЗапускMTProxyчерез/etc/mtproxy/mtproxy.envи/etc/mtproxy/managed_secrets.list.scripts/mtproxy-unshare-run.shОбёртка запуска через отдельный PID namespace, чтобы не словить известный crashinit_common_PID.templates/mtproxy.serviceПримерsystemd-сервиса.templates/mtproxy.env.exampleПример runtime-конфига.scripts/bootstrap-all-in-one.shСтарый bootstrap-скрипт из первой внутренней установки. Сейчас это reference, не финальный installer.
- исходники
MTProxy:/opt/MTProxy - runtime env:
/etc/mtproxy/mtproxy.env - список secret:
/etc/mtproxy/managed_secrets.list - лог-файл:
/var/log/mtproxy/mtproxy.log - runner-скрипт:
/usr/local/bin/mtproxy-managed-run.sh - unshare-обёртка:
/usr/local/bin/mtproxy-unshare-run.sh
Минимальный сценарий:
git clone https://github.com/ski28dev/mtproxy-logs.git
cd mtproxy-logs
sudo chmod +x scripts/*.sh
sudo ./scripts/install-runtime.shЧто делает installer:
- ставит build-зависимости
- клонирует или обновляет
MTProxyв/opt/MTProxy - накладывает патч логирования и multi-secret
- собирает бинарь
- ставит runner и fetch-скрипты в
/usr/local/bin - ставит
mtproxy-unshare-run.shи запускает сервис через него - создаёт
/etc/mtproxy/mtproxy.env - создаёт
/etc/mtproxy/managed_secrets.list - подтягивает
proxy-secretиproxy-multi.confсcore.telegram.org - ставит и запускает
mtproxy.service
После установки можно отредактировать:
/etc/mtproxy/mtproxy.env/etc/mtproxy/managed_secrets.list
И затем перечитать сервис:
sudo systemctl restart mtproxy.servicescripts/install-runtime.shУстановка runtime на fresh server.scripts/build-patched-mtproxy.shРучная пересборка патченногоMTProxy.scripts/mtproxy-fetch-config.shОбновлениеproxy-secretиproxy-multi.conf.scripts/mtproxy-unshare-run.shБезопасный запускMTProxyчерезunshare --pid --fork --mount-proc.scripts/generate-client-secret.shГенерацияee...client secret из raw secret и fake host.
- в текущей схеме
MTProxyслушаетTCP 443 - сервис должен стартовать через
mtproxy-unshare-run.sh, иначе после ряда обновлений Linux можно снова получить crashinit_common_PID - панель опирается на строки логов
MTP_EVENT handshake_okиMTP_EVENT disconnect - если менять формат логов, нужно обновлять и импортёр панели
Использовать вместе с:
mtproxy-logs-panel
Панель управляет:
secret- группами
- историей слотов
- импортом логов
- runtime-статистикой