CSUBOT - это супер-администратор-бот с открытым исходным кодом.

В этой статье описывается, как самостоятельно развернуть CSUBOT.

Пожалуйста, сначала полностью прочитайте этот документ: Инструкция по использованию робота CSUBOT

Рекомендуется: Проверка публичного IP-адреса вашего компьютера при доступе к различным веб-сайтам для проверки текущей сетевой среды.

Предпосылки

Для самостоятельного развертывания CSUBOT необходимо соблюдение как минимум следующих условий:

  • Наличие доменного имени. (Необходимо иметь как минимум один поддомен для бэкенда. Фактически, для фронтенда и бэкенда требуется в общей сложности два поддомена, но обычно домен фронтенда может быть предоставлен платформой развертывания)
  • Наличие сервера. Или развертывание на платформе, где можно развернуть бэкенд-сервис. Если вы знаете бесплатную платформу, где можно развернуть бэкенд-сервис, не стесняйтесь, нажмите здесь, чтобы оставить комментарий автору .
  • Наличие неограниченной учетной записи Telegram для создания Telegram-бота и получения токена бота.
  • Наличие неограниченной учетной записи Cloudflare для включения капчи Cloudflare Turnstile. Регистрация учетной записи: https://dash.cloudflare.com/

Операционные шаги

  1. Включите Cloudflare Turnstile
  2. Разверните фронтенд
  3. Создайте Telegram-бота
  4. Настройте бэкенд

Включите Cloudflare Turnstile

Перейдите по этой ссылке, чтобы открыть панель конфигурации Cloudflare Turnstile: Конфигурация компонента Turnstile

Нажмите add widget, чтобы добавить виджет Turnstile

Нажмите Add Hostnames , чтобы добавить доменное имя фронтенда. Если вы планируете использовать доменное имя, предоставленное платформой хостинга фронтенда, вы можете написать здесь что угодно.

Нажмите кнопку создания, после чего вы увидите Site Key и Secret Key.

Развертывание фронтенда

В качестве примера мы возьмем развертывание на платформе хостинга фронтенда.

  1. Откройте https://github.com/cjh0613/csubot-vue и сделайте форк этого репозитория.
  2. Выберите платформу для развертывания, например, Cloudflare Pages, Vercel, Netlify и т. д.
  3. Выберите импорт из репозитория Github, выберите репозиторий, форкнутый на первом шаге.

Рабочий путь настроен на корневой каталог проекта, команда компиляции:

npm install && npm run build

Выходной каталог:

dist/

Настройка переменных среды:

VITE_ENDPOINT=https://xxxx.com <URL-адрес бэкенда, требуется https>

VITE_SITEKEY=0x4AAAAAABBBBBBBBBBB <Ключ сайта Cloudflare turnstile (тот, что выше)>
  1. Начните развертывание, после завершения вы увидите доменное имя, предоставленное платформой. Вы также можете привязать свой собственный домен. Необходимо дождаться конфигурации DNS и генерации сертификата.

Создайте Telegram-бота

Напишите в личные сообщения https://t.me/BotFather и отправьте /newbot. Следуйте инструкциям бота для создания нового бота. После завершения вы получите токен.

Настройка бэкенда

Вы можете выбрать прямой запуск исполняемого файла или самостоятельную компиляцию.

Справочная информация о переменных среды

TGWD_TOKEN=<Токен Telegram-бота, полученный в @botfather>
TGWD_FRONTEND_DOMAIN=<Доменное имя фронтенда, не требуется https>
TGWD_SECRET=<Заполните что-нибудь>
TGWD_PORT=8000
TGWD_CFTS_API_KEY=<Секретный ключ Cloudflare turnstile (тот, что под ключом сайта)>

Использование исполняемого файла

В качестве примера мы возьмем операционную систему linux amd64.

Сначала создайте новую папку.

mkdir csubot && cd csubot

Загрузите исполняемый файл. Ссылка для загрузки здесь, пожалуйста, откройте https://github.com/cjh0613/csubot/releases , чтобы получить последнюю ссылку, возможно, вам придется нажать Show all assets, чтобы найти файл, подходящий для вашей платформы.

wget https://github.com/cjh0613/csubot/releases/download/vxxx/csubot-linux-amd64.zip

Так как это zip-архив, распакуйте его:

unzip csubot-linux-amd64.zip

Если эта команда не может быть выполнена, убедитесь, что пакет unzip успешно установлен.

Перейдите в каталог, где находится csubot.

Используйте следующую команду, чтобы просмотреть скрытый файл .env.example.

ls -la

Используйте свой текстовый редактор (например, nano, vim), чтобы создать новый файл .env и настроить его, сославшись на пример файла .env.example.

Попробуйте запустить:

export $(grep -v '^#' .env | xargs) && ./csubot

Самостоятельная компиляция

Выполните команду в корневом каталоге проекта:

go build -o csubot

Попробуйте запустить:

export $(grep -v '^#' .env | xargs) && ./csubot

HTTPS

Бэкенд не предоставляет прямую поддержку https, доступен только по http.

Вы можете использовать Apache, Nginx, Microsoft Internet Information Services (IIS) и другие службы для настройки HTTPS.

Если вы используете Cloudflare CDN, вы также можете установить для режима шифрования SSL/TLS значение Flexible. Таким образом, пользователи, обращающиеся к серверам Cloudflare, используют автоматически настроенный протокол https Cloudflare, а Cloudflare обращается к серверам, на которых вы настроили бэкенд-сервис, используя протокол http.

Запуск в качестве службы systemd

sudo mkdir /usr/local/bin/csubot/
sudo cp .env /usr/local/bin/csubot/.env
sudo cp csubot /usr/local/bin/csubot/csubot
sudo cp -r ./locales /usr/local/bin/csubot/locales

Создайте пользователя службы

sudo useradd --system --no-create-home --shell /sbin/nologin csubotuser

Настройте права доступа

sudo chown csubotuser:csubotuser /usr/local/bin/csubot/csubot
sudo setfacl -R -m u:csubotuser:r /usr/local/bin/csubot
sudo chmod +x /usr/local/bin/csubot/csubot

Создайте и отредактируйте /etc/systemd/system/csubot.service, запишите

[Unit]
Description=CSUBOT Backend
After=network-online.target
Wants=network-online.target

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
User=csubotuser
Group=csubotuser
ExecStart=/usr/local/bin/csubot/csubot
WorkingDirectory=/usr/local/bin/csubot
RestartSec=10s
Restart=always
# Restart=on-failure

# Загрузите файл переменных среды
EnvironmentFile=/usr/local/bin/csubot/.env
# Запустите службу
sudo systemctl start csubot.service

# Просмотрите статус работы
sudo systemctl status csubot.service

# Установите автоматический запуск при загрузке
sudo systemctl enable csubot.service

Другие версии этой веб-страницы

Эта статья существует на нескольких языках.

Если вы хотите оставить комментарий, посетите следующие веб-страницы:

ZH EN ZH-TW JA

Эти веб-страницы поддерживают только просмотр, не позволяют оставлять комментарии или сообщения, но предоставляют больше языковых опций и более быстрое время загрузки:

ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO