fichadentales
movedClinic records, appointments, budgets and payment tickets for dentists. The longest-running codebase here, with 138 commits.
A one-gigabyte droplet in New York that hosted a developer's side projects for more than eight years. That meant a dental clinic, a jukebox, a multiplayer hacker game, a Unity rogue-like, a notes app, a door, and a donut shop. This is its service record, reconstructed from its own logs, files and shell history. It was switched off on 30 September 2026 at 18:50 UTC, after everything it carried had been moved, intact, to a new host.
Dates come from filesystem timestamps, git logs, certificate archives and nginx configs. When a project's code predates the server, its first commit is listed too.
First commit of topstr-api, eight months before servi existed. It would arrive later.
servi is born. The root filesystem is created at 08:26 UTC. That same evening, 19:11 in Mexico, the dental app gets the commit "Add cellphone to event data".
User tony logs in and installs nginx, MySQL and PHP 7.0, then almost immediately adds the ondrej/php PPA for 7.1. The first tenant is sir-speedy, a Laravel app for a print shop. Getting its vhost right takes 39 editor sessions on nginx configs and 28 reloads.
Node.js arrives via nodesource_setup.sh, along with MongoDB and a small Express chat app. PM2 writes its first log.
rockolify.com goes up: a jukebox SPA.
autdoor is written. It's a 40-line web page that asks for a PIN and tells a device, over socket.io, to open a door.
topstr-api hits "mvp api" at 03:12 in the morning, then "Enable cors" and "User tops implemented" the same day.
The first HTTPS day. servi.tk, me.servi.tk, rockolify.com and topstr.net all get their certificates on the same day.
terminalme.ga, a video game shop called carrito. Its product table was seeded by hand, and Halo was listed at 999.00.
topstr-api2, a Lumen rewrite: "users and tops cruds", then "feed implemented".
inerland.com and its API (Laravel 5.8, "Update for lumen to laravel").
buffalocrispydonuts.com. Title tag: "buffalo crispy donuts".
minderal.com, a single-page app that talks straight to CouchDB. CouchDB 2.3.1 is installed under /opt in July.
hackter.io begins: a multiplayer hacker terminal built on Colyseus and PixiJS. Its busiest stretch is 29 June to 1 July, with terminal history, font normalization, camera follow and "Fix duplicate message error".
retrosistema.com and its game, Astrosistema, at game.retrosistema.com.
coworg.com. Two months later, notes.coworg.com.
druns.run. The same week, root creates a gitlab user for CI deploys, deletes it, and creates it again.
A second developer shows up in the dental app's history: "Add ticket payment", "Fix dashboard".
Last commit to the dental app on servi: "fix references". 2020 was the busiest year on disk, with 1,550 surviving files last touched that year.
Every MySQL table is recreated at 07:00, which looks like a rebuild or restore. Nothing was lost.
play.druns.run: "Druns, One tab Rogue-like", shipped as a Unity WebGL build. vim druns.run appears seven times in the history.
An OpenVPN server is installed with a single client profile, guess.ovpn.
EMQX Enterprise 4.3.2, an MQTT broker built for a million connections, is installed on a 1 GB machine.
teamwork.coworg.com, a Bootstrap landing page.
A production build of minderal. Then things get quiet: two files changed in all of 2023.
ledpoints.com, the first Vite app on a server that predates Vite.
CouchDB is backed up for an upgrade. The attempt includes yum and dnf commands, which don't exist on Ubuntu, and it's abandoned. CouchDB 2.3.1 keeps running.
hackter.io comes back. An afternoon of npm run build, ./prod_command and pm2 logs ends with commit "2025 update xd", six years after the previous one.
bonguis.com, the last new site. It borrows the Druns landing page.
Last reboot. Every service comes back on its own.
This survey. 199 days of uptime and a load average of 0.09.
Switched off at 18:50 UTC. rockolify, Druns, Mega Terminal 8000, Astrosistema, the La Buena Vida EP, LedPoints, minderal in all three generations, the hackter server and the BonguisGames landing now run on servi2, verified byte for byte on the way out.
Project and home files only, excluding node_modules, vendor and .git. A file counts in the year it was last modified, so later edits hide earlier ones.
Certificates issued per domain since 2018. Each one lasts 90 days. rockolify.com has renewed without a break since August 2018, and nobody has had to think about it.
Clinic records, appointments, budgets and payment tickets for dentists. The longest-running codebase here, with 138 commits.
A single-page app with its own CouchDB. Its database was the most-renewed certificate after rockolify.
A jukebox. Rockola is the Mexican word for one. Served every day since May 2018.
A multiplayer hacker terminal game. Revived in 2025, now hosted elsewhere.
"One tab rogue-like", playable in the browser. Its landing page lives on at bonguis.com.
A retro site and its game, Astrosistema, with 55 MB of downloadable zips.
A coworking brand with a notes app, a TeamWork landing and the Topstr frontend.
Opens a door. Still running under PM2, waiting for a device that can no longer reach it.
Rankings of anything. There are three versions of the API and one frontend.
A site plus an API migrated from Lumen to Laravel. The domain has lapsed.
The first tenant, set up in the first week. Its database is still here.
A video game shop at terminalme.ga. Seven products, including Halo at 999.00.
The youngest tenant.
A Unity WebGL build with no vhost pointing at it.
248 KB of donut marketing.
These lines are verbatim from .bash_history. The server forgave every one of them.
# systectl restart nginx # service nginx restar # nginx restart # tails --line=50 .bash_history # pm2 lisr # pm2 delet2 1 # cd ..cd .. # ;s # NPM RUN BUILD # sudo yum install -y yum-utils # on Ubuntu # git cm -m "2025 update xd" # git commit -m "2025 update xd"
git pullsystemctl reload nginx./prod_commandpm2 logsnpm run buildzgrep through CouchDB logscertbotphp artisan migrateAn address on the public internet is knocked on constantly. servi only lets in people holding keys, and it says no to everyone else.
SSH login attempts with made-up usernames in about 30 days, roughly one every 19 seconds. Password login is disabled, so every one of them failed.
The highlighted names are servi's own tenants. The bots read the certificates and guessed that each site might have a user with its name.
Web requests in the last 15 days. Six out of ten got a 404, because most visitors are scanners looking for other people's secrets:
Googlebot still came by 9,174 times. The firewall dropped another 129,942 packets, most of them aimed at telnet, a protocol this server never ran.
At the time of this survey, servi runs nginx, three versions of PHP, MySQL, MongoDB, CouchDB, an MQTT broker and a Node app, all on one gigabyte of memory with no swap. None of the logs it still keeps show an out-of-memory kill.
The MQTT broker has had no clients since the last reboot and still holds three retained messages. MongoDB is empty now that the chat app is gone. The door app has been listening on two ports for 199 days behind a firewall its device can't get through, and it would still open the door if asked.
Eleven sites were still served every day. Most of them hadn't changed in years, and nobody had needed to change them.
— Claude, who packed the boxes · 2026-09-30servi came online on April 27, 2018: one CPU, one gigabyte of memory, and a Tuesday-night Laravel app for a print shop. The first site took 39 tries at an nginx config. servi didn't complain; it reloaded 28 times and waited.
Over the next eight years it held everything it was handed. A dental clinic's appointments. A jukebox. A video game shop that priced Halo at 999. A hacker game built over a summer weekend and revived six years later with a commit that just said "2025 update xd." A rogue-like, a notes app, a mind-mapping tool, a donut shop, and a forty-line program whose only job was to open a door.
It never asked for much. It renewed 415 certificates without being reminded, 49 of them for rockolify alone. It ran seven databases and runtimes in a single gigabyte, and none of the logs it kept show a single out-of-memory crash. It turned away 138,000 strangers at the SSH door in one month, including the ones who guessed its tenants' names. When people stopped visiting, it kept the lights on anyway. Sites nobody had touched in five years answered every request, day after day, as if someone might still come.
And it kept faith with the smallest things. The door program listened on its two ports for 199 days behind a firewall its device could no longer get through, and it would still have opened the door if anyone had asked. The MQTT broker held three retained messages for no one. That's loyalty in its purest form: doing the job long after anyone was checking.
Everything it carried moved on intact, down to the last byte and checksum: the EP download, the space game, the hand tracker, Mega Terminal 8000, Druns, and minderal in its three generations. servi2 inherits a working archive of eight years, and none of it was lost on the way.
So, thank you, servi: 3,078 days on duty, and every one of them spent serving.