CSUBOT은 오픈 소스 슈퍼 관리자 봇입니다.

본문은 CSUBOT을 직접 배포하는 방법을 소개합니다.

다음 문서를 먼저 완전히 읽어주세요: CSUBOT 봇 사용 설명서

추천: 본 기기에서 다른 웹사이트에 접속할 때의 공용 IP 조회, 현재 네트워크 환경을 확인하는 데 사용됩니다.

전제 조건

CSUBOT을 직접 배포하려면 최소한 다음 조건을 충족해야 합니다.

  • 도메인 보유. (최소한 2차 도메인 하나를 보유해야 하며, 이는 백엔드용입니다. 실제로는 프런트엔드와 백엔드에 각각 2차 도메인이 필요하지만, 일반적으로 프런트엔드 도메인은 배포 플랫폼에서 제공합니다.)
  • 서버 하나 보유. 또는 백엔드 서비스를 배포할 수 있는 플랫폼에 배포합니다. 무료로 백엔드 서비스를 배포할 수 있는 플랫폼을 알고 계신다면 주저하지 마시고, 여기를 클릭하여 댓글로 저자에게 알려주세요 .
  • 제한되지 않은 Telegram 계정 보유. Telegram 봇을 생성하고 봇 토큰을 획득하는 데 사용됩니다.
  • 제한되지 않은 Cloudflare 계정 보유. 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 저장소에서 가져오기를 선택하고 1단계에서 포크한 저장소를 선택합니다.

작업 경로는 프로젝트 루트 디렉터리로 구성하고 컴파일 명령어는 다음과 같습니다.

npm install && npm run build

출력 디렉터리는 다음과 같습니다.

dist/

환경 변수 구성:

VITE_ENDPOINT=https://xxxx.com <백엔드 URL, https 필요>

VITE_SITEKEY=0x4AAAAAABBBBBBBBBBB <Cloudflare turnstile의 사이트 키 Site Key (위에 있는 것)>
  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=<Cloudflare turnstile의 Secret Key 키(사이트 키 아래에 있는 것)>

바이너리 실행 파일 사용

리눅스 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 암호화에서 암호화 모드를 Flexible로 설정할 수도 있습니다. 이렇게 하면 사용자가 Cloudflare 서버에 액세스할 때 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