Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This These are the steps for installing the redeem dashboard.

  1. Check port availability

    1. Connect to the SSH console.

    2. Run the command: `ss -tuln` to check if ports 3001 and 8081 are available.

  2. Create the redeem folder
    mkdir redeem-dashboard
    cd redeem-dashboard

  3. Clone the redeem respositories
    git clone https://github.com/openvino/redeem_dashboard.git
    git clone https://github.com/openvino/openvino_redeem_notifier.git

  4. Install node.js
    sudo dnf install nodejs -y

  5. Navigate to the notifier folder:
    cd openvino_redeem_notifier

  6. Install dependencies:
    npm install

  7. Test run the server
    npm start

  8. Change to the dashboard folder and install dependencies:
    cd ../redeem_dashboard
    npm install --force

  9. Make a build
    npm run build

  10. Test start the app
    npm start

  11. Edit the package.json file to reflect the correct ports:

    Code Block
     "scripts": {
        "dev": "next dev --port 3002",
        "build": "next build",
        "start": "next start --port 3002",
        "lint": "next lint"
      },
  12. Add port 3002 to the firewall

    Code Block
     sudo firewall-cmd --zone=public --add-port=3002/tcp
  13. Configure nginx

    Code Block
    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
  14. restart nginx

    Code Block
    sudo nginx -t 
    sudo service nginx restart     
    sudo service nginx status
  15. Update the database structure

    Code Block
    ALTER TABLE "public"."wineries"
    ADD COLUMN "email" varchar,
    ADD COLUMN "public_key" char(42),
    ADD COLUMN "isAdmin" bool;
  16. Create the ferment user

    Code Block
    groupadd -g 2224 ferment
    useradd -u 2224 -g 2224 -s /sbin/nologin ferment
    
    chown -R ferment:ferment /var/bloock/ferment 
  17. Edit /etc/systemd/system/ferment.service

    Code Block
    [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
  18. Configure systemd to automatically start the ferment dashboard on boot:

    Code Block
    systemctl daemon-reload
    systemctl enable ferment
    systemctl start ferment
  19. Edit /etc/systemd/system/ferment_notifier.service

    Code Block
    [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
  20. Configure systemd to automatically start the ferment_notifier on boot:

    Code Block
    systemctl daemon-reload
    systemctl enable ferment
    systemctl start ferment
  21. Check the systemd status

    Code Block
    # 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

...