CSUBOT là một robot siêu quản trị viên mã nguồn mở.

Bài viết này giới thiệu cách tự triển khai CSUBOT.

Vui lòng đọc kỹ tài liệu này: Hướng dẫn sử dụng Robot CSUBOT

Đề xuất: Kiểm tra IP công cộng của máy này khi truy cập các trang web khác nhau, để kiểm tra môi trường mạng hiện tại.

Điều kiện tiên quyết

Để tự triển khai CSUBOT, bạn cần đáp ứng ít nhất các điều kiện sau:

  • Có tên miền. (Ít nhất phải có một tên miền cấp hai, được sử dụng cho phần phụ trợ. Trên thực tế, phần giao diện người dùng và phần phụ trợ cần tổng cộng hai tên miền cấp hai, nhưng nói chung, tên miền giao diện người dùng có thể được cung cấp bởi nền tảng triển khai)
  • Có một máy chủ. Hoặc triển khai trên một nền tảng có thể triển khai các dịch vụ phụ trợ. Nếu bạn biết một nền tảng miễn phí có thể triển khai các dịch vụ phụ trợ, đừng ngần ngại, nhấp vào đây để đăng nhận xét cho tác giả .
  • Có một tài khoản Telegram không bị hạn chế, được sử dụng để tạo một bot Telegram và lấy mã thông báo (Token) của bot.
  • Có một tài khoản Cloudflare không bị hạn chế, được sử dụng để kích hoạt mã xác minh Cloudflare Turnstile. Đăng ký tài khoản: https://dash.cloudflare.com/

Các bước thực hiện

  1. Kích hoạt Cloudflare Turnstile
  2. Triển khai giao diện người dùng
  3. Tạo bot Telegram
  4. Cấu hình phần phụ trợ

Kích hoạt Cloudflare Turnstile

Nhấp vào liên kết này để mở bảng điều khiển cấu hình Cloudflare Turnstile Cấu hình thành phần Turnstile

Nhấp vào add widget, để thêm một thành phần Turnstile

Nhấp vào Add Hostnames, để thêm tên miền của giao diện người dùng. Nếu bạn định sử dụng tên miền do nền tảng lưu trữ giao diện người dùng cung cấp, bạn có thể viết bất kỳ điều gì ở đây.

Nhấp vào nút tạo, sau đó bạn có thể thấy Site Key và Secret Key

Triển khai giao diện người dùng

Chúng ta sẽ lấy việc triển khai trên nền tảng lưu trữ giao diện người dùng làm ví dụ.

  1. Mở https://github.com/cjh0613/csubot-vue , fork kho lưu trữ này
  2. Chọn nền tảng triển khai, chẳng hạn như Cloudflare Pages, Vercel, Netlify, v.v.
  3. Chọn nhập từ kho Github, chọn kho được fork ở bước đầu tiên.

Đường dẫn làm việc được định cấu hình là thư mục gốc của dự án, lệnh biên dịch là:

npm install && npm run build

Thư mục đầu ra là:

dist/

Định cấu hình các biến môi trường:

VITE_ENDPOINT=https://xxxx.com <URL phụ trợ, cần https>

VITE_SITEKEY=0x4AAAAAABBBBBBBBBBB <Khóa trang web (Site Key) của Cloudflare turnstile (khóa ở trên)>
  1. Bắt đầu triển khai, sau khi hoàn thành, bạn có thể thấy tên miền do nền tảng cung cấp. Bạn cũng có thể liên kết tên miền của riêng mình. Cần đợi cấu hình DNS và tạo chứng chỉ.

Tạo bot Telegram

Nhắn tin riêng cho https://t.me/BotFather , gửi /newbot, tạo một bot mới theo hướng dẫn của bot. Sau khi tạo xong, bạn sẽ nhận được một Token

Cấu hình phần phụ trợ

Bạn có thể chọn chạy trực tiếp tệp thực thi nhị phân hoặc tự biên dịch.

Tham khảo biến môi trường

TGWD_TOKEN=<Token của bot Telegram, lấy từ @botfather>
TGWD_FRONTEND_DOMAIN=<Tên miền giao diện người dùng, không cần https>
TGWD_SECRET=<Điền tùy ý>
TGWD_PORT=8000
TGWD_CFTS_API_KEY=<Khóa bí mật (Secret Key) của Cloudflare turnstile (khóa bên dưới khóa trang web)>

Sử dụng tệp thực thi nhị phân

Chúng ta sẽ lấy hệ điều hành linux amd64 làm ví dụ.

Đầu tiên, hãy tạo một thư mục mới.

mkdir csubot && cd csubot

Tải xuống tệp thực thi nhị phân. Đối với liên kết tải xuống ở đây, vui lòng mở https://github.com/cjh0613/csubot/releases để lấy liên kết mới nhất, bạn có thể cần nhấp vào Show all assets để tìm tệp phù hợp với nền tảng của bạn.

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

Vì đây là một gói nén định dạng zip, hãy giải nén:

unzip csubot-linux-amd64.zip

Nếu bạn không thể thực thi lệnh này, vui lòng xác nhận rằng gói unzip đã được cài đặt thành công.

Đi vào thư mục chứa csubot,

Sử dụng lệnh sau, bạn có thể xem tệp .env.example bị ẩn.

ls -la

Sử dụng trình soạn thảo văn bản của bạn (chẳng hạn như nano, vim), tạo một tệp mới .env, tham khảo tệp ví dụ .env.example để cấu hình.

Hãy thử chạy:

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

Tự biên dịch

Thực thi lệnh trong thư mục gốc của dự án:

go build -o csubot

Hãy thử chạy:

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

HTTPS

Phần phụ trợ không trực tiếp cung cấp hỗ trợ https mà chỉ có thể truy cập qua http.

Bạn có thể sử dụng các dịch vụ như Apache, Nginx, Microsoft Internet Information Services (IIS) để định cấu hình HTTPS.

Nếu bạn sử dụng Cloudflare CDN, bạn cũng có thể đặt chế độ mã hóa thành Flexible trong SSL/TLS encryption. Bằng cách này, người dùng truy cập máy chủ Cloudflare bằng giao thức https được Cloudflare tự động định cấu hình, sau đó Cloudflare truy cập máy chủ mà bạn đã định cấu hình dịch vụ phụ trợ bằng giao thức http.

Chạy dưới dạng dịch vụ 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

Tạo người dùng dịch vụ

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

Định cấu hình quyền

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

Tạo và chỉnh sửa /etc/systemd/system/csubot.service, ghi vào

[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

Các phiên bản khác của trang web này

Bài viết này có nhiều phiên bản ngôn ngữ.

Nếu bạn muốn đăng nhận xét, vui lòng truy cập các trang web sau:

ZH EN ZH-TW JA

Các trang web này chỉ hỗ trợ duyệt xem, không thể đăng nhận xét hoặc để lại tin nhắn, nhưng cung cấp nhiều tùy chọn ngôn ngữ hơn và thời gian tải nhanh hơn:

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