mirror of
https://github.com/anten-ka/gotelegram_pro.git
synced 2026-05-19 15:36:03 +00:00
147 lines
6.5 KiB
Markdown
147 lines
6.5 KiB
Markdown
# Установка из закрытого 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` подставьте свой логин и имя репозитория.
|