README.md 3.02 KB
Newer Older
Matheus Horstmann's avatar
Matheus Horstmann committed
1 2 3 4 5 6 7 8 9 10 11 12
Agendador
=========

O aplicativo Agendador foi desenvolvido para viabilizar a automatização do agendamento dos atendimentos com hora marcada em órgãos públicos, permitindo que uma prefeitura crie, por exemplo, horários de atendimento para médicos em postos de saúde.

Informações
-----------

* Versão rails: 5.0.0
* Versão ruby: 2.3.1
* Versão PostgreSQL: 9.x

Matheus Horstmann's avatar
Matheus Horstmann committed
13
## 1) Docker
Matheus Horstmann's avatar
Matheus Horstmann committed
14
Instale o [docker-ce](https://docs.docker.com/install/) e,caso necessário mude seu servidor DNS  em `/etc/docker/daemon.json` para o devido IP, no caso no C3SL
Matheus Horstmann's avatar
Matheus Horstmann committed
15 16 17 18 19 20 21 22 23 24 25 26 27
```
{
   "dns": [ "200.17.202.3"]
}
```

Instale o [docker-compose](https://docs.docker.com/compose/install/#install-compose)


```bash
  $ sudo curl -L https://github.com/docker/compose/releases/download/1.20.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  $ sudo chmod +x /usr/local/bin/docker-compose
```
Matheus Horstmann's avatar
Matheus Horstmann committed
28 29
## 2) Nginx
Instale o [Nginx](https://www.nginx.com/resources/wiki/start/topics/tutorials/install/#official-debian-ubuntu-packages) seguindo as recomendações do própio pacote.
Matheus Horstmann's avatar
Matheus Horstmann committed
30

Matheus Horstmann's avatar
Matheus Horstmann committed
31 32 33 34 35 36 37 38 39 40 41 42 43 44
Baseado no arquivo `agendador.conf` configure o NGNIX.
Colocando as configurações de proxy, sendo mais importante os campos de headers "proxy_set_headers"
```
proxy_pass_request_headers on;
proxy_pass http://127.0.0.1:3000;

proxy_set_header access-token $http_access_token;
proxy_set_header expiry $http_expiry;
proxy_set_header uid $http_uid;
proxy_set_header client $http_client;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
proxy_set_header   Host             $host;
```
Matheus Horstmann's avatar
Matheus Horstmann committed
45

Matheus Horstmann's avatar
Matheus Horstmann committed
46
## 3) Repositório
Matheus Horstmann's avatar
Matheus Horstmann committed
47 48

```bash
Matheus Horstmann's avatar
Matheus Horstmann committed
49
  $ git clone --recurse-submodules https://gitlab.c3sl.ufpr.br/agendador/agendador-docker.git
Matheus Horstmann's avatar
Matheus Horstmann committed
50
```
Matheus Horstmann's avatar
Matheus Horstmann committed
51
## 4) Environment
Matheus Horstmann's avatar
Matheus Horstmann committed
52
Crie um arquivo `.env` seguindo o exemplo `.env-example`
Matheus Horstmann's avatar
Matheus Horstmann committed
53 54 55 56 57 58 59 60 61 62
```
AGENDADOR_SECRET_KEY_BASE= #Chave que o rails gera após rodar em produção a primeira vez
AGENDADOR_API_DB_USER= #nome do usuário do banco
AGENDADOR_API_DB_PASSWORD= #Senha do usuário do banco
AGENDADOR_REDIS_PASSWORD= #Senha do redis
AGENDADOR_RAILS_ENV= #Ambiente a qual está rodando "TEST" "PRODUCTION"
AGENDADOR_apiHost=http://localhost
AGENDADOR_apiPort=3000
MAIL_USERNAME= #Usuário que irá mandar email
MAIL_PASSWORD= #Senha do usuário que irá mandar email
Matheus Horstmann's avatar
Matheus Horstmann committed
63 64 65 66 67
MX_SERVER= #Servidor de e-mail
MX_PORT= #Porta a qual o servidor de e-mail está rodando
MAIL_DOMAIN= #Dominio ao qual será enviado o email


Matheus Horstmann's avatar
Matheus Horstmann committed
68 69
```
## 4)  Configuração
Matheus Horstmann's avatar
Matheus Horstmann committed
70 71 72 73 74 75 76 77 78 79 80 81 82 83
Para a primeira execução o arquivo backend/Dockefile deve estar no modo criação:

```
....
CMD ["CREATE"]
```
-----------

Para as execuções seguintes é necessário que o arquivo backend/Dockefile  "PRODUCTION", para que o banco de dados não seja resetado:

```
....
CMD ["PRODUCTION"]
```
Matheus Horstmann's avatar
Matheus Horstmann committed
84

Matheus Horstmann's avatar
Matheus Horstmann committed
85 86

## Execução
Matheus Horstmann's avatar
Matheus Horstmann committed
87
Este comando inicializará o docker e poderá demorar entre 1 a 5 minutos, sendo que na primeira vez demorará entre 5 a 10 minutos dependendedo da sua conexão com a internet
Matheus Horstmann's avatar
Matheus Horstmann committed
88 89 90
```bash
  $ sudo docker-compose up
```
Matheus Horstmann's avatar
Matheus Horstmann committed
91 92 93 94 95 96 97

Em caso de erro:
```bash
  $ sudo docker-compose stop
  $ sudo docker container prune
```
E execute novamente