GoTelegram MTProxy + bot (gotelegram_pro)

Made-with: Cursor
This commit is contained in:
anten-ka
2026-03-06 14:59:00 +03:00
commit 29b6e05866
11 changed files with 1030 additions and 0 deletions

144
INSTALL_PRIVATE.md Normal file
View File

@@ -0,0 +1,144 @@
# Установка из закрытого GitHub-репозитория (по ключу)
Инструкция для размещения проекта в **приватном** репозитории и установки на сервер **по SSH-ключу** или **по токену (PAT)**.
---
## 1. Размещение в закрытом репозитории
### 1.1 Создать приватный репозиторий
1. GitHub → **New repository**.
2. Имя, например: `gotelegram_pro`.
3. Выберите **Private**.
4. Не добавляйте README, .gitignore и лицензию, если пушите существующий проект.
### 1.2 Загрузить код (с локальной машины)
```bash
cd "Скрипт mtproxy"
git init
git remote add origin git@github.com:ВАШ_ЛОГИН/gotelegram_pro.git
git add .
git commit -m "GoTelegram MTProxy + bot"
git branch -M main
git push -u origin main
```
Если репо уже есть и вы только добавляете remote:
```bash
git remote add origin git@github.com:ВАШ_ЛОГИН/gotelegram_pro.git
git push -u origin main
```
### 1.3 Настроить доступ «по ключу»
Доступ к приватному репо с сервера возможен двумя способами.
| Способ | Когда использовать |
|--------|--------------------|
| **SSH-ключ** | На сервере уже настроен `ssh-agent` и ключ добавлен в GitHub (Deploy key или ваш SSH key). |
| **Personal Access Token (PAT)** | Удобно для одноразовой установки или CI; токен передаётся в переменной окружения. |
---
## 2. Установка по SSH-ключу
### 2.1 Добавить SSH-ключ в GitHub
**На сервере** (или с машины, с которой будете клонировать):
```bash
# Сгенерировать ключ (если ещё нет)
ssh-keygen -t ed25519 -C "server-gotelegram" -f ~/.ssh/gotelegram_deploy -N ""
cat ~/.ssh/gotelegram_deploy.pub
```
- **Личный репо:** GitHub → **Settings → SSH and GPG keys → New SSH key** → вставить содержимое `.pub`.
- **Организация:** добавить ключ как **Deploy key** в настройках репозитория (Read-only достаточно).
Проверка:
```bash
ssh -T git@github.com
```
### 2.2 Клонировать и установить
**Вариант А:** скопируйте `bootstrap_install.sh` на сервер (через scp или вставьте содержимое в файл), затем:
```bash
chmod +x bootstrap_install.sh
GIT_REPO_SSH="git@github.com:ВАШ_ЛОГИН/gotelegram_pro.git" sudo bash bootstrap_install.sh
```
**Вариант Б:** клонировать репо вручную и запустить установку:
```bash
git clone git@github.com:ВАШ_ЛОГИН/gotelegram_pro.git /tmp/gotelegram_pro
sudo /tmp/gotelegram_pro/install_gotelegram_bot.sh
```
---
## 3. Установка по токену (PAT)
### 3.1 Создать Personal Access Token
1. GitHub → **Settings → Developer settings → Personal access tokens**.
2. **Tokens (classic)****Generate new token**.
3. Права: минимум **repo** (полный доступ к приватным репо).
4. Скопировать токен (один раз показывается).
### 3.2 Установка одной командой (bootstrap)
Скопируйте **bootstrap_install.sh** на сервер (scp или создайте файл и вставьте содержимое из репо). Затем:
```bash
# Подставьте свой токен и репо
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export GIT_REPO_HTTPS="https://github.com/ВАШ_ЛОГИН/gotelegram_pro.git"
sudo -E bash bootstrap_install.sh
```
`-E` сохраняет переменные окружения (в т.ч. `GITHUB_TOKEN`) при sudo.
Вариант без экспорта (токен в истории не сохраняйте в продакшене):
```bash
GITHUB_TOKEN=ghp_xxx GIT_REPO_HTTPS=https://github.com/USER/gotelegram_pro.git sudo -E bash bootstrap_install.sh
```
### 3.3 Установка через install_gotelegram_bot.sh
Если скрипт **install_gotelegram_bot.sh** уже лежит на сервере (скопирован из репо), но папки **gotelegram-bot** рядом нет, скрипт сам попытается клонировать репо по токену:
```bash
export GITHUB_TOKEN="ghp_xxxxxxxxxxxx"
export GOTETELEGRAM_BOT_REPO="https://github.com/ВАШ_ЛОГИН/gotelegram_pro"
sudo -E ./install_gotelegram_bot.sh
```
Токен в процессе установки **не сохраняется** на диск, только используется для `git clone`.
---
## 4. Безопасность
- **SSH:** используйте отдельный ключ (Deploy key) с доступом только к этому репо и при необходимости только на чтение.
- **PAT:** не коммитьте токен в репо и не оставляйте в истории shell. Для повторных установок лучше SSH или новый токен.
- После установки можно удалить клонированную папку: `rm -rf /tmp/gotelegram_pro*`.
---
## 5. Краткая шпаргалка
| Задача | Команда |
|--------|--------|
| Установка по SSH (репо уже клонирован) | `sudo ./install_gotelegram_bot.sh` |
| Установка по SSH (bootstrap) | `GIT_REPO_SSH=git@github.com:USER/REPO.git sudo bash bootstrap_install.sh` |
| Установка по токену (bootstrap) | `GITHUB_TOKEN=ghp_xxx GIT_REPO_HTTPS=https://github.com/USER/REPO.git sudo -E bash bootstrap_install.sh` |
| Установка по токену (только install-скрипт) | `GITHUB_TOKEN=ghp_xxx sudo -E ./install_gotelegram_bot.sh` |
Вместо `USER/REPO` подставьте свой логин и имя репозитория.