CSUBOT — це супер-адміністраторський бот з відкритим кодом.
У цій статті описано, як самостійно розгорнути CSUBOT.
Будь ласка, спочатку повністю прочитайте цей документ: Інструкція з використання бота CSUBOT
Рекомендовано: Перевірте публічну IP-адресу цього пристрою для доступу до різних веб-сайтів, щоб перевірити поточне мережеве середовище.
Передумови
Для самостійного розгортання CSUBOT необхідно щонайменше виконати такі умови:
- Мати доменне ім’я. (Принаймні мати вторинний домен для бекенду. Фактично, для фронтенду та бекенду потрібно два вторинні домени, але зазвичай домен фронтенду може бути наданий платформою розгортання)
- Мати сервер. Або розгорнути на платформі, де можна розгорнути серверні служби. Якщо ви знаєте безкоштовну платформу, де можна розгорнути серверні служби, будь ласка, не соромтеся, натисніть тут, щоб залишити коментар автору .
- Мати необмежений обліковий запис Telegram, щоб створити бота Telegram і отримати токен бота.
- Мати необмежений обліковий запис Cloudflare, щоб увімкнути перевірку Captcha Cloudflare Turnstile. Зареєструйте обліковий запис: https://dash.cloudflare.com/
Операції
- Увімкнути Cloudflare Turnstile
- Розгорнути фронтенд
- Створити бота Telegram
- Налаштувати бекенд
Увімкнути Cloudflare Turnstile
Натисніть на це посилання, щоб відкрити панель налаштувань Cloudflare Turnstile Компонент Turnstile
Натисніть add widget, щоб додати віджет Turnstile
Натисніть Add Hostnames, щоб додати доменне ім’я фронтенду. Якщо ви плануєте використовувати доменне ім’я, надане платформою хостингу фронтенду, тут можна написати що завгодно.
Натисніть кнопку “Створити”, після чого ви побачите Site Key і Secret Key
Розгорнути фронтенд
Ми візьмемо для прикладу розгортання на платформі хостингу фронтенду.
- Відкрийте https://github.com/cjh0613/csubot-vue , зробіть форк цього репозиторію
- Виберіть платформу для розгортання, наприклад, Cloudflare Pages, Vercel, Netlify тощо.
- Виберіть імпорт з репозиторію Github і виберіть репозиторій, форкнутий на першому кроці.
Робочий шлях налаштовано на кореневий каталог проекту, а команда компіляції:
npm install && npm run build
Вихідний каталог:
dist/
Налаштування змінних середовища:
VITE_ENDPOINT=https://xxxx.com <URL-адреса бекенду, потрібен https>
VITE_SITEKEY=0x4AAAAAABBBBBBBBBBB <Site Key сайту Cloudflare turnstile (верхній)>
- Почніть розгортання, після чого ви побачите доменне ім’я, надане платформою. Ви також можете прив’язати власний домен. Потрібно дочекатися налаштування 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 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