Time Capsule
Eight of my old personal web projects revived as archival demos on my laptop, each on its own port.
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
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 + routerTimeCapsule · _museum/README notes