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
- Habilitar Cloudflare Turnstile
- Implantar o frontend
- Criar um robô Telegram
- 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.
- Abra https://github.com/cjh0613/csubot-vue , faça um fork deste repositório
- Selecione a plataforma de implantação, como Cloudflare Pages, Vercel, Netlify, etc.
- 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)>
- 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