Languages: English - Português
Table of content:
Alias chatbot for Google Hangouts Chat to send a message to a list of members in a room, usage:
Docker must be installed on the server
- Check if
docker-compose
is available:
$ docker-compose -v
docker-compose version 1.23.2, build 1110ad0
$
- If not, install it:
pip3 install docker-compose
- Clone the repository and access chatbot dir
git clone https://github.com/renanpessoa/hangouts-chatbot-alias.git
cd hangouts-chatbot-alias
- Access this page https://console.developers.google.com/iam-admin/settings?authuser=1&organizationId=`$ORGANIZATIONID`&project=`$PROJECT_NAME` and add the project number of the bot in
application.py
like that:
PROJECT_NUMBER = ['0123456789']
- Build images:
docker-compose build
- After build, start containers:
docker-compose up -d
docker-compose
orchestrator will build two containers:
app
redis
- This container will be the database in memory using Redis.
- The data are persistence in Docker volume called
redis_data
.
Don't make ANY
change inside the container, all changes will be lost
!
All changes must be made in local files and then create a new build:
-
Stop containers
docker-compose down
-
Create new build
docker-compose build
-
Start
docker-compose up -d
Chatbot de alias para o Google Hangouts Chat, exemplo de uso:
É necessário ter o Docker instalado no servidor
- Verifique se o docker-compose está instalado com o comando abaixo:
$ docker-compose -v
docker-compose version 1.23.2, build 1110ad0
$
- Se retornar erro é necessário realizar a instalação:
pip3 install docker-compose
- Clone o repositório e acesse o diretório da aplicação
git clone https://github.com/renanpessoa/hangouts-chatbot-alias.git
cd hangouts-chatbot-alias
- Acesse a página https://console.developers.google.com/iam-admin/settings?authuser=1&organizationId=`$ORGANIZATIONID`&project=`$PROJECT_NAME` e adicione o número do projeto do bot no arquivo
application.py
exemplo:
PROJECT_NUMBER = ['0123456789']
- Realize o build das imagens utilizando o comando abaixo, o procedimento pode levar alguns minutos.
docker-compose build
- Após o build os containers estão prontos para iniciar.
docker-compose up -d
O orquestrador docker-compose
vai subir dois containers:
app
- Contem aplicação em Python que foi criada utilizando o microframework Flask para receber as requisições do Chat e retornar os dados solicitados, dentro do container também está instalado o uWSGI para servir como web server.
- O uWSGI está configurado para inicializar 5 processos dentro do container para servir as requisições, caso seja necessário ajustar este valor basta editar o arquivo
project.ini
- Os dados utilizados pela aplicação são gerenciados pelo container redis.
redis
- Este container serve como banco de dados em memória utilizando o Redis por questões de desempenho.
- Apesar dos dados serem consultados na memória também é realizado a persistencia em disco no volume
redis_data
criado automáticamente pelo orquestrador docker compose, com isso não há risco dos dados serem perdidos quando o container for finalizado.
Caso seja necessário realizar algum ajuste no código da aplicação ou nos arquivos de configuração NUNCA
altere diretamente no container pois ele não armazena dados, qualquer alteração será PERDIDA
!
Realize os ajustes nos arquivos locais, em seguida realize um novo build para gerar novas imagens utilizando o comando abaixo.
-
Para os containers atuais
docker-compose down
-
Realize o novo build
docker-compose build
-
Inicie os containers
docker-compose up -d
OBS: Não é necessário realizar um novo build para alterar as variaveis de ambiente do docker-compose.yml
como por exemplo o TOKEN, basta reiniciar os containers.