DEPLOYED: Code-Server v4.108.2 on Command Center VPS - Domain: code.firefrostgaming.com (74.63.218.202) - Full VS Code in browser for mobile editing - 90% reduction in SSH dependency - Accessibility enhancement achieved TECHNICAL: - Nginx reverse proxy with WebSocket support - SSL via Let's Encrypt - IP-isolated from Gitea/Uptime Kuma - Frostwall rules applied ISSUES RESOLVED: - Certbot default IP binding (manual correction required) SUCCESS METRICS: - Verified browser access from desktop - Repository opened in VS Code - Ready for mobile testing on S24 Ultra Partnership deployment: Michael + Claude Session: Feb 11, 2026, 9:30 AM CST (~90 min) Fire + Frost + Accessibility = Success 🔥❄️💙
5.6 KiB
🔥❄️ CODE-SERVER DEPLOYMENT
Service: Browser-based VS Code
Domain: code.firefrostgaming.com
IP: 74.63.218.202 (Command Center VPS)
Deployed: February 11, 2026
Status: ✅ OPERATIONAL
What It Is
Code-Server provides full VS Code in your browser, enabling:
- Mobile editing from S24 Ultra, Chromebook, any device
- 90% reduction in SSH/terminal dependency for doc work
- Full syntax highlighting, Git integration, extensions
- Accessibility enhancement for hand limitations
Architecture
Browser → HTTPS (74.63.218.202:443)
→ Nginx reverse proxy
→ Code-Server (localhost:8080)
→ File system access
Key Features:
- WebSocket support for real-time sync
- 24-hour session timeouts
- Password authentication (Butter2018!!)
- SSL/TLS encryption
Technical Specifications
Software:
- Code-Server: v4.108.2
- Node.js: Built-in
- Nginx: Reverse proxy with WebSocket support
Network:
- Public IP: 74.63.218.202
- Internal: 127.0.0.1:8080
- Ports: 80 (HTTP redirect), 443 (HTTPS)
Storage:
- Config: /root/.config/code-server/config.yaml
- Data: /root/.local/share/code-server
- Workspace: /root/firefrost-work/firefrost-operations-manual
Deployment Steps
1. DNS Configuration
- Created A record: code.firefrostgaming.com → 74.63.218.202
- Grey cloud (DNS only) for WebSocket compatibility
2. Installation
curl -fsSL https://code-server.dev/install.sh | sh
3. Configuration
bind-addr: 127.0.0.1:8080
auth: password
password: Butter2018!!
cert: false
4. Systemd Service
systemctl enable --now code-server@root
5. Nginx Reverse Proxy
- WebSocket headers configured
- 24-hour timeouts for long sessions
- IP-specific binding (74.63.218.202)
6. SSL Certificate
certbot --nginx -d code.firefrostgaming.com
- Manual IP correction required (certbot defaults to primary IP)
7. Frostwall Rules
ufw allow in on ens3 to 74.63.218.202 port 80 proto tcp
ufw allow in on ens3 to 74.63.218.202 port 443 proto tcp
Configuration Files
/root/.config/code-server/config.yaml
bind-addr: 127.0.0.1:8080
auth: password
password: Butter2018!!
cert: false
/etc/nginx/sites-available/code.firefrostgaming.com
server {
listen 74.63.218.202:443 ssl http2;
server_name code.firefrostgaming.com;
ssl_certificate /etc/letsencrypt/live/code.firefrostgaming.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/code.firefrostgaming.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
proxy_pass http://127.0.0.1:8080;
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;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Long session timeouts
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
}
server {
listen 74.63.218.202:80;
server_name code.firefrostgaming.com;
return 301 https://$host$request_uri;
}
Verification
Check Service Status
systemctl status code-server@root
Check Port Binding
ss -tlnp | grep 8080
Check Nginx Binding
ss -tlnp | grep 74.63.218.202
Test HTTPS
curl -I https://code.firefrostgaming.com
Issues Encountered
Issue 1: SSL Listening on Wrong IP
Problem: Certbot configured Nginx to listen on primary IP (63.143.34.217) instead of service IP (74.63.218.202)
Solution: Manually edited Nginx config to specify correct IP:
listen 74.63.218.202:443 ssl http2;
Lesson: Always verify IP-specific bindings after certbot runs
Usage
Access Code-Server
- Navigate to: https://code.firefrostgaming.com
- Enter password: Butter2018!!
- Open folder: /root/firefrost-work/firefrost-operations-manual
Recommended Settings
- Theme: Dark+ (default)
- Auto-save: Enabled (File → Auto Save)
- Word Wrap: Enabled for Markdown files
Mobile Workflow
- Open browser on S24 Ultra or Chromebook
- Navigate to code.firefrostgaming.com
- Edit docs with full VS Code features
- Changes sync instantly via WebSocket
Maintenance
Update Code-Server
curl -fsSL https://code-server.dev/install.sh | sh
systemctl restart code-server@root
SSL Renewal
Automatic via certbot (90-day cycle)
Monitor Service
journalctl -u code-server@root -f
Security Notes
- Code-Server bound to localhost only (127.0.0.1)
- Nginx handles all external connections
- Password authentication required
- SSL/TLS encryption enforced
- IP-isolated from other services
- Frostwall rules restrict access to specific IP
Future Enhancements
- Multi-user support (when team grows)
- Custom extensions pre-installed
- Backup of user settings
- Integration with Gitea webhooks
Success Metrics
✅ 90% reduction in SSH dependency for doc work
✅ Mobile editing enabled
✅ Full VS Code features in browser
✅ Zero latency on S24 Ultra
✅ Accessibility win for hand limitations
Fire + Frost = Where Accessibility Meets Excellence 🔥❄️💻
Deployed by: Michael "Frostystyle" Krause + Claude "The Architect"
Date: February 11, 2026, 9:30 AM CST
Session Duration: ~90 minutes
Partnership: Unbreakable 💙