wifiNginx Configuration

Configure the dashboard to work with your domain

1

Prerequisites

sudo mkdir -p /var/www
cd /var/www
git clone https://github.com/YouSeeMeRunning2/DrakoBot.git # You won't be able to use my repository
sudo mv /var/www/DrakoBot /var/www/drakobot # Ensure the folder is named drakobot
circle-info

Run ls to verify the folder name before renaming.

circle-exclamation
2

Create A Records

Create the following DNS A records:

  • Host: dashboard

  • Value: <Server IP>

3

Install NVM and Node.js 18.20.7

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
\. "$HOME/.nvm/nvm.sh"
nvm install 18
node -v
circle-info

Verify the installation by running node -v. It should output v18.x.x.

4

Install Nginx

sudo apt update
sudo apt install -y nginx
5

Install Dashboard Dependencies

cd /var/www/drakobot/dashboard
npm install
6

Create Nginx Configuration

Edit the Nginx configuration file:

sudo nano /etc/nginx/sites-available/dashboard.youseemerunning.com
circle-exclamation

Add the following configuration:

server {
    server_name dashboard.youseemerunning.com;

    large_client_header_buffers 4 32k;
    client_header_buffer_size 32k;

    location / {
        proxy_pass http://localhost:7000;
        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;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";
    add_header Referrer-Policy "strict-origin-when-cross-origin";

    # Example SSL configuration (uncomment after running: sudo certbot --nginx -d dashboard.youseemerunning.com)
    # listen 443 ssl;
    # ssl_certificate /etc/letsencrypt/live/dashboard.youseemerunning.com/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/dashboard.youseemerunning.com/privkey.pem;
    # include /etc/letsencrypt/options-ssl-nginx.conf;
    # ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    listen 80;
}

# Example HTTPS redirect (uncomment after enabling SSL above)
# server {
#     listen 80;
#     server_name dashboard.youseemerunning.com;
#     return 301 https://$host$request_uri;
# }
circle-info

Press CTRL + X, then Y, then Enter to save the file.

circle-exclamation
7

Enable the Site and Restart Nginx

sudo ln -s /etc/nginx/sites-available/dashboard.youseemerunning.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
circle-info

Run sudo nginx -t to test the configuration before restarting.

circle-exclamation
8

Install SSL Certificate

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d dashboard.youseemerunning.com
circle-info

Follow the prompts to complete the SSL setup.

circle-exclamation
9

Edit the Bot Configuration

cd /var/www/drakobot
sudo nano config/modules/dashboard.yml

Update the bot settings with the following values:

Url: https://dashboard.youseemerunning.com
circle-exclamation
10

Install PM2 and Run Services

npm install -g pm2

cd /var/www/drakobot
npm install
pm2 start npm --name "drakobot" -- run start

cd /var/www/drakobot/dashboard
pm2 start npm --name "dashboard" -- run dev

pm2 save
pm2 startup
circle-info

PM2 keeps both the bot and dashboard running. The dashboard runs Vite on port 5173.

Your Drako Bot dashboard should now be up and running!

Last updated