Добавлен 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-обертка не нужна и даже мешает: на сервере обычно нет графического окружения и системного трея.
клонирует чистый публичный 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 сценарий для тех, кто предпочитает контейнерный запуск.
Пример:
Перейти в директорию deploy.
Скопировать .env.example в .env.
Указать TG_WS_PROXY_SECRET.
Запустить 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
changed title from [PR #891] [CLOSED] headless-режим установки на VPS to [PR #891] headless-режим установки на VPS2026-07-20 04:10:54 +03:00
mirror-bot
changed title from [PR #891] headless-режим установки на VPS to [PR #891] [CLOSED] headless-режим установки на VPS2026-07-20 23:14:52 +03:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 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)
129ab7fAdd 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;/opt/tg-ws-proxy-core;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-pagerDocker Compose
Также добавлен минимальный Docker Compose сценарий для тех, кто предпочитает контейнерный запуск.
Пример:
deploy..env.exampleв.env.TG_WS_PROXY_SECRET.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.
[PR #891] [CLOSED] headless-режим установки на VPSto [PR #891] headless-режим установки на VPS[PR #891] headless-режим установки на VPSto [PR #891] [CLOSED] headless-режим установки на VPS