[PR #891] [CLOSED] headless-режим установки на VPS #68

Closed
opened 2026-07-19 11:34:35 +03:00 by mirror-bot · 0 comments

📋 Pull Request Information

Original PR: https://github.com/Flowseal/tg-ws-proxy/pull/891
Author: @Amadest
Created: 5/26/2026
Status: ❌ Closed

Base: main ← Head: vps-mode


📝 Commits (1)

  • 129ab7f Add headless VPS deployment

📊 Changes

10 files changed (+448 additions, -0 deletions)

View changed files

➕ deploy/.env.example (+13 -0)
➕ deploy/docker-compose.yml (+13 -0)
➕ deploy/install-systemd.sh (+135 -0)
➕ deploy/systemd/run-headless.sh (+17 -0)
➕ deploy/systemd/tg-ws-proxy-update.service (+8 -0)
➕ deploy/systemd/tg-ws-proxy-update.timer (+11 -0)
➕ deploy/systemd/tg-ws-proxy.env.example (+6 -0)
➕ deploy/systemd/tg-ws-proxy.service (+21 -0)
➕ deploy/systemd/update-headless.sh (+42 -0)
➕ docs/VPS.md (+182 -0)

📄 Description

Что сделано

Добавлен headless-сценарий установки tg-ws-proxy на обычный Linux VPS без GUI, tray, X11/Wayland, tkinter, pystray и AppIndicator.

В проекте уже есть консольная точка входа proxy/tg_ws_proxy.py, поэтому для серверного запуска достаточно оформить вокруг нее удобный systemd/Docker-деплой.

В PR добавлены:

  • deploy/install-systemd.sh — установщик для VPS;
  • deploy/systemd/tg-ws-proxy.service — systemd-сервис для запуска прокси;
  • deploy/systemd/tg-ws-proxy-update.timer и deploy/systemd/tg-ws-proxy-update.service — ежедневный автоапдейт;
  • deploy/systemd/run-headless.sh — headless-wrapper для запуска CLI-прокси;
  • deploy/systemd/update-headless.sh — обновление через git pull --ff-only;
  • deploy/.env.example и deploy/systemd/tg-ws-proxy.env.example — примеры конфигурации;
  • deploy/docker-compose.yml — простой Docker Compose вариант;
  • docs/VPS.md — инструкция по установке на VPS.

Зачем

Сейчас основной пользовательский сценарий хорошо покрывает desktop/tray-использование. Но если хочется один раз поставить прокси на VPS и забыть, GUI-обертка не нужна и даже мешает: на сервере обычно нет графического окружения и системного трея.

Этот PR добавляет отдельный серверный путь:

Telegram client -> VPS:1443 -> tg-ws-proxy -> Telegram WebSocket/DC

Как работает systemd-установка

Установщик:

  • создает системного пользователя tgwsproxy;
  • клонирует чистый публичный core проекта в /opt/tg-ws-proxy-core;
  • создает virtualenv;
  • ставит минимальную зависимость cryptography;
  • создает /etc/tg-ws-proxy.env со стабильным TG_WS_PROXY_SECRET;
  • включает и запускает tg-ws-proxy.service;
  • печатает готовую ссылку tg://proxy?....

Пример запуска:

sudo TG_WS_PROXY_PUBLIC_HOST=YOUR_VPS_IP_OR_DOMAIN sh deploy/install-systemd.sh

После установки сервис можно проверить так:

systemctl status tg-ws-proxy

Логи:

journalctl -u tg-ws-proxy -n 80 --no-pager

Автообновления

Добавлен systemd timer, который раз в сутки делает обновление через git.

Он обновляет публичный core:

/opt/tg-ws-proxy-core -> git pull --ff-only origin main

Если core изменился, сервис перезапускается. Если изменений нет, сервис не трогается.

Secret хранится отдельно в /etc/tg-ws-proxy.env, поэтому ссылка подключения не ломается после рестартов и обновлений.

Проверка таймера:

systemctl list-timers tg-ws-proxy-update.timer

Ручной запуск обновления:

sudo systemctl start tg-ws-proxy-update.service

Логи обновления:

journalctl -u tg-ws-proxy-update -n 80 --no-pager

Docker Compose

Также добавлен минимальный Docker Compose сценарий для тех, кто предпочитает контейнерный запуск.

Пример:

  1. Перейти в директорию deploy.
  2. Скопировать .env.example в .env.
  3. Указать TG_WS_PROXY_SECRET.
  4. Запустить docker compose up -d --build.

Контейнер публикует порт 1443/tcp, использует переменные окружения из .env и перезапускается через restart: unless-stopped.

Совместимость

Изменения не затрагивают tray-приложения для Windows, macOS и Linux. Новый сценарий добавляет отдельный способ запуска для серверов и использует уже существующий proxy core.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Flowseal/tg-ws-proxy/pull/891 **Author:** [@Amadest](https://github.com/Amadest) **Created:** 5/26/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `vps-mode` --- ### 📝 Commits (1) - [`129ab7f`](https://github.com/Flowseal/tg-ws-proxy/commit/129ab7f6ac6df5592607f833294498df247f949d) Add headless VPS deployment ### 📊 Changes **10 files changed** (+448 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `deploy/.env.example` (+13 -0) ➕ `deploy/docker-compose.yml` (+13 -0) ➕ `deploy/install-systemd.sh` (+135 -0) ➕ `deploy/systemd/run-headless.sh` (+17 -0) ➕ `deploy/systemd/tg-ws-proxy-update.service` (+8 -0) ➕ `deploy/systemd/tg-ws-proxy-update.timer` (+11 -0) ➕ `deploy/systemd/tg-ws-proxy.env.example` (+6 -0) ➕ `deploy/systemd/tg-ws-proxy.service` (+21 -0) ➕ `deploy/systemd/update-headless.sh` (+42 -0) ➕ `docs/VPS.md` (+182 -0) </details> ### 📄 Description ## Что сделано Добавлен headless-сценарий установки `tg-ws-proxy` на обычный Linux VPS без GUI, tray, X11/Wayland, tkinter, pystray и AppIndicator. В проекте уже есть консольная точка входа `proxy/tg_ws_proxy.py`, поэтому для серверного запуска достаточно оформить вокруг нее удобный systemd/Docker-деплой. В PR добавлены: - `deploy/install-systemd.sh` — установщик для VPS; - `deploy/systemd/tg-ws-proxy.service` — systemd-сервис для запуска прокси; - `deploy/systemd/tg-ws-proxy-update.timer` и `deploy/systemd/tg-ws-proxy-update.service` — ежедневный автоапдейт; - `deploy/systemd/run-headless.sh` — headless-wrapper для запуска CLI-прокси; - `deploy/systemd/update-headless.sh` — обновление через `git pull --ff-only`; - `deploy/.env.example` и `deploy/systemd/tg-ws-proxy.env.example` — примеры конфигурации; - `deploy/docker-compose.yml` — простой Docker Compose вариант; - `docs/VPS.md` — инструкция по установке на VPS. ## Зачем Сейчас основной пользовательский сценарий хорошо покрывает desktop/tray-использование. Но если хочется один раз поставить прокси на VPS и забыть, GUI-обертка не нужна и даже мешает: на сервере обычно нет графического окружения и системного трея. Этот PR добавляет отдельный серверный путь: `Telegram client -> VPS:1443 -> tg-ws-proxy -> Telegram WebSocket/DC` ## Как работает systemd-установка Установщик: - создает системного пользователя `tgwsproxy`; - клонирует чистый публичный core проекта в `/opt/tg-ws-proxy-core`; - создает virtualenv; - ставит минимальную зависимость `cryptography`; - создает `/etc/tg-ws-proxy.env` со стабильным `TG_WS_PROXY_SECRET`; - включает и запускает `tg-ws-proxy.service`; - печатает готовую ссылку `tg://proxy?...`. Пример запуска: `sudo TG_WS_PROXY_PUBLIC_HOST=YOUR_VPS_IP_OR_DOMAIN sh deploy/install-systemd.sh` После установки сервис можно проверить так: `systemctl status tg-ws-proxy` Логи: `journalctl -u tg-ws-proxy -n 80 --no-pager` ## Автообновления Добавлен systemd timer, который раз в сутки делает обновление через git. Он обновляет публичный core: `/opt/tg-ws-proxy-core -> git pull --ff-only origin main` Если core изменился, сервис перезапускается. Если изменений нет, сервис не трогается. Secret хранится отдельно в `/etc/tg-ws-proxy.env`, поэтому ссылка подключения не ломается после рестартов и обновлений. Проверка таймера: `systemctl list-timers tg-ws-proxy-update.timer` Ручной запуск обновления: `sudo systemctl start tg-ws-proxy-update.service` Логи обновления: `journalctl -u tg-ws-proxy-update -n 80 --no-pager` ## Docker Compose Также добавлен минимальный Docker Compose сценарий для тех, кто предпочитает контейнерный запуск. Пример: 1. Перейти в директорию `deploy`. 2. Скопировать `.env.example` в `.env`. 3. Указать `TG_WS_PROXY_SECRET`. 4. Запустить `docker compose up -d --build`. Контейнер публикует порт `1443/tcp`, использует переменные окружения из `.env` и перезапускается через `restart: unless-stopped`. ## Совместимость Изменения не затрагивают tray-приложения для Windows, macOS и Linux. Новый сценарий добавляет отдельный способ запуска для серверов и использует уже существующий proxy core. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
mirror-bot added the pull-request label 2026-07-19 11:34:35 +03:00
mirror-bot changed title from [PR #891] [CLOSED] headless-режим установки на VPS to [PR #891] headless-режим установки на VPS 2026-07-20 04:10:54 +03:00
mirror-bot changed title from [PR #891] headless-режим установки на VPS to [PR #891] [CLOSED] headless-режим установки на VPS 2026-07-20 23:14:52 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Utilities/tg-ws-proxy#68