4.6 KiB
Установка по ссылке (ключ в команде)
Чтобы клиент или вы могли ставить бота одной командой, в неё подставляется ключ (GitHub Personal Access Token). «Ссылка» = эта одна строка, которую копируют и вставляют в терминал сервера.
1. Одна команда с ключом (готовый шаблон)
Подставьте свой GITHUB_TOKEN (один раз) в команду ниже и сохраните получившуюся строку. Её можно:
- отправить клиенту (пусть вставит в SSH-сессию и запустит);
- сохранить у себя как «ссылку для установки».
Шаблон (замените ghp_ВАШ_ТОКЕН на свой токен):
GITHUB_TOKEN=ghp_ВАШ_ТОКЕН bash -c 'git clone --depth 1 "https://${GITHUB_TOKEN}@github.com/anten-ka/gotelegram_pro.git" /tmp/gp && sudo -E /tmp/gp/install_gotelegram_bot.sh'
Важно: переменная GITHUB_TOKEN задаётся перед bash -c, поэтому во внутренней команде ${GITHUB_TOKEN} подставится на сервере при выполнении. Токен попадёт в git clone и в установочный скрипт.
2. Через скрипт из репозитория (то же самое, но через raw-ссылку)
Если репозиторий публичный, можно дать такую «ссылку» (подставьте свой токен):
GITHUB_TOKEN=ghp_ВАШ_ТОКЕН curl -sL https://raw.githubusercontent.com/anten-ka/gotelegram_pro/main/install_by_key.sh | sudo -E bash
Если репо приватный, raw-файл без доступа не откроется, поэтому используйте вариант 1 выше (клонирование по токену в одной команде).
3. Короткая «ссылка» через публичный Gist (приватный репо)
Чтобы команда была короче и не светить репо, можно выложить только маленький скрипт установки в публичный Gist. Тогда «установка по ссылке» = одна команда с ключом, а скрипт берётся по публичной ссылке.
Шаг 1: создать Gist
- Перейдите на https://gist.github.com
- Создайте новый Gist (публичный).
- Имя файла:
install_gotelegram_pro.sh - Вставьте содержимое (подставьте свой репо, если другой):
#!/bin/bash
set -e
T="${GITHUB_TOKEN:?Задайте GITHUB_TOKEN}"
R="https://${T}@github.com/anten-ka/gotelegram_pro.git"
D="/tmp/gp_$$"
trap "rm -rf $D" EXIT
git clone --depth 1 --branch main "$R" "$D"
sudo -E "$D/install_gotelegram_bot.sh"
- Нажмите Create public gist и скопируйте Raw-ссылку на файл (например
https://gist.githubusercontent.com/USER/ID/raw/xxx/install_gotelegram_pro.sh).
Шаг 2: «ссылка» для установки
Вы даёте клиенту одну команду (вместо ghp_ВАШ_ТОКЕН — свой токен, вместо ССЫЛКА_НА_RAW_GIST — ссылку из шага 1):
GITHUB_TOKEN=ghp_ВАШ_ТОКЕН curl -sL ССЫЛКА_НА_RAW_GIST | sudo -E bash
Пример:
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx curl -sL https://gist.githubusercontent.com/anten-ka/xxxxxxxx/raw/xxx/install_gotelegram_pro.sh | sudo -E bash
Клиент только копирует эту строку, вставляет в терминал сервера и запускает — установка идёт по ключу из команды.
4. Безопасность
- Токен в команде виден в истории shell на сервере. Для разовой установки это допустимо; после установки можно отозвать токен или использовать токен с коротким сроком жизни.
- Не публикуйте готовую команду с реальным токеном в открытый доступ (сайт, чат, репо). Делитесь ею только с тем, кому доверяете установку на сервер.