From 3296d53634f666605252bc5696315138d03e8e88 Mon Sep 17 00:00:00 2001 From: Firefrost Automation Date: Wed, 11 Feb 2026 09:39:17 -0600 Subject: [PATCH] Code-Server deployment complete (Feb 11, 2026) --- docs/code-server-deployment.md | 250 ++------------------------------- 1 file changed, 15 insertions(+), 235 deletions(-) diff --git a/docs/code-server-deployment.md b/docs/code-server-deployment.md index 1e92307..f8360b8 100644 --- a/docs/code-server-deployment.md +++ b/docs/code-server-deployment.md @@ -3,11 +3,9 @@ **Service:** Browser-based VS Code **Domain:** code.firefrostgaming.com **IP:** 74.63.218.202 (Command Center VPS) -**Deployed:** February 11, 2026 +**Deployed:** February 11, 2026 9:00-9:30 AM CST **Status:** ✅ OPERATIONAL ---- - ## What It Is Code-Server provides full VS Code in your browser, enabling: @@ -16,243 +14,25 @@ Code-Server provides full VS Code in your browser, enabling: - Full syntax highlighting, Git integration, extensions - Accessibility enhancement for hand limitations ---- +## Technical Specs -## Architecture -``` -Browser → HTTPS (74.63.218.202:443) - → Nginx reverse proxy - → Code-Server (localhost:8080) - → File system access -``` +- Version: 4.108.2 +- Bind: localhost:8080 +- Auth: Password (Butter2018!!) +- SSL: Let's Encrypt +- Nginx: WebSocket support, 24hr timeouts -**Key Features:** -- WebSocket support for real-time sync -- 24-hour session timeouts -- Password authentication (Butter2018!!) -- SSL/TLS encryption +## Access ---- +https://code.firefrostgaming.com -## Technical Specifications +## Success -**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 -```bash -curl -fsSL https://code-server.dev/install.sh | sh -``` - -### 3. Configuration -```yaml -bind-addr: 127.0.0.1:8080 -auth: password -password: Butter2018!! -cert: false -``` - -### 4. Systemd Service -```bash -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 -```bash -certbot --nginx -d code.firefrostgaming.com -``` -- Manual IP correction required (certbot defaults to primary IP) - -### 7. Frostwall Rules -```bash -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 -```yaml -bind-addr: 127.0.0.1:8080 -auth: password -password: Butter2018!! -cert: false -``` - -### /etc/nginx/sites-available/code.firefrostgaming.com -```nginx -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 -```bash -systemctl status code-server@root -``` - -### Check Port Binding -```bash -ss -tlnp | grep 8080 -``` - -### Check Nginx Binding -```bash -ss -tlnp | grep 74.63.218.202 -``` - -### Test HTTPS -```bash -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: -```nginx -listen 74.63.218.202:443 ssl http2; -``` - -**Lesson:** Always verify IP-specific bindings after certbot runs - ---- - -## Usage - -### Access Code-Server -1. Navigate to: https://code.firefrostgaming.com -2. Enter password: Butter2018!! -3. 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 -1. Open browser on S24 Ultra or Chromebook -2. Navigate to code.firefrostgaming.com -3. Edit docs with full VS Code features -4. Changes sync instantly via WebSocket - ---- - -## Maintenance - -### Update Code-Server -```bash -curl -fsSL https://code-server.dev/install.sh | sh -systemctl restart code-server@root -``` - -### SSL Renewal -Automatic via certbot (90-day cycle) - -### Monitor Service -```bash -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 - ---- +✅ Browser access verified +✅ Repository opened +✅ File editing tested +✅ Mobile workflow ready **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 💙 +Deployed by: Michael + Claude | Session: ~90 min | Partnership: Unbreakable 💙