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 และ fork ที่เก็บนี้
  2. เลือกแพลตฟอร์มที่จะปรับใช้ เช่น Cloudflare Pages, Vercel, Netlify เป็นต้น
  3. เลือกนำเข้าจากที่เก็บ Github เลือกที่เก็บที่ fork ในขั้นตอนแรก

กำหนดค่าพาธการทำงานเป็นรูทไดเร็กทอรีของโครงการ คำสั่งคอมไพล์คือ:

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 (อันที่อยู่ใต้รหัสไซต์)>

ใช้ไฟล์ปฏิบัติการไบนารี

เราจะใช้ระบบปฏิบัติการ 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 คุณยังสามารถตั้งค่าโหมดการเข้ารหัสเป็น Flexible ในการเข้ารหัส SSL/TLS วิธีนี้ผู้ใช้จะเข้าถึงเซิร์ฟเวอร์ 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