/citi-library

Um pequeno site para mostrar o que aprendemos ao longo do tempo (#library do Discord).

Primary LanguageJavaScript

CITi Library

Resultado do que aprendemos no #library do Discord.

Este projeto utiliza:

  • Firebase
  • Discord.js
  • create-react-app
  • CSS modules
  • Sass
  • Redux
  • Redux Thunk

Desenvolvendo

  1. cp .env.example .env
  2. npm install
  3. npm run start para iniciar o site
  4. npm run bot para iniciar o bot

Como o projeto é colocado no ar?

Se utiliza o Buddy para colocar o projeto no ar (tanto o site quanto o bot). Ele é um aplicativo automatizador de tarefas (como fazer build, entrar no SSH e rodar comandos, etc.). As pipelines para ele já existem, mas você pode saber como funciona indo até a pasta _buddy, onde tem todos os passos.

Cada uma das duas pipelines fazem conexão com o SSH do CITi e a senha original foi omitida por razões óbvias.

Status

Bot Site
buddy pipeline buddy pipeline

Onde está cada coisa?

O bot da library não roda no mesmo arquivo que o bot do Joãozinho. O comando /library é ignorado no Joãozinho para ser lidado com nosso outro bot.

Apesar disso, o bot da library está no mesmo diretório do Joãozinho no servidor (no webfaction: webapps/discord_joaozinho) e eles rodam em dois processos diferentes.

Checando quais processos estão rodando

  1. Se conecte no SSH

  2. Vá até o diretório do discord_joaozinho: cd ~/webapps/discord_joaozinho

  3. Como cada aplicação é isolada no Webfaction, você precisa exportar o diretório bin para poder chamar comandos como npm ou node.

    export PATH=$HOME/webapps/discord_joaozinho/bin:$PATH
  4. Digite forever list e veja as aplicações rodando.

Reiniciando o bot

  1. Se conecte no SSH

  2. Vá até o diretório do discord_joaozinho: cd ~/webapps/discord_joaozinho

  3. Como cada aplicação é isolada no Webfaction, você precisa exportar o diretório bin para poder chamar comandos como npm ou node.

    export PATH=$HOME/webapps/discord_joaozinho/bin:$PATH
  4. Digite forever list e veja quais aplicações estão rodando. Você pode pegar o caminho de cada log e digitar vim caminho/do/log

  5. Para reiniciar, digite forever restartall

Banco de dados

A título de informação, o banco de dados do bot da library (eu realmente deveria escolher um nome pra ele) é completamente independente do Joãozinho.

Dando deploy no site

  1. Baixe o site para seu computador
  2. Rode npm install
  3. Rode npm run build para gerar os arquivos
  4. Digite scp build/* citi@citi.org.br:webapps/discord_library e insira a senha do SSH
  5. Espere todos os arquivos serem transferidos
  6. Logue-se no SSH, vá até o diretório discord_library
  7. Digite export PATH=$HOME/webapps/discord_library/bin:$PATH
  8. Digite forever restart server.js
  9. Done! ✨

Dando deploy no bot

É uma boa depois passar o bot pra o repositório do Joãozinho, que tem deploy automático.

  1. Baixe o site para seu computador
  2. Rode npm install
  3. Modifique o que precisar no bot (e garanta que ele está funcionando com suas modificações)
  4. Do diretório principal, digite scp bot/index.js citi@citi.org.br:webapps/discord_joaozinho/library.js e insira a senha do SSH
  5. Espere tudo ser transferido
  6. Logue no SSH, vá até o diretório discord_joaozinho
  7. Digite export PATH=$HOME/webapps/discord_joaozinho/bin:$PATH
  8. Digite forever restartall
  9. Done! ✨

Rodando o bot localmente

  1. Baixe o site para seu computador
  2. Rode npm install
  3. Use nodemon bot/index.js para rodar (toda vez que você atualizar algo no arquivo, o bot reiniciará)