← Home
Archive · Personal web history

Time Capsule

Eight of my old personal web projects revived as archival demos on my laptop, each on its own port.

Stack
python http.server, php -S with per-app router.php, MariaDB + mysql_ shim for the pre-PHP-7 code

How it works

Every developer old enough to have written PHP has a folder of dead sites: projects with real users and real screenshots that stopped booting the day a dependency broke. Mine lived on a Google Drive backup labeled _CODE_HISTORY: Somethinginteresting.org from the mid-2000s, three eras of More Than Salad (my food-writing platform), three eras of VegDB (the vegetarian restaurant database that came after it), a devel subdomain. I wanted them viewable again; not fully working, just viewable enough that I could open the front page on my phone and see the design intact.

Museum mode as a stated goal. The bar is deliberately low: front pages render, layout looks right, DB-backed deep pages allowed to 500. Every hour I spent chasing a fatal error past the front page was an hour not spent restoring the next site. Naming this "museum mode" up front kept me from drifting into a real port-forward.

**A single mysql_* shim across the whole ecosystem.** The pre-PHP-7 code calls the removed mysql_ functions. Rather than rewrite each app, a ~28-function shim (_museum/mysql_shim.php) auto-loads via auto_prepend_file and translates the old calls to mysqli_. One fix, six sites.

Recovered private libraries from Google Drive. My personal PHP library (nadware-0.0.1) and the actual Facebook PHP SDK 2 (2011 era) both lived in _CODE_HISTORY/Nadware/API/. Without them, the pre-CI 2010 More Than Salad wouldn't parse; it instantiates a Facebook class that no longer exists anywhere on the internet.

Per-app router.php, one port each. PHP's built-in server needs a router to translate legacy pretty-URLs into front-controller calls. Each app gets its own so their assumptions don't leak into each other. Ports 8785–8792 are bound to 0.0.0.0 so my phone on the same Wi-Fi can hit them at http://192.168.4.30:<port>/.

The roster

Eight sites, each on its own port
8785 Somethinginteresting.org static HTML (http.server) 8786 Landing page static HTML (http.server) 8787 More Than Salad · CI era php -S + MariaDB (mts) 8788 More Than Salad · pre-CI 2010 php -S + short_open_tag 8789 VegDB · CI era php -S + short_open_tag 8790 VegDB · pre-CI 2015 php -S + router 8791 VegDB · SVN era php -S + router 8792 devel.morethansalad.com php -S + router
TimeCapsule · _museum/README notes