Tom Gilmartin
I've spent twenty-five years in IT, mostly as the person between the technical work and the people it's meant to serve. In 2023 I stepped back to be home with our kids. I didn't let my skills sit still while I did.
This page describes what I built in that time, a small home IT environment I call Eastslide, in plain language.
Eastslide in one paragraph
Eastslide is my home network, built and run the way I'd want a small organization's IT run. One server in the basement hosts about fifteen separate systems (photos, passwords, shared files, monitoring, a code repository, a database), each walled off from the others. A firewall I built sits in front of all of it. The environment is documented, inventoried, backed up off-site and checked. It runs entirely on open-source software, and a real household depends on it every day, so when something breaks, people notice.
Prefer to poke around? Explore the stack, one layer at a time.
How it fits together
Nothing at home accepts a connection from the internet except that one encrypted entrance. Everything else, including every admin screen, is reached through it. That's also why this page isn't served from my house.
What runs on it
- Photo library
A photo and video library on hardware I own, with search and face recognition. It takes the place of Google Photos and iCloud.
Immich
- Password vault
A self-hosted password manager, shared across the household.
Vaultwarden
- Accounts and shared files
A central directory of user accounts, the same idea as Active Directory at work, so one sign-in covers the computers and the shared drive.
Samba Active Directory
- Monitoring and alerts
Dashboards and log collection, plus alerts to my phone through a notification service I also host.
Grafana, Prometheus, Loki, ntfy
- Code and documents
A private code server where my scripts, tools and documentation live under version control, with a history of every change.
Forgejo
- Database
One database that holds the system inventory, update status and archives, and feeds the dashboards and tools below.
PostgreSQL
- Music and games
A self-hosted music library streamed to any room, plus Minecraft servers.
Navidrome, Snapcast, Minecraft
How I run it
Written down. A reference document covers the whole environment: what runs where, what can reach what, and how to get back in if I lock myself out. It lives in version control and gets updated when things change. Decisions are recorded with their reasons, so six months later I know why something is the way it is, not just what it is.
Inventoried automatically. A job pulls the list of every system straight from the server, checks each one's software versions, and loads the results into the database. A dashboard shows at a glance what's current and what's behind.
A small surface, on purpose. I've listed every point where Eastslide touches the outside world (one VPN entrance, a DNS provider, a hosting company and an off-site backup service), with what each one exposes, how it's secured and how it's watched. Those accounts all use two-factor sign-in. Remote logins use keys instead of passwords, and the last few holdouts are being converted.
Backups I've actually restored. Critical systems back up every night to encrypted off-site storage, and I've restored from those backups to prove they work. A backup nobody has restored from is a hope, not a plan. Extending coverage to the configuration of every system is the current project.
Change control, AI included. I use AI coding assistants heavily, under the rule I'd want any vendor to follow: the assistant writes and tests a change on a separate branch and proposes it. It never deploys. I review every change and put it into production myself.
Choosing providers like vendors. When I need an outside service, whether off-site backup, email or a domain registrar, I compare the options on cost, lock-in, how hard it would be to leave and how well the account can be secured, then write down the decision. I lean toward open-source and toward services I could walk away from.
Things I've built on top of it
Once the foundation was solid, I started building small tools of my own, some to learn with and some for everyday use. They run on the internal web server. The labels say honestly how far along each one is.
Shell Quest
WorkingA browser game for learning the Linux command line, with my own systems as the lesson material. Now being reworked into a longer, better-paced course.
SQL Quest
WorkingA game for learning SQL by querying the real household database, read-only. It's paired with an eleven-chapter SQL guide I'm writing as I learn.
Typing Quest
WorkingA typing trainer from the same family of learning games.
Slice-Quest
In designA game that teaches kids how to prepare models for 3D printing, built to run on a Raspberry Pi.
Fuji
PrototypeA live picture of the traffic our firewall turns away. The visuals work; tuning the log query so it shows only genuine outside probes is still open.
Cuemix
PrototypeA web app for putting together mixtapes.
Parlor
PrototypeA pantry, fridge and freezer inventory that's moving toward scanning grocery receipts to fill itself in.
Conversation archive
WorkingMy long working sessions with AI tools, loaded into the database each month so decisions and lessons stay searchable instead of getting lost.
A Weird Life
In designA social app that connects people through shared life experiences, designed from the start without ads or data-mining.
Why I did this
My career grew up on the Windows side: Active Directory, SQL Server, VMware. While I was home, the industry kept moving toward Linux, containers and infrastructure defined in code. I didn't want to come back with a skill set frozen in 2023, so I took the harder route and learned the newer stack by running it for real, for people who'd notice if it failed.
It also lines up with something I believe: the people who depend on a system should understand it, own their data and be able to leave a vendor. Nearly everything here is open-source, and the decisions are written down so someone else could pick it up.
What's next
- A second site, joined to the first by a permanent encrypted link, being set up now.
- Bringing the remaining systems under the central account directory, and adding an internal certificate authority.
- Backing up the configuration of every system, not just the data.