6.5 KiB
Установка из закрытого GitHub-репозитория (по ключу)
Инструкция для размещения проекта в приватном репозитории и установки на сервер по SSH-ключу или по токену (PAT).
Установка одной командой с ключом («ключ в ссылке»): см. INSTALL_LINK.md — одна строка с подставленным токеном для копирования в терминал.
1. Размещение в закрытом репозитории
1.1 Создать приватный репозиторий
- GitHub → New repository.
- Имя, например:
gotelegram_pro. - Выберите Private.
- Не добавляйте README, .gitignore и лицензию, если пушите существующий проект.
1.2 Загрузить код (с локальной машины)
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:
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
На сервере (или с машины, с которой будете клонировать):
# Сгенерировать ключ (если ещё нет)
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 достаточно).
Проверка:
ssh -T git@github.com
2.2 Клонировать и установить
Вариант А: скопируйте bootstrap_install.sh на сервер (через scp или вставьте содержимое в файл), затем:
chmod +x bootstrap_install.sh
GIT_REPO_SSH="git@github.com:ВАШ_ЛОГИН/gotelegram_pro.git" sudo bash bootstrap_install.sh
Вариант Б: клонировать репо вручную и запустить установку:
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
- GitHub → Settings → Developer settings → Personal access tokens.
- Tokens (classic) → Generate new token.
- Права: минимум repo (полный доступ к приватным репо).
- Скопировать токен (один раз показывается).
3.2 Установка одной командой (bootstrap)
Скопируйте bootstrap_install.sh на сервер (scp или создайте файл и вставьте содержимое из репо). Затем:
# Подставьте свой токен и репо
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.
Вариант без экспорта (токен в истории не сохраняйте в продакшене):
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 рядом нет, скрипт сам попытается клонировать репо по токену:
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 подставьте свой логин и имя репозитория.