diff --git a/README.md b/README.md index 21b7589..79db961 100755 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ +Fase III + Primera tarefa: -Implemente um serviço REST em NodeJS que exponha o endpoint "/token" que receba o JSON "{user:'user1', password:'pass1'}" e retorne um token JWT caso sucesso, ou status 500 caso contrário. \ No newline at end of file +Implemente um serviço REST em NodeJS que exponha o endpoint "/token" que receba o JSON "{user:'user1', password:'pass1'}" e retorne um token JWT caso sucesso, ou status 500 caso contrário. + +Segunda tarefa: + +Crie uma página HTML que solicite usuário/senha, invoque o serviço da primeira tarefa e mostre a mensagem "Autenticado com sucesso" ou "Falha na autenticação". + +Essa página deve estar em um segundo container e servida por NGINX. Mande o print da sua tela! \ No newline at end of file diff --git a/docker-compose-full.yml b/docker-compose-full.yml new file mode 100644 index 0000000..01b23a9 --- /dev/null +++ b/docker-compose-full.yml @@ -0,0 +1,61 @@ +version: '3' +services: + nginx: + container_name: nginx + depends_on: + - app + restart: always + build: ./nginx + image: custom/nginx + ports: + - 8000:8000 + networks: + - network_1 + app: + container_name: app + depends_on: + - mongo + restart: always + build: ./node + image: custom/node + networks: + - network_1 + - network_2 + mongo: + container_name: mongo + build: ./mongo + image: custom/mongo + environment: + MONGO_INITDB_ROOT_USERNAME: root + MONGO_INITDB_ROOT_PASSWORD: ruth + networks: + - network_2 + ports: + - 27017:27017 + prometheus: + container_name: prometheus + image: prom/prometheus:latest + volumes: + - ./prometheus.yml:/etc/prometheus/prometheus.yml + networks: + - network_2 + ports: + - 9090:9090 + grafana: + container_name: grafana + image: grafana/grafana + networks: + - network_2 + ports: + - 3000:3000 +networks: + network_1: + ipam: + driver: default + config: + - subnet: 192.168.5.0/24 + network_2: + ipam: + driver: default + config: + - subnet: 192.168.6.0/24 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 01b23a9..beed319 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,4 @@ + version: '3' services: nginx: @@ -8,19 +9,27 @@ services: build: ./nginx image: custom/nginx ports: - - 8000:8000 + - 80:80 networks: - network_1 + nginx2: + container_name: nginx2 + restart: always + image: nginx + ports: + - "8080:8000" + environment: + - NGINX_PORT=8000 app: container_name: app - depends_on: - - mongo + # depends_on: + # - mongo restart: always build: ./node image: custom/node networks: - network_1 - - network_2 + # - network_2 mongo: container_name: mongo build: ./mongo @@ -29,7 +38,7 @@ services: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: ruth networks: - - network_2 + - network_1 ports: - 27017:27017 prometheus: @@ -38,14 +47,14 @@ services: volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml networks: - - network_2 + - network_1 ports: - 9090:9090 grafana: container_name: grafana image: grafana/grafana networks: - - network_2 + - network_1 ports: - 3000:3000 networks: @@ -54,8 +63,8 @@ networks: driver: default config: - subnet: 192.168.5.0/24 - network_2: - ipam: - driver: default - config: - - subnet: 192.168.6.0/24 \ No newline at end of file + # network_2: + # ipam: + # driver: default + # config: + # - subnet: 192.168.6.0/24 diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 293861a..ea6a2c6 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -8,18 +8,23 @@ http { upstream app { server app:3001; + server prometheus:9090; + server grafana:3000; } server { - listen 8000; + listen 80; location / { - proxy_pass http://app; - proxy_redirect off; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Host $server_name; + proxy_pass http://app; } + + # location /prometheus { + # proxy_pass http://prometheus; + # } + + # location /grafana { + # proxy_pass http://grafana; + # } } } \ No newline at end of file diff --git a/nginx2/index.html b/nginx2/index.html new file mode 100644 index 0000000..a46c22d --- /dev/null +++ b/nginx2/index.html @@ -0,0 +1,21 @@ + +
+

WELCOME, MAGUILA

+
+
+

Authenticate thyself

+
+
+
+ + +
+
+ + +
+
+ +
+
+ \ No newline at end of file diff --git a/node/app.js b/node/app.js index 17ef57f..819a76b 100755 --- a/node/app.js +++ b/node/app.js @@ -8,7 +8,6 @@ var counter = 0; const Prometheus = require('prom-client'); const fs = require('file-system'); const marked = require('marked'); -// const bodyParser = require('body-parser'); const jwt = require('jsonwebtoken'); // database connection (with retries) @@ -138,8 +137,9 @@ app.post('/info/add/:name', function(req, res){ res.send('color ' + req.params.name + ' added to database'); }); -connectWithRetry(); +// connectWithRetry(); app.listen(3001, () => { - console.log('Server running on port 3001'); + console.log('Server running on port 3001'); + console.log('process.env.PORT: ' + process.env.PORT); }); \ No newline at end of file