CSUBOT — це супер-адміністраторський бот з відкритим кодом.

У цій статті описано, як самостійно розгорнути CSUBOT.

Будь ласка, спочатку повністю прочитайте цей документ: Інструкція з використання бота CSUBOT

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

Передумови

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

  • Мати доменне ім’я. (Принаймні мати вторинний домен для бекенду. Фактично, для фронтенду та бекенду потрібно два вторинні домени, але зазвичай домен фронтенду може бути наданий платформою розгортання)
  • Мати сервер. Або розгорнути на платформі, де можна розгорнути серверні служби. Якщо ви знаєте безкоштовну платформу, де можна розгорнути серверні служби, будь ласка, не соромтеся, натисніть тут, щоб залишити коментар автору .
  • Мати необмежений обліковий запис Telegram, щоб створити бота Telegram і отримати токен бота.
  • Мати необмежений обліковий запис Cloudflare, щоб увімкнути перевірку Captcha 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 <Site Key сайту 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=<Secret Key Cloudflare turnstile (нижче Site Key)>

Використовуйте двійковий виконуваний файл

Ми візьмемо для прикладу операційну систему 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 encryption на Flexible. Таким чином, користувачі отримують доступ до сервера Cloudflare за допомогою автоматично налаштованого протоколу https, а 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