Nginx 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

Run ls to verify the folder name before renaming.

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

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

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;
# }

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

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

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

8

Install SSL Certificate

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

Follow the prompts to complete the SSL setup.

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
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

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