Repository navigation
VPS Deployment
Lyndon Kaleb edited this page Apr 15, 2026
·
1 revision
Deploy MC Presence to a cloud VPS running Ubuntu or Debian. This works with any provider: DigitalOcean, Hetzner, Linode, AWS EC2, Vultr, etc.
- A VPS with at least 512 MB RAM and 1 CPU
- Ubuntu 22.04+ or Debian 12+ (other Linux distros work too — adapt package commands)
- SSH access
- A domain name (optional, for HTTPS)
The simplest approach — install Docker and follow the Docker Deployment guide.
# Install Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Log out and back in, then follow the Docker guide# Using NodeSource (recommended)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# Verify
node --version
npm --versionsudo useradd -m -s /bin/bash mcpresence
sudo su - mcpresencegit clone https://github.com/RedZephon/Minecraft-Present-Bot.git
cd Minecraft-Present-Bot
npm install
cp .env.example .envEdit .env with your settings:
nano .envSet at minimum:
MC_HOST=play.yourserver.com
MC_PORT=25565
WEB_PORT=3100Create the service file:
sudo nano /etc/systemd/system/mc-presence.servicePaste:
[Unit]
Description=MC Presence Bot
After=network.target
[Service]
Type=simple
User=mcpresence
WorkingDirectory=/home/mcpresence/Minecraft-Present-Bot
ExecStart=/usr/bin/node server.js
Restart=on-failure
RestartSec=10
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.targetEnable and start:
sudo systemctl daemon-reload
sudo systemctl enable mc-presence
sudo systemctl start mc-presenceCheck status:
sudo systemctl status mc-presence
sudo journalctl -u mc-presence -f # live logssudo ufw allow 3100/tcpAccess the dashboard at http://your-vps-ip:3100.
If you want to access the dashboard over HTTPS with a domain name:
sudo apt install nginx certbot python3-certbot-nginxsudo nano /etc/nginx/sites-available/mc-presencePaste:
server {
server_name mc.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3100;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}The Upgrade and Connection headers are important — they enable WebSocket connections for Socket.io.
sudo ln -s /etc/nginx/sites-available/mc-presence /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d mc.yourdomain.comYour dashboard is now at https://mc.yourdomain.com.
cd Minecraft-Present-Bot
git pull
npm install
sudo systemctl restart mc-presence- The dashboard has no built-in authentication. If your VPS is public, use Nginx with basic auth or a VPN to restrict access.
- Never expose port 3100 directly on a public VPS without some form of access control.
- Your Anthropic API key and Microsoft tokens are stored on the server — treat the VPS as a sensitive system.
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd yourusernameAdd to your Nginx config inside the location block:
auth_basic "MC Presence";
auth_basic_user_file /etc/nginx/.htpasswd;Then sudo systemctl reload nginx.