From 5c00ef6b9936e18fd4d1bf8819847ae2c5f7612d Mon Sep 17 00:00:00 2001 From: Leandro Farias Date: Mon, 5 Jun 2023 10:56:50 +0000 Subject: [PATCH 1/5] chore(devops): nginx + pm2 server configs --- devops/ecosystem.config.js | 10 +++++ devops/nginx.conf | 85 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 devops/ecosystem.config.js create mode 100644 devops/nginx.conf diff --git a/devops/ecosystem.config.js b/devops/ecosystem.config.js new file mode 100644 index 0000000..c3b1463 --- /dev/null +++ b/devops/ecosystem.config.js @@ -0,0 +1,10 @@ +module.exports = { + apps: [ + { + name: 'oktopus', + env: { + NEXT_PUBLIC_REST_ENPOINT: 'https://oktopus.ifsc.digital:8000' + }, + }, + ], +}; \ No newline at end of file diff --git a/devops/nginx.conf b/devops/nginx.conf new file mode 100644 index 0000000..8a5d29c --- /dev/null +++ b/devops/nginx.conf @@ -0,0 +1,85 @@ +# For more information on configuration, see: +# * Official English Documentation: http://nginx.org/en/docs/ +# * Official Russian Documentation: http://nginx.org/ru/docs/ + +user nginx; +worker_processes auto; +error_log /var/log/nginx/error.log notice; +pid /run/nginx.pid; + +# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. +include /usr/share/nginx/modules/*.conf; + +events { + worker_connections 1024; +} + +http { + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + tcp_nopush on; + keepalive_timeout 65; + types_hash_max_size 4096; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + # Load modular configuration files from the /etc/nginx/conf.d directory. + # See http://nginx.org/en/docs/ngx_core_module.html#include + # for more information. + include /etc/nginx/conf.d/*.conf; + + server { + if ($host = oktopus.ifsc.digital) { + return 301 https://$host$request_uri; + } + listen 80; + listen [::]:80; + server_name oktopus.ifsc.digital; + return 404; + } + + server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + server_name oktopus.ifsc.digital; + root /usr/share/nginx/html; + + # Load configuration files for the default server block. + include /etc/nginx/default.d/*.conf; + + ssl_certificate "/etc/letsencrypt/live/oktopus.ifsc.digital/fullchain.pem"; + ssl_certificate_key "/etc/letsencrypt/live/oktopus.ifsc.digital/privkey.pem"; + ssl_session_cache shared:SSL:1m; + ssl_session_timeout 10m; + ssl_ciphers PROFILE=SYSTEM; + ssl_prefer_server_ciphers on; + + error_page 404 /404.html; + location = /404.html { + } + + location / { + proxy_pass http://127.0.0.1:3000; + proxy_read_timeout 60; + proxy_connect_timeout 60; + proxy_redirect off; + + # Allow the use of websockets + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + } + } +} \ No newline at end of file From 0b7390edc144f9db353dac56ef90b644ace01ab0 Mon Sep 17 00:00:00 2001 From: Leandro Farias Date: Mon, 5 Jun 2023 11:29:37 +0000 Subject: [PATCH 2/5] fix(frontend): link to device --- frontend/src/sections/overview/overview-latest-orders.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/sections/overview/overview-latest-orders.js b/frontend/src/sections/overview/overview-latest-orders.js index d5bfc23..27229ea 100644 --- a/frontend/src/sections/overview/overview-latest-orders.js +++ b/frontend/src/sections/overview/overview-latest-orders.js @@ -100,7 +100,7 @@ export const OverviewLatestOrders = (props) => { router.push("devices/"+order.id)} + onClick={()=>router.push("devices/"+order.SN)} > From 5a65fd9dffdcb616134dde496ead148d9e9bfc93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leandro=20Ant=C3=B4nio=20Farias=20Machado?= Date: Thu, 8 Jun 2023 01:21:07 -0300 Subject: [PATCH 3/5] chore(nginx): create api specific route --- backend/services/controller/internal/api/api.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/services/controller/internal/api/api.go b/backend/services/controller/internal/api/api.go index b2c4270..62d53b3 100644 --- a/backend/services/controller/internal/api/api.go +++ b/backend/services/controller/internal/api/api.go @@ -38,10 +38,10 @@ func NewApi(port string, db db.Database, b mtp.Broker, msgQueue map[string](chan func StartApi(a Api) { r := mux.NewRouter() - authentication := r.PathPrefix("/auth").Subrouter() + authentication := r.PathPrefix("/api/auth").Subrouter() authentication.HandleFunc("/login", a.generateToken).Methods("PUT") //authentication.HandleFunc("/register", a.registerUser).Methods("POST") - iot := r.PathPrefix("/device").Subrouter() + iot := r.PathPrefix("/api/device").Subrouter() iot.HandleFunc("", a.retrieveDevices).Methods("GET") iot.HandleFunc("/{sn}/get", a.deviceGetMsg).Methods("PUT") iot.HandleFunc("/{sn}/add", a.deviceCreateMsg).Methods("PUT") From f9042ea2fcd427ca41d4108bed98ca2a5daa7baa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leandro=20Ant=C3=B4nio=20Farias=20Machado?= Date: Thu, 8 Jun 2023 01:21:48 -0300 Subject: [PATCH 4/5] fix(mochi): run tls broker with and without tls simultaneously --- backend/services/mochi/cmd/main.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/services/mochi/cmd/main.go b/backend/services/mochi/cmd/main.go index 158f51c..4bfe304 100644 --- a/backend/services/mochi/cmd/main.go +++ b/backend/services/mochi/cmd/main.go @@ -85,6 +85,9 @@ func main() { serverForTLS := mqtt.New(&mqtt.Options{}) + lTls := serverForTLS.Log.Level(zerolog.DebugLevel) + serverForTLS.Log = &lTls + l := server.Log.Level(zerolog.DebugLevel) server.Log = &l @@ -196,6 +199,10 @@ func main() { if err != nil { log.Fatal(err) } + err = serverForTLS.Serve() + if err != nil { + log.Fatal(err) + } }() <-done From 790463234cecbb04e363bc5e6296f0db69d32978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leandro=20Ant=C3=B4nio=20Farias=20Machado?= Date: Thu, 8 Jun 2023 01:26:21 -0300 Subject: [PATCH 5/5] chore: update nginx and controller services --- devops/controller.service | 2 +- devops/nginx.conf | 76 +++++++++++++++++++++------------------ 2 files changed, 43 insertions(+), 35 deletions(-) diff --git a/devops/controller.service b/devops/controller.service index 34dd7f7..dff8900 100644 --- a/devops/controller.service +++ b/devops/controller.service @@ -2,7 +2,7 @@ Description=TR-369 Controller [Service] -ExecStart=/usr/bin/controller -u 'root' -P '' -mongo '' -p 8883 -tls +ExecStart=/usr/bin/controller -u 'root' -P '' -mongo '' -ap 8001 Restart=always RestartSec=4 diff --git a/devops/nginx.conf b/devops/nginx.conf index 8a5d29c..aa8dc9e 100644 --- a/devops/nginx.conf +++ b/devops/nginx.conf @@ -35,51 +35,59 @@ http { include /etc/nginx/conf.d/*.conf; server { - if ($host = oktopus.ifsc.digital) { + if ($host = oktopustr369.com) { return 301 https://$host$request_uri; } listen 80; listen [::]:80; - server_name oktopus.ifsc.digital; + server_name oktopustr369.com; return 404; } server { - listen 443 ssl http2; - listen [::]:443 ssl http2; - server_name oktopus.ifsc.digital; - root /usr/share/nginx/html; + listen 443 http2; + listen [::]:443 ssl http2; + server_name oktopustr369.com; + root /usr/share/nginx/html; - # Load configuration files for the default server block. - include /etc/nginx/default.d/*.conf; + # Load configuration files for the default server block. + include /etc/nginx/default.d/*.conf; - ssl_certificate "/etc/letsencrypt/live/oktopus.ifsc.digital/fullchain.pem"; - ssl_certificate_key "/etc/letsencrypt/live/oktopus.ifsc.digital/privkey.pem"; - ssl_session_cache shared:SSL:1m; - ssl_session_timeout 10m; - ssl_ciphers PROFILE=SYSTEM; - ssl_prefer_server_ciphers on; + ssl_certificate "/etc/letsencrypt/live/oktopustr369.com/fullchain.pem"; + ssl_certificate_key "/etc/letsencrypt/live/oktopustr369.com/privkey.pem"; + ssl_session_cache shared:SSL:1m; + ssl_session_timeout 10m; + ssl_ciphers PROFILE=SYSTEM; + ssl_prefer_server_ciphers on; - error_page 404 /404.html; - location = /404.html { + location / { + proxy_pass http://127.0.0.1:3000; + proxy_read_timeout 60; + proxy_connect_timeout 60; + proxy_redirect off; + + # Allow the use of websockets + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } + + location /api { + proxy_pass http://127.0.0.1:8001; + proxy_read_timeout 60; + proxy_connect_timeout 60; + proxy_redirect off; + + # Allow the use of websockets + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } } - location / { - proxy_pass http://127.0.0.1:3000; - proxy_read_timeout 60; - proxy_connect_timeout 60; - proxy_redirect off; - - # Allow the use of websockets - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; - } - - error_page 500 502 503 504 /50x.html; - location = /50x.html { - } } -} \ No newline at end of file +