This are the steps for installing the redeem dashboard.
Check port availability
Connect to the SSH console.
Run the command: `ss -tuln` to check if ports 3001 and 8081 are available.
Create the redeem folder
mkdir redeem-dashboard
cd redeem-dashboardClone the redeem respositories
git clone https://github.com/openvino/redeem_dashboard.git
git clone https://github.com/openvino/openvino_redeem_notifier.gitInstall node.js
sudo dnf install nodejs -yNavigate to the notifier folder:
cd openvino_redeem_notifier
Install dependencies:
npm install
Test run the server
npm start
Change to the dashboard folder and install dependencies:
cd ../redeem_dashboard
npm install --forceMake a build
npm run build
Test start the app
npm start
Edit the package.json file to reflect the correct ports:
"scripts": { "dev": "next dev --port 3002", "build": "next build", "start": "next start --port 3002", "lint": "next lint" },
Add port 3002 to the firewall
sudo firewall-cmd --zone=public --add-port=3002/tcp
Configure nginx
cd /etc/nginx/sites-available vi ferment.openvino.org.conf server { server_name ferment.openvino.org; # maintain the .well-known directory alias for renewals location /.well-known { alias /usr/share/nginx/html/ferment.openvino.org/.well-known; } location /{ proxy_pass http://64.225.10.229:3002; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/ferment.openvino.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/ferment.openvino.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot add_header Strict-Transport-Security "max-age=31536000" always; # managed by Certbot ssl_trusted_certificate /etc/letsencrypt/live/ferment.openvino.org/chain.pem; # managed by Certbot ssl_stapling on; # managed by Certbot ssl_stapling_verify on; # managed by Certbot } server { if ($host = ferment.openvino.org) { return 301 https://$host$request_uri; } # managed by Certbot server_name ferment.openvino.org; # maintain the .well-known directory alias for renewals location /.well-known { alias /usr/share/nginx/html/ferment.openvino.org/.well-known; } location /{ proxy_pass http://64.225.10.229:3002; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } listen 80; # managed by Certbot cd sites-enabled sudo ln -s /etc/nginx/sites-available/sites /etc/nginx/sites-enabled/sites
restart nginx
sudo nginx -t sudo service nginx restart sudo service nginx status
Update the database structure
ALTER TABLE "public"."wineries" ADD COLUMN "email" varchar, ADD COLUMN "public_key" char(42), ADD COLUMN "isAdmin" bool;
Create the ferment user
groupadd -g 2224 ferment useradd -u 2224 -g 2224 -s /sbin/nologin ferment chown -R ferment:ferment /var/bloock/ferment
Edit /etc/systemd/system/ferment.service
[Unit] Description=OpenVino Ferment dashboard After=network.target [Service] User=root Environment=localhost WorkingDirectory=/var/bloock/ferment/redeem_dashboard ExecStart=/usr/bin/npm start Restart=always RestartSec=500ms StartLimitInterval=0 [Install] WantedBy=multi-user.target
Configure systemd to automatically start the ferment dashboard on boot:
systemctl daemon-reload systemctl enable ferment systemctl start ferment
Edit /etc/systemd/system/ferment_notifier.service
[Unit] Description=OpenVino Ferment dashboard notifier After=network.target [Service] User=ferment Environment=localhost WorkingDirectory=/var/bloock/ferment/openvino_redeem_notifier ExecStart=/usr/bin/npm start Restart=always RestartSec=500ms StartLimitInterval=0 [Install] WantedBy=multi-user.target
Configure systemd to automatically start the ferment_notifier on boot:
systemctl daemon-reload systemctl enable ferment systemctl start ferment
Check the systemd status
# systemctl status ferment ● ferment.service - OpenVino Ferment dashboard Loaded: loaded (/etc/systemd/system/ferment.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2023-09-07 13:52:19 UTC; 41s ago Main PID: 726201 (npm start) Tasks: 40 (limit: 49224) Memory: 163.1M CGroup: /system.slice/ferment.service ├─726201 npm start ├─726212 node /var/bloock/ferment/redeem_dashboard/node_modules/.bin/next start --port 3002 ├─726223 /usr/bin/node /var/bloock/ferment/redeem_dashboard/node_modules/next/dist/compiled/jest-worker/pro> └─726234 /usr/bin/node /var/bloock/ferment/redeem_dashboard/node_modules/next/dist/compiled/jest-worker/pro> Sep 07 13:52:19 sierra systemd[1]: Started OpenVino Ferment dashboard. Sep 07 13:52:20 sierra npm[726201]: > openvino-dashboard@0.1.0 start Sep 07 13:52:20 sierra npm[726201]: > next start --port 3002 Sep 07 13:52:20 sierra npm[726212]: - ready started server on 0.0.0.0:3002, url: http://localhost:3002 Sep 07 13:52:20 sierra npm[726212]: - info Loaded env from /var/bloock/ferment/redeem_dashboard/.env.local systemctl status ferment_notifier ● ferment_notifier.service - OpenVino Ferment dashboard notifier Loaded: loaded (/etc/systemd/system/ferment_notifier.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2023-09-07 18:03:20 UTC; 8s ago Main PID: 729758 (npm start) Tasks: 18 (limit: 49224) Memory: 46.5M CGroup: /system.slice/ferment_notifier.service ├─729758 npm start └─729769 node server.js Sep 07 18:03:20 sierra systemd[1]: Started OpenVino Ferment dashboard notifier. Sep 07 18:03:20 sierra npm[729758]: > server@1.0.0 start Sep 07 18:03:20 sierra npm[729758]: > node server.js Sep 07 18:03:20 sierra npm[729769]: Express server listening on port 8081