Files
gotelegram_pro/INSTALL_PRIVATE.md

147 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Установка из закрытого GitHub-репозитория (по ключу)
Инструкция для размещения проекта в **приватном** репозитории и установки на сервер **по SSH-ключу** или **по токену (PAT)**.
**Установка одной командой с ключом («ключ в ссылке»):** см. **[INSTALL_LINK.md](INSTALL_LINK.md)** — одна строка с подставленным токеном для копирования в терминал.
---
## 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` подставьте свой логин и имя репозитория.