Нативный установщик Telemt для Ubuntu 24.04 x86_64 без Docker. Он следует официальной ручной systemd-инструкции, но добавляет YAML-конфигурацию, проверку релиза, backup/rollback, безопасные permissions, health-check и отдельный cleaner.
Это неофициальный установщик. Бинарник Telemt в ZIP не включён: setup скачивает официальный закреплённый релиз и проверяет SHA-256.
На новой Ubuntu VM:
unzip telemt-setup-standalone-1.1.1.zip
cd telemt-setup
cp config.example.yaml config.yaml
nano config.yaml
sudo ./setuptelemt.sh allВ config.yaml обязательно замените links.public_host на публичный IPv4 или
DNS-имя VM. Пример по умолчанию поднимает TLS-only MTProto Proxy на TCP/443 с
Fake-TLS/SNI petrovich.ru, Middle Proxy и общим лимитом 256 соединений.
Готовые ссылки содержат credentials и поэтому выводятся только явно:
sudo ./setuptelemt.sh linksМожно хранить YAML вне распакованного каталога:
sudo ./setuptelemt.sh all --config /secure/path/telemt.yaml
sudo ./setuptelemt.sh links --config /secure/path/telemt.yamlsudo ./setuptelemt.sh 0 # preflight, inventory, backup, stop только target unit
sudo ./setuptelemt.sh 1 # зависимости, официальный binary, checksum/version
sudo ./setuptelemt.sh 2 # защищённый TOML и systemd unit
sudo ./setuptelemt.sh 3 # enable/start и обязательный VM health-checkall запускает шаги последовательно и выполняет rollback при ошибке. Шаг 0
никогда не останавливает все процессы Telemt: он работает только с
install.service_name и откажется продолжать при конфликте unit или порта.
Можно задать несколько независимых ссылок:
users:
family:
secret: "GENERATE"
ad_tag: null
max_unique_ips: null
private:
secret: "<32_HEX_SECRET>"
ad_tag: null
max_unique_ips: 2<32_HEX_SECRET> в примере нужно заменить на собственные 32 hex-символа.
GENERATE создаёт 16 случайных байт и сохраняет тот же secret при повторном
setup для существующего имени. Удаление установки с конфигом означает, что при
следующей чистой установке будет создана новая ссылка.
Если YAML содержит явный secret или ad_tag, установщик требует chmod 600.
Сгенерированный /etc/telemt/telemt.toml устанавливается как
root:telemt 0640. Ссылки не пишутся в setup-output или journal.
Смена proxy.tls_domain делает ранее выданные TLS-ссылки недействительными —
после неё пользователям нужно выдать новые ссылки из локального API.
Для production-развёртывания откройте в cloud security group только входящий
TCP/443 и отдельно нужный диапазон для SSH. Telemt не использует UDP. API
127.0.0.1:9091 и Prometheus 127.0.0.1:9090 не должны публиковаться наружу.
Установщик не меняет cloud firewall и по умолчанию не меняет UFW.
install.manage_ufw: true добавляет локальное allow-правило для proxy TCP-порта.
Не забудьте разрешить исходящий TCP к инфраструктуре Telegram и GitHub во время
установки.
Проверки на VM:
sudo python3 tools/healthcheck.py --scope vm --config config.yaml
curl -fsS http://127.0.0.1:9090/metrics
journalctl -u telemt.service --since "10 minutes ago"Внешний Fake-TLS smoke-test с клиентской машины:
python -m venv venv
venv/bin/pip install PyYAML
venv/bin/python tools/healthcheck.py --scope e2e --config config.yamlВ Windows PowerShell используйте venv\Scripts\python.exe. E2E проверяет
публичный TCP, SNI и Fake-TLS handshake. API/metrics и runtime-логи подтверждают
готовность Telemt и Middle Proxy, но без авторизованного Telegram-клиента тест
не доказывает доставку сообщений.
Укажите новую точную версию и SHA-256 официального release asset в YAML, затем
повторите sudo ./setuptelemt.sh all. Архитектура и libc должны совпадать с VM.
Floating latest намеренно не используется.
Без --yes cleaner только показывает план:
./cleantelemt.sh
sudo ./cleantelemt.sh --yes
sudo ./cleantelemt.sh --yes --purge-user --purge-setupДополнительные варианты:
sudo ./cleantelemt.sh --yes --keep-config --keep-data --keep-backups
sudo ./cleantelemt.sh --yes --purge-ufw
sudo ./cleantelemt.sh --yes --config /secure/path/telemt.yamlCleaner удаляет только unit, binary, config, data, state и backups выбранного
instance. Он не запускает apt autoremove, не очищает общий journal, не меняет
cloud security group и не затрагивает другие экземпляры Telemt.
setuptelemt.sh,cleantelemt.sh,config.example.yaml- модульные
steps/00..03, общие shell-функции и Python tools README.md,VERSION,THIRD_PARTY_NOTICES.md
В ZIP намеренно отсутствуют binary Telemt, config.yaml, secrets, venv, Git,
PCAP, runtime cache и отчёты тестовых прогонов.
- Production-профили
config.<ssh-alias>.yamlи локальныйAGENTS.mdисключаются из Git и standalone ZIP - Release builder исключает все боевые
config*.yaml, сохраняя публичныйconfig.example.yaml
- исправлена проверка GNU libc при включённом
pipefail:lddтеперь не получает ложныйSIGPIPEот комбинацииheadиgrep -q - повторный
setuptelemt.sh allпосле обновления системной glibc снова корректно применяет технические изменения YAML с сохранением secrets
- Telemt: https://github.com/telemt/telemt
- Актуальный пример конфига: https://github.com/telemt/telemt/blob/main/config.toml
- FAQ: https://github.com/telemt/telemt/blob/main/docs/FAQ.ru.md
- Лицензия: https://github.com/telemt/telemt/blob/main/LICENSE