CSUBOT er en open source superadministratorrobot.

Denne artikel beskriver, hvordan du selv implementerer CSUBOT.

Læs venligst dette dokument fuldt ud først: CSUBOT Robot Brugermanual

Anbefaling: Forespørg den offentlige IP-adresse for din maskine til at få adgang til forskellige websteder, der bruges til at kontrollere det aktuelle netværksmiljø.

Forudsætninger

For selv at kunne implementere CSUBOT skal du mindst opfylde følgende betingelser:

  • Besidde et domæne. (Besid mindst et andetniveau-domæne til backend. Faktisk kræver frontend og backend to andetniveau-domæner i alt, men generelt kan frontend-domænet leveres af den implementerede platform)
  • Besid en server. Eller implementer den på en platform, hvor backend-tjenester kan implementeres. Hvis du kender en gratis platform, hvor backend-tjenester kan implementeres, tøv ikke med at klikke her og fortæl forfatteren i kommentarerne.
  • Besid en Telegram-konto, der ikke er begrænset, til at oprette en Telegram-robot og få robottens Token
  • Besid en Cloudflare-konto, der ikke er begrænset, til at aktivere Cloudflare Turnstile CAPTCHA. Registrer konto: https://dash.cloudflare.com/

Trin

  1. Aktiver Cloudflare Turnstile
  2. Implementer frontend
  3. Opret Telegram-robot
  4. Konfigurer backend

Aktiver Cloudflare Turnstile

Klik på dette link for at åbne Cloudflare Turnstile-konfigurationspanelet Turnstile-komponentkonfiguration

Klik på add widget for at tilføje en Turnstile-komponent

Klik på Add Hostnames for at tilføje frontend-domænet. Hvis du planlægger at bruge det domæne, der leveres af frontend-hostingplatformen, kan du skrive hvad som helst her.

Klik på opret-knappen, og så kan du se Site Key og Secret Key

Implementer frontend

Vi bruger en implementering på en frontend-hostingplatform som eksempel.

  1. Åbn https://github.com/cjh0613/csubot-vue , fork dette lager
  2. Vælg den platform, du vil implementere, f.eks. Cloudflare Pages, Vercel, Netlify osv.
  3. Vælg at importere fra Github-lager, og vælg det lager, du forkedede i første trin.

Arbejdsstikonfigurationen er projektets rodkatalog, og build-kommandoen er:

npm install && npm run build

Output-mappen er:

dist/

Konfigurer miljøvariabler:

VITE_ENDPOINT=https://xxxx.com <Backend URL, skal være https>

VITE_SITEKEY=0x4AAAAAABBBBBBBBBBB <Cloudflare Turnstile Site Key (den øverste)>
  1. Start implementeringen, og når den er færdig, kan du se det domæne, der leveres af platformen. Du kan også binde dit eget domæne. Du skal vente på DNS-konfiguration og certifikatgenerering.

Opret Telegram-robot

Send /newbot i en privat besked til https://t.me/BotFather , og følg robotens anvisninger for at oprette en ny robot. Når du er færdig med at oprette, vil du modtage en Token

Konfigurer backend

Du kan vælge at køre den binære eksekverbare fil direkte eller kompilere den selv.

Miljøvariabelreference

TGWD_TOKEN=<Telegram-robotens token, hentet fra @botfather>
TGWD_FRONTEND_DOMAIN=<Frontend-domæne, behøver ikke https>
TGWD_SECRET=<Udfyld hvad som helst>
TGWD_PORT=8000
TGWD_CFTS_API_KEY=<Cloudflare turnstile Secret Key (den under Site Key)>

Brug binær eksekverbar fil

Vi tager linux amd64-operativsystemet som et eksempel.

Opret først en ny mappe.

mkdir csubot && cd csubot

Download den binære eksekverbare fil. For dette downloadlink skal du åbne https://github.com/cjh0613/csubot/releases for at få det nyeste link. Du skal muligvis klikke på Show all assets for at finde den fil, der passer til din platform.

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

Da det er en zip-format komprimeret pakke, skal du udpakke den:

unzip csubot-linux-amd64.zip

Hvis du ikke kan udføre denne kommando, skal du bekræfte, at unzip-pakken er installeret.

Gå til den mappe, hvor csubot er placeret,

Brug følgende kommando til at se den skjulte fil .env.example.

ls -la

Brug din teksteditor (f.eks. nano, vim) til at oprette en ny fil .env, og se eksempelfilen .env.example for konfiguration.

Prøv at køre:

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

Kompilér selv

Udfør kommandoen i projektets rodkatalog:

go build -o csubot

Prøv at køre:

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

HTTPS

Backend giver ikke direkte HTTPS-understøttelse, kun HTTP-adgang.

Du kan bruge tjenester som Apache, Nginx, Microsoft Internet Information Services (IIS) til at konfigurere HTTPS.

Hvis du bruger Cloudflare CDN, kan du også indstille krypteringsmode i SSL/TLS-kryptering til Flexible. På denne måde bruger brugere HTTPS-protokollen, der automatisk er konfigureret af Cloudflare, til at få adgang til Cloudflare-serveren, og derefter bruger Cloudflare HTTP-protokollen til at få adgang til den server, du har konfigureret backend-tjenesten på.

Kør som en systemd-tjeneste

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

Opret en tjenestebruger

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

Konfigurer tilladelser

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

Opret og rediger /etc/systemd/system/csubot.service, skriv

[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

# Indlæs miljøvariabelfilen
EnvironmentFile=/usr/local/bin/csubot/.env
# Start tjenesten
sudo systemctl start csubot.service

# Se driftsstatus
sudo systemctl status csubot.service

# Indstil til automatisk start ved opstart
sudo systemctl enable csubot.service

Andre versioner af denne webside

Denne artikel findes i flere sprogversioner.

Hvis du vil skrive en kommentar, skal du besøge følgende webside:

ZH EN ZH-TW JA

Disse websider understøtter kun browsing og kan ikke bruges til at skrive kommentarer eller efterlade beskeder, men de giver flere sprogmuligheder og har kortere indlæsningstider:

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