Files
telemt/docs/QUICK_START_GUIDE.ru.md
TEMAndroid 05c066c676 fix(docker): expose port 9091 and allow external API access
Add 9091 port mapping to compose.yml to make the REST API reachable
from outside the container. Previously only port 9090 (metrics) was
published, making the documented curl commands non-functional.

fixes #434
2026-03-19 15:54:01 +03:00

6.0 KiB
Raw Blame History

Telemt через Systemd

Установка

Это программное обеспечение разработано для ОС на базе Debian: помимо Debian, это Ubuntu, Mint, Kali, MX и многие другие Linux

1. Скачать

wget -qO- "https://github.com/telemt/telemt/releases/latest/download/telemt-$(uname -m)-linux-$(ldd --version 2>&1 | grep -iq musl && echo musl || echo gnu).tar.gz" | tar -xz

2. Переместить в папку Bin

mv telemt /bin

3. Сделать файл исполняемым

chmod +x /bin/telemt

Как правильно использовать?

Эта инструкция "предполагает", что вы:

  • Авторизовались как пользователь root или выполнил su - / sudo su
  • У вас уже есть исполняемый файл "telemt" в папке /bin. Читайте раздел Установка

0. Проверьте порт и сгенерируйте секреты

Порт, который вы выбрали для использования, должен отсутствовать в списке:

netstat -lnp

Сгенерируйте 16 bytes/32 символа в шестнадцатеричном формате с помощью OpenSSL или другим способом:

openssl rand -hex 16

ИЛИ

xxd -l 16 -p /dev/urandom

ИЛИ

python3 -c 'import os; print(os.urandom(16).hex())'

Полученный результат сохраняем где-нибудь. Он понадобиться вам дальше!


1. Поместите свою конфигурацию в файл /etc/telemt/telemt.toml

Создаём директорию для конфига:

mkdir /etc/telemt

Открываем nano

nano /etc/telemt/telemt.toml

Вставьте свою конфигурацию

# === General Settings ===
[general]
# ad_tag = "00000000000000000000000000000000"
use_middle_proxy = false

[general.modes]
classic = false
secure = false
tls = true

[server]
port = 443

[server.api]
enabled = true
# listen = "127.0.0.1:9091"
# whitelist = ["127.0.0.1/32"]
# read_only = true

# === Anti-Censorship & Masking ===
[censorship]
tls_domain = "petrovich.ru"

[access.users]
# format: "username" = "32_hex_chars_secret"
hello = "00000000000000000000000000000000"

Затем нажмите Ctrl+S -> Ctrl+X, чтобы сохранить

Warning

Замените значение параметра hello на значение, которое вы получили в пункте 0.
Так же замените значение параметра tls_domain на другой сайт.


2. Создайте пользователя для telemt

useradd -d /opt/telemt -m -r -U telemt
chown -R telemt:telemt /etc/telemt

3. Создайте службу в /etc/systemd/system/telemt.service

Открываем nano

nano /etc/systemd/system/telemt.service

Вставьте этот модуль Systemd

[Unit]
Description=Telemt
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=telemt
Group=telemt
WorkingDirectory=/opt/telemt
ExecStart=/bin/telemt /etc/telemt/telemt.toml
Restart=on-failure
LimitNOFILE=65536
AmbientCapabilities=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

Затем нажмите Ctrl+S -> Ctrl+X, чтобы сохранить

перезагрузите конфигурацию systemd

systemctl daemon-reload

4. Для запуска введите команду systemctl start telemt

5. Для получения информации о статусе введите systemctl status telemt

6. Для автоматического запуска при запуске системы в введите systemctl enable telemt

7. Для получения ссылки/ссылок введите

curl -s http://127.0.0.1:9091/v1/users | jq

Одной ссылкой может пользоваться сколько угодно человек.

Warning

Рабочую ссылку может выдать только команда из 7 пункта. Не пытайтесь делать ее самостоятельно или копировать откуда-либо если вы не уверены в том, что делаете!


Telemt через Docker Compose

1. Отредактируйте config.toml в корневом каталоге репозитория (как минимум: порт, пользовательские секреты, tls_domain)
2. Запустите контейнер:

docker compose up -d --build

3. Проверьте логи:

docker compose logs -f telemt

4. Остановите контейнер:

docker compose down

Note

  • В docker-compose.yml файл ./config.toml монтируется в /app/config.toml (доступно только для чтения)
  • По умолчанию публикуются порты 443:443, а контейнер запускается со сброшенными привилегиями (добавлена только NET_BIND_SERVICE)
  • Если вам действительно нужна сеть хоста (обычно это требуется только для некоторых конфигураций IPv6), раскомментируйте network_mode: host

Запуск в Docker Compose

docker build -t telemt:local .
docker run --name telemt --restart unless-stopped \
  -p 443:443 \
  -p 9090:9090 \
  -p 9091:9091 \
  -e RUST_LOG=info \
  -v "$PWD/config.toml:/app/config.toml:ro" \
  --read-only \
  --cap-drop ALL --cap-add NET_BIND_SERVICE \
  --ulimit nofile=65536:65536 \
  telemt:local