CSUBOT é um robô superadministrador de código aberto.

Este artigo descreve como implantar o CSUBOT por conta própria.

Por favor, leia este documento completamente primeiro: Manual de instruções do robô CSUBOT

Recomendado: Consultar o IP público do seu computador para acessar diferentes sites, usado para verificar o ambiente de rede atual.

Pré-requisitos

A auto-implantação do CSUBOT requer que as seguintes condições sejam atendidas:

  • Possuir um domínio. (Possuir pelo menos um subdomínio, para o backend. Na verdade, um frontend e um backend requerem dois subdomínios no total, mas geralmente o domínio do frontend pode ser fornecido pela plataforma de implantação)
  • Possuir um servidor. Ou implantado em uma plataforma que pode implantar serviços de backend. Se você conhece uma plataforma gratuita que pode implantar serviços de backend, não hesite
  • Possuir uma conta do Telegram não restrita, usada para criar um robô Telegram e obter o Token do robô
  • Possuir uma conta Cloudflare não restrita, usada para habilitar o código de verificação Cloudflare Turnstile. Registrar conta: https://dash.cloudflare.com/

Passos

  1. Habilitar Cloudflare Turnstile
  2. Implantar o frontend
  3. Criar um robô Telegram
  4. Configurar o backend

Habilitar Cloudflare Turnstile

Clique neste link para abrir o painel de configuração do Cloudflare Turnstile Configuração do componente Turnstile

Clique em add widget, para adicionar um componente Turnstile

Clique em Add Hostnames, para adicionar o domínio do frontend. Se você planeja usar o nome de domínio fornecido pela plataforma de hospedagem de frontend, você pode escrever qualquer coisa aqui.

Clique no botão criar e você verá a Site Key e a Secret Key

Implantar o frontend

Tomemos como exemplo a implantação em uma plataforma de hospedagem de frontend.

  1. Abra https://github.com/cjh0613/csubot-vue , faça um fork deste repositório
  2. Selecione a plataforma de implantação, como Cloudflare Pages, Vercel, Netlify, etc.
  3. Selecione importar do repositório Github e selecione o repositório bifurcado na primeira etapa.

O caminho de trabalho é configurado para o diretório raiz do projeto e o comando de compilação é:

npm install && npm run build

O diretório de saída é:

dist/

Configurar variáveis de ambiente:

VITE_ENDPOINT=https://xxxx.com <URL do backend, requer https>

VITE_SITEKEY=0x4AAAAAABBBBBBBBBBB <Chave do site do Cloudflare turnstile Site Key (o que está na parte superior)>
  1. Comece a implantar e você verá o nome de domínio fornecido pela plataforma após a conclusão. Você também pode vincular seu próprio nome de domínio. Você precisa esperar pela configuração de DNS e geração de certificado.

Criar um robô Telegram

Mensagem privada https://t.me/BotFather , envie /newbot, siga as instruções do robô para criar um novo robô. Depois de criado, você receberá um Token

Configurar o backend

Você pode optar por executar diretamente o arquivo executável binário ou compilá-lo você mesmo.

Referência de variáveis de ambiente

TGWD_TOKEN=<token do robô Telegram, obtido em @botfather>
TGWD_FRONTEND_DOMAIN=<domínio do frontend, não requer https>
TGWD_SECRET=<preencha qualquer coisa>
TGWD_PORT=8000
TGWD_CFTS_API_KEY=<Chave secreta do Cloudflare turnstile Secret Key (aquela abaixo da chave do site)>

Usar arquivo executável binário

Tomemos como exemplo o sistema operacional linux amd64.

Primeiro, crie uma nova pasta.

mkdir csubot && cd csubot

Baixe o arquivo executável binário. Para este link de download, abra https://github.com/cjh0613/csubot/releases para obter o link mais recente. Você pode precisar clicar em Show all assets para encontrar um arquivo adequado para sua plataforma.

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

Como é um pacote compactado no formato zip, descompacte:

unzip csubot-linux-amd64.zip

Se você não conseguir executar este comando, confirme se o pacote unzip foi instalado com sucesso.

Entre no diretório onde csubot está localizado,

Use o seguinte comando para visualizar o arquivo .env.example oculto.

ls -la

Use seu editor de texto (como nano, vim), crie um novo arquivo .env e consulte o arquivo de exemplo .env.example para configuração.

Tente executar:

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

Compilar você mesmo

Execute o comando no diretório raiz do projeto:

go build -o csubot

Tente executar:

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

HTTPS

O backend não fornece suporte HTTPS diretamente, apenas o acesso HTTP é possível.

Você pode usar Apache, Nginx, Microsoft Internet Information Services (IIS) e outros serviços para configurar HTTPS.

Se você usa Cloudflare CDN, você também pode definir o modo de criptografia para Flexible em SSL/TLS encryption. Dessa forma, o usuário acessa o servidor Cloudflare usando o protocolo HTTPS configurado automaticamente pelo Cloudflare, e então o Cloudflare acessa o servidor onde você configurou o serviço de backend usando o protocolo HTTP.

Executar como um serviço 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

Criar um usuário de serviço

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

Configurar permissões

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

Crie e edite /etc/systemd/system/csubot.service, escreva

[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

# Carregar arquivo de variáveis de ambiente
EnvironmentFile=/usr/local/bin/csubot/.env
# Iniciar serviço
sudo systemctl start csubot.service

# Ver estado de execução
sudo systemctl status csubot.service

# Definir inicialização automática
sudo systemctl enable csubot.service

Outras versões desta página

Este artigo está disponível em vários idiomas.

Essas páginas da web só suportam navegação e não podem postar comentários ou mensagens, mas fornecem mais opções de idiomas e têm tempos de carregamento mais curtos:

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