WHAT WAS DONE: - Built browser dashboard (dashboard.html) showing installed vs latest version for all Pterodactyl game servers - Built PHP proxy (proxy.php + config.php) for Billing VPS deployment - Created isolated Nginx server block (version-proxy.conf) - Created full deployment guide (DEPLOYMENT-GUIDE.md) ARCHITECTURE: - PHP proxy at /var/www/version-proxy on Billing VPS (38.68.14.188) - Isolated from Paymenter/Laravel routing — separate directory + port - API keys (Pterodactyl ptlc_, CurseForge) live server-side only - FTB packs: fully automatic via .manifest.json + FTB public API - CurseForge packs: reads manifest.json, needs CF Project ID + API key - config.php blocked from direct web access via Nginx PENDING AT DEPLOYMENT: - Verify port 8080 is free (ss -tlnp) before enabling Nginx block - Fill real API keys into config.php on server - Enter CurseForge Project IDs for CF packs (saved in localStorage) COLLABORATION: - PHP proxy architecture designed by Gemini (consultation session 2026-03-29) - Dashboard HTML and detection logic by Chronicler #47 - Gemini identified Laravel routing conflict and content-type gotcha WHY: - Interim solution before full Blueprint extension (post-launch) - Hands-off modpack update monitoring for staff - Zero manual checking required after initial CF Project ID setup Signed-off-by: claude@firefrostgaming.com
39 lines
1.0 KiB
Plaintext
39 lines
1.0 KiB
Plaintext
# /etc/nginx/sites-available/version-proxy.conf
|
|
# Isolated Nginx block for the modpack version checker PHP proxy
|
|
# Hosted on Billing VPS (38.68.14.188) in its own directory
|
|
# to avoid conflicts with Paymenter (Laravel) and Mailcow routing.
|
|
#
|
|
# BEFORE ENABLING: verify port 8080 is free with `ss -tlnp`
|
|
# If 8080 is taken, change to 8081 or 8090 here AND in the HTML dashboard's PROXY_URL.
|
|
|
|
server {
|
|
# Custom port — avoids Paymenter/Mailcow conflicts
|
|
# Verify with: ss -tlnp | grep 8080
|
|
listen 8080;
|
|
|
|
server_name _;
|
|
|
|
root /var/www/version-proxy;
|
|
index proxy.php;
|
|
|
|
location / {
|
|
try_files $uri $uri/ /proxy.php?$query_string;
|
|
}
|
|
|
|
location ~ \.php$ {
|
|
include snippets/fastcgi-php.conf;
|
|
# PHP 8.3 socket (matches existing Billing VPS environment)
|
|
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
|
|
}
|
|
|
|
# Block access to config.php directly
|
|
location = /config.php {
|
|
deny all;
|
|
return 404;
|
|
}
|
|
|
|
location ~ /\.ht {
|
|
deny all;
|
|
}
|
|
}
|