Your Smart Solution: Use nginx on port 80 to route IP traffic to the bot!
cestou.store → Your Angular app (port 80)
72.60.56.80 → CryptoBot dashboard (port 80 → proxies to 3001)
Benefits:
- ✅ No new ports to open (uses existing port 80)
- ✅ Clean URL:
http://72.60.56.80 - ✅ More secure (port 3001 stays internal)
- ✅ Domains and IPs completely separate
- ✅ Simple nginx routing
SSH into your VPS and run:
ssh deploy@72.60.56.80
sudo bash ~/install-cryptobot-ip.shThat's it! ✅
http://72.60.56.80
https://cestou.store → Angular app ✅
https://cestou.store/api → API ✅
Request to "cestou.store" → Angular app
Request to "72.60.56.80" → CryptoBot (proxy to localhost:3001)Internet
↓
Nginx (Port 80)
↓
├─ Host: cestou.store → /var/www/cestou
└─ Host: 72.60.56.80 → localhost:3001 (CryptoBot)
Port 80: ✅ Open (already was)
Port 3001: ✅ Closed to public (internal only)
Port 443: ✅ Open for SSL (cestou.store)
Port 3001 is only accessible via localhost!
File: /etc/nginx/sites-available/cryptobot
upstream cryptobot_backend {
server 127.0.0.1:3001;
keepalive 64;
}
server {
listen 80;
server_name 72.60.56.80;
location / {
proxy_pass http://cryptobot_backend;
# ... proxy settings ...
}
}- ✅ Your cestou.store config stays the same
- ✅ SSL certificates unchanged
- ✅ No firewall changes
- ✅ No existing routes affected
After running the installation script:
Open in browser:
http://72.60.56.80
You should see: 🤖 Crypto Trading Bot Dashboard
https://cestou.store
Should still show your Angular app ✅
curl http://72.60.56.80/api/statusShould return:
{"success":true,"initialized":false,"running":false}# From another computer, this should FAIL:
curl http://72.60.56.80:3001
# Connection refused or timeout
# But this should WORK:
curl http://72.60.56.80❌ Port 3001 open to internet
❌ Direct access to bot (no proxy)
❌ Another attack surface
❌ Need firewall rules
✅ Port 3001 stays closed
✅ Nginx handles requests (rate limiting, logging)
✅ Can add authentication later
✅ No new ports opened
✅ Professional setup
# Protect against abuse
limit_req_zone $binary_remote_addr zone=cryptobot:10m rate=10r/s;
location / {
limit_req zone=cryptobot burst=20;
# ... rest of config ...
}# Only allow specific IPs
location / {
allow 123.45.67.89; # Your IP
deny all;
# ... rest of config ...
}# Create password file
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd cryptobot
# Add to nginx config:
location / {
auth_basic "CryptoBot Dashboard";
auth_basic_user_file /etc/nginx/.htpasswd;
# ... rest of config ...
}# Get free SSL certificate for IP (self-signed)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/cryptobot.key \
-out /etc/ssl/certs/cryptobot.crt
# Update nginx to use SSL
# Access via: https://72.60.56.80Can't access http://72.60.56.80?
Check nginx status:
sudo systemctl status nginxCheck nginx logs:
sudo tail -f /var/log/nginx/cryptobot-error.logTest nginx config:
sudo nginx -tReload nginx:
sudo systemctl reload nginxCheck if bot is running:
pm2 statusCheck bot logs:
pm2 logs cryptoBotRestart bot:
pm2 restart cryptoBotCheck nginx config:
sudo nginx -tView all enabled sites:
ls -la /etc/nginx/sites-enabled/Restart nginx:
sudo systemctl restart nginxIf you want to remove this setup:
# Remove nginx config
sudo rm /etc/nginx/sites-enabled/cryptobot
sudo rm /etc/nginx/sites-available/cryptobot
# Reload nginx
sudo nginx -t && sudo systemctl reload nginxYour cestou.store app won't be affected.
| URL | Destination | Port | SSL |
|---|---|---|---|
cestou.store |
Angular App | 443 | ✅ |
cestou.store/api |
Cestou API | 443 | ✅ |
72.60.56.80 |
CryptoBot | 80 | ❌ |
| Service | Internal Port | Public Access |
|---|---|---|
| Angular App | N/A | Via nginx |
| Cestou API | 3000 | Via nginx (SSL) |
| CryptoBot | 3001 | Via nginx (IP only) |
- ✅ More secure (one less open port)
- ✅ Cleaner URL (no :3001)
- ✅ Nginx features (rate limiting, logging, auth)
- ✅ Professional setup
- ✅ Keeps domain separate
- ✅ Simpler DNS management
- ✅ No domain configuration needed
- ✅ Always accessible (no tunnel needed)
- ✅ Works from any device
- ✅ Easier for users
This setup is ideal if you:
- ✅ Want simple access without opening extra ports
- ✅ Don't want to use your domain for the bot
- ✅ Want to keep things separate
- ✅ Need a clean, professional URL
- ✅ Want better security than direct port access
ssh deploy@72.60.56.80
sudo bash ~/install-cryptobot-ip.shhttp://72.60.56.80
pm2 logs cryptoBot
sudo tail -f /var/log/nginx/cryptobot-access.logpm2 restart cryptoBot
sudo systemctl reload nginxOnce installed:
-
Open in browser:
http://72.60.56.80 -
Initialize bot:
- Click "Initialize System"
- Choose FAKE mode
- Set budget: $500
-
Start trading:
- Click "Start All Bots"
- Watch real-time stats
- Monitor trades
-
Auto-deployment works:
- Push to GitHub → auto-updates ✅
Your Smart Solution:
- Uses existing open port (80)
- Clean URL (http://72.60.56.80)
- More secure (port 3001 internal only)
- Completely separate from cestou.store
- One command installation
This is exactly what you asked for! 🎯
Ready to install?
ssh deploy@72.60.56.80
sudo bash ~/install-cryptobot-ip.shThen open: http://72.60.56.80 🚀