Блог Ходакова

#golang #macos #linux #overwatch и стопицот других тегов
Юнит-файл systemd для запуска MTProto-прокси

Опубликовал небольшой systemd-юнит для быстрого запуска MTProto-прокси, написанного на Go, внутри tmux.

Вообще, я довольно часто пишу такие маленькие файлики-сервисы, а потом забываю, как я их написал, и каждый раз гуглю, как правильно запустить ту или иную вещь через systemd. Да, читать документацию Лёньки для слабаков (а стоило бы).

Вот тут лежит сам файл и небольшая инструкция на английском: вот её дубль на русском языке:

Как использовать этот юнит-файл

  1. Устанавливаем на сервер tmux. После запуска сервиса состояние mtg можно будет посмотреть командой tmux attach -t mtproxy.
  2. Устанавливаем скомпилированный бинарник mtg в путь /usr/local/bin/mtproxy.
  3. Устанавливаем файл mtproxy.service в папку /etc/systemd/system/mtproxy.service.
  4. Пишем ключи для запуска прокси в файл /etc/mtproxy/arguments.

Мой работающий файл ключей для запуска прокси выглядит так:

<пароль> -b <IP-адрес> -s

Полный список доступных ключей доступен на странице оригинального приложения.

Почему я не стал использовать environment-файл

Да, я в курсе, что systemd позволяет подхватывать environment-переменные, вот только mtg работает с ними странно, и мне не удалось без ключа -b запустить прокси на нужном мне IP-адресе (при любом валидном значении MTG_IP приложение биндилось на 127.0.0.1). У меня нет времени/желания это разгребать, если кто-то ткнёт меня, как правильно реализовать настройку mtg через environment, чтобы оно работало (а не как в документации) — буду рад, patches are welcome.

← Исправление ошибки 500 при загрузке образов в Gitlab Registry Авто-очистка медиа-кэша в Mastodon →