web

CoD Nostalgic – Live Server Showcase

Public showcase for a community's Call of Duty 2, United Offensive, and CoD4 servers with live status, scoreboards, one-click connect, and an admin area with an RCON console.

CoD Nostalgic – Live Server Showcase

Overview

CoD Nostalgic (codnostalgic.com) is a single-page showcase for a community's old-school Call of Duty servers. An in-process poller queries every game server over UDP and writes the result to Supabase, so the public page shows live player counts, maps, scoreboards, and a 7-day activity chart per server without ever touching a game server during a page request. A separate admin area manages games, servers, and social links, and includes an RCON console for sending commands straight to a server.

20s

Poll Interval

7 Days

Activity History

CoD2 · UO · CoD4

Games Covered

How it came together

Challenge

Game servers of this era only speak a UDP query protocol, so status can't be fetched from the browser, and querying them on every page view would make the page as slow and as flaky as the slowest server. A single dropped UDP packet also shouldn't flip a healthy server to offline in front of visitors. On the admin side, RCON passwords had to be stored so the console could use them, without ever being readable from the browser or from the public database role.

Solution

A poller starts once with the Next.js server through the instrumentation hook, sends a getstatus query to every active server every 20 seconds, and stores the latest status plus a history row every 5 minutes. The public page only reads the database and is regenerated at most every 15 seconds. A server is marked offline only after two failed queries in a row, a status older than 2 minutes is shown as unavailable instead of stale, and history older than 7 days is pruned hourly. RCON passwords are encrypted with AES-256-GCM into a table only the server-side secret key can read, and every command is logged with the server, the admin, and the outcome. Because the poller lives inside the server process, the site runs as one Node process under PM2 behind Nginx rather than on serverless hosting, with GitHub Actions building a standalone bundle, shipping it over SSH, and rolling back automatically if the new release doesn't answer.

Outcome

The site is live at codnostalgic.com, tracking the community's servers around the clock with a health endpoint for uptime monitoring and push-to-deploy releases that roll back on their own when a deploy fails its check.

Technical Stack

Next.js 16TypeScriptTailwind CSSSupabase (Postgres + Auth)RechartsUDP / RCONPM2NginxGitHub Actions

Tags

#Next.js#Supabase#Tailwind CSS#UDP#RCON

Visual Showcase

Landing Page

Hero with the busiest server right now and live totals for players, servers, and games.

Landing Page
Server List
Scoreboard & Activity
Admin Sign In
Admin Dashboard
Server Management
Games Management
RCON Console
Social Links
1 / 9

Key Features

In-Process Status Poller

Queries every active server over UDP every 20 seconds and stores the result, so page requests only ever read the database.

Flap-Resistant Status

A server goes offline only after two failed queries in a row, and a stale status is shown as unavailable rather than passed off as current.

One-Click Connect

Each online server gets a Steam launch link by default, with a per-game link template that can override it, plus a copy-IP button.

Activity Charts

Player counts are sampled every 5 minutes and charted per server, with history older than 7 days pruned automatically.

RCON Console

Admins send commands to a server from the browser, with passwords encrypted at rest and every command recorded in an audit log.

Push-to-Deploy with Rollback

GitHub Actions builds a standalone bundle and ships it over SSH; the deploy script health-checks the new release and switches back if it fails.