Everything Wants a Second Life

Nothing has only one use until you decide it does.

If I Can't See It, I Don't Understand It

Nothing has only one use until you decide it does.

If I Have to Do It Twice, I Build a System

Nothing has only one use until you decide it does.

Think Inside the Box

Nothing has only one use until you decide it does.

Embrace the Mistake

Nothing has only one use until you decide it does.

Saturday, June 13, 2026

From Fear to Control: What Self-Hosting Gave Me


From Fear to Control: What Self-Hosting Gave Me

A DIFFERENT KIND OF POST

I'll confess something.

When I first started experimenting with self-hosted services, it wasn't because I wanted a cool homelab. It wasn't because I wanted to play with Docker, firewalls, VLANs, or enterprise-grade networking.

It started from something much simpler.

Need. And fear.

I had old equipment sitting around collecting dust. Hardware that technically still worked, but had no purpose anymore. At the same time, I felt an increasing need for something I couldn't fully get from consumer-grade solutions: control.

I wanted more security. I wanted more visibility. Most importantly, I wanted to better protect my children.

That was the real beginning.

Like many parents, I tried the usual tools first. I explored what Google Family Link offered. I tried the parental controls built into Microsoft Windows Family Safety. I tested schedules, device restrictions, app limits, and whatever features came bundled with routers and switches.

Some of it worked. Some of it helped. But eventually, it stopped being enough.

As more devices entered the house, the network became more complicated. More switches. More access points. More devices. More traffic. More risk.

And with complexity came a realization: my network wasn't organized. It was functional — but messy. And messy systems eventually become fragile systems.

Cybersecurity isn't only about protecting data. Sometimes it's about protecting the people who depend on you.

So I started building.


And honestly? I expected it to be much harder.

I thought self-hosting would be this overwhelming mountain of Linux commands, cryptic terminal outputs, and endless configuration nightmares.

Instead, I discovered something surprising. Most of the implementations were actually very straightforward. Not easy — but straightforward.

You follow the documentation. You run the commands. You configure things carefully. Step by step.

The process wasn't usually difficult. It was tedious. Sometimes exhausting. I remember moments where something as simple as configuring the firewall meant physically switching monitors back and forth just to access the console.

Not glamorous. Not fun. Just patience.

But slowly, piece by piece, everything started coming together.


Then came the fear.

Not fear of learning. Fear of failure.

Because in a self-hosted environment, you quickly learn something important: some services are forgiving. Others are not.

If a media server goes down, life continues. If the firewall goes down? Everything goes down. If DNS fails? The whole network can feel dead in minutes.

That became my biggest fear. Not because I doubted my ability. But because I understood the responsibility.

Over thirty devices depend on this network. Family devices. Business devices. Workstations. Access points. Store systems. Every rule, every route, every configuration matters.

That fear changed how I built everything. I stopped thinking only about functionality. I started thinking about resilience. Contingency plans. Fallback routes. Backup hardware. Redundancy.

That mindset pushed me to invest in simple but essential equipment — not expensive, just practical. The kind of gear that doesn't look exciting in photos, but saves you when things go wrong.

And things do go wrong.

I've stumbled. Many times. Failed deployments. Broken configs. Services refusing to start. Routing issues. Permission issues. Unexpected incompatibilities. Moments where I sat there thinking: "Why isn't this working?"

Sometimes you learn because things succeed. Sometimes you learn because things break. Usually, both.


But over time, something changed. The infrastructure became stable. Really stable.

And once everything is properly documented and correctly configured… it just works.

And that feeling is difficult to explain unless you've built something yourself.

People don't notice. Nobody walks into the house and says "Wow, the DNS resolution is fantastic today." Nobody compliments proper VLAN segmentation. Nobody applauds latency improvements.

They just use the internet. The TVs work. The phones connect. The PCs sync. The store system runs. Everything feels invisible.

And strangely… that invisibility became one of my greatest satisfactions. Because silence means stability. Silence means everything is working. Silence means the people I care about are protected and uninterrupted.

And that brings me peace. A peace I didn't expect when I started.


I felt that peace even more on June 12th.

At 7:00 AM, the network went down.

A few months ago, that would have triggered panic.

This time? I executed the contingency plan. Bypass. Recovery. Stabilize critical systems. Troubleshoot. And it worked.

The stress was real. But something had changed inside me. I wasn't panicking. I was responding.

The person who once feared touching DNS… had become the person solving the outage. That felt like growth. Real growth.


Today, I run seven self-hosted services. Eight, if I count Moonlight.

And the funny thing is… the infrastructure can handle more.

That's the trap of self-hosting. You start because of necessity. Then one day you realize: "I could add one more service." Then another. Then another.

Now, whenever I want something new, I spin up a container, configure it, integrate it into the network, and let the infrastructure do what it was designed to do. Support growth. Support experimentation. Support me.

And maybe that's the part that moves me most. This was never only about technology. It was about ownership. Responsibility. Trust. Building something with my own hands. Creating a system that protects my family and supports the business. Creating order where there used to be chaos.


Self-hosting isn't for everyone. It requires patience. Curiosity. Technical knowledge. And the willingness to fail repeatedly.

You need to accept that some things won't work just because you want them to. You will stumble. You will make mistakes. You will break things. You will lose sleep.

Sometimes, to avoid disrupting thirty devices, I wake up at hours when everyone is asleep just to make infrastructure changes while usage is near zero. That's part of the sacrifice. And I accept it.

Because I know what it gives me in return.

Peace. Control. Confidence.

And maybe something else. Pride.

Not loud pride. Not the kind you post for validation. A quiet kind. The kind you feel when you sit in a room where everything is working, everyone is comfortable, and nobody notices the invisible systems around them.

Because you built those systems. And they work.

That feeling is hard to put into words.

But if I had to summarize what self-hosting gave me, it would be this: I started with fear. And somewhere along the way… fear turned into confidence. Chaos turned into structure. And necessity turned into something I genuinely love.


Questions about the setup? Drop them below. I built this without a guide — figured it out piece by piece over time. Happy to help you figure it out.



This post contains Amazon affiliate links. If you purchase through them, I may earn a small commission at no extra cost to you. Every product listed here is something I personally own and use daily.

When One Problem Turns Into Two

When One Problem Turns Into Two

The calm before...

This post contains Amazon affiliate links. If you purchase through them, I may earn a small commission at no extra cost to you. Every product mentioned here is something I personally own and use.

I'd enjoyed almost a month of absolute peace. My OPNsense firewall was working flawlessly, without a single outage. It was performing so well that, to be honest, I'd fallen into that dangerous state of complacency where you don't even check the logs or the connection. You simply assume everything will be fine forever.

Until this morning.

At 7:01 AM, I sat down at my computer ready to start the workday and was met with the worst possible screen: No connection.

At first, nothing made sense. The infrastructure had been stable for weeks. The OptiPlex running OPNsense was powered on. The NUC was powered on. Physical links? At first glance, all good. Everything looked normal. But the network clearly wasn't.

I couldn't reach the OPNsense dashboard. Nothing.

The problem...

Since the business relies heavily on network connectivity, I couldn't allow extended downtime, so I started troubleshooting fast.

First step: connect directly to the ISP, bypassing everything. That worked — I had internet. So the ISP itself was fine. The problem was somewhere in my own infrastructure.

Then came the first rabbit hole.

My main PC, connected to the ISP directly over Wi-Fi, had no internet either — connected, but nothing loading. I dug into it and found the cause: DNS was still pointing to Pi-hole, on a network segment that didn't exist in this configuration. Switched everything to automatic DHCP and DNS, and that PC came back online.

Good. One thing fixed. But the real problem — OPNsense unreachable — was still there.

So I activated the bypass plan: an old Linksys E900, pre-configured to take over DHCP for the whole office in exactly this kind of scenario. I connected it between the ISP and the internal network.

Except it had the same DNS problem. Configured to hand out Pi-hole's address as DNS to every client. Same fix: switched it to public DNS. Bypass online. Core systems back up.

The proof

And here's the part that actually matters most to me: it worked. Not "worked in theory" — worked under real pressure, on a real morning, with a real firewall down. I'd built this bypass months ago for exactly this scenario, and today was the first time it actually had to do its job. It did. That's not a small thing. That's the difference between a stressful morning and a lost day.

Relief — for about ten minutes.

The partial failure

Because the network was still only partially healthy.

Maria's PC, on the second switch, still had no connection through the network — though it kept working because it was also connected directly to the ISP over Wi-Fi as a fallback.

The access points weren't responding either.

That uncertainty was stressful. When everything is down, the problem is clear. When half the network works and half doesn't, every assumption becomes questionable.

And the whole time, one thought kept nagging at me: what happens if a customer walks in right now? Odoo runs on this network, and without it, the store can't operate the way it needs to.

Luck was on my side, oddly. Nobody walked in until 11am. That gave me a window to work without the pressure of a customer standing there — but it was also its own kind of pressure, a clock running in the background the whole time. Peace and pressure, at the same time.

I checked Pi-hole on the NUC directly, worried it had crashed and was the common thread. It was fine — active, healthy, full history of queries. Not the culprit. Crossed that off the list.

The fix

With the bypass holding the network up, I had a window — and the OptiPlex was already down for diagnosis anyway. So I decided to act on something I'd suspected for a while.

The OptiPlex's LAN interface was running on a USB Ethernet adapter. This wasn't the first time a USB NIC had given me trouble — when I first set up OPNsense on the NUC, before moving it to the OptiPlex, a USB NIC was the exact thing that failed on me back then too. Apparently that's a known weak point for USB network adapters under sustained load. Fine for temporary setups. Not for a firewall running 24/7.

I had a dual-port Intel PCIe NIC sitting ready. Took the OptiPlex apart, installed it, reassigned the interfaces from the console — WAN stayed on the onboard port, LAN and a future OPT/DMZ port moved to the new card. Brought OPNsense back up.

LAN came back clean. WAN picked up a real IP from the ISP again, not the bypass's.

I felt relief. Found the root cause. Or so I thought.

The second failure

Because the access points were still offline. Maria's PC still couldn't reach anything through the LAN.

That made no sense. I'd just fixed the actual hardware problem on the firewall. So why was half the network still acting like nothing happened?

That's when the frustration really kicked in.

Back to troubleshooting. DHCP leases. IP configurations. Pings that came back as "destination unreachable" from addresses that shouldn't exist. Manual IPs versus automatic ones. Everything seemed to check out individually, and none of it explained the access points being completely dark.

Mental fatigue sets in fast on mornings like this. Your brain starts looking for a complicated answer, because surely something this stubborn has to be complicated.

The resolution

I stepped back, took a breath, and decided to forget the theories. Check every physical connection manually. One cable at a time.

That's when I found it.

While moving the OptiPlex earlier to install the new NIC, I had accidentally knocked loose the UTP cable connecting the first switch to the second switch — the one feeding the access points, the cameras, and Maria's desk.

I had unintentionally created a second problem while fixing the first one.

I just stared at the cable. Then I laughed. Because that's IT sometimes. You fix one issue, and in the process of fixing it, you cause another.

Reconnected the cable. Instantly, everything came back. Access points online. Maria's PC online. Full network restored.

After a long, stressful morning, the network was finally healthy again.

What I Learned Today

1. Bypass plans are essential — and proving they work matters

Having a physical bypass kept the business running while I troubleshot the real problem. Without it, the entire office would have gone down for hours.

But more than that: this was the first time that bypass had to perform for real, outside of a test. It worked. There's a particular kind of relief in seeing a contingency plan you built months ago actually do its job under pressure — it's no longer theoretical, it's proven.

2. Avoid USB NICs for critical systems

This is the second time a USB Ethernet adapter has failed me on a firewall — once on the NUC, now on the OptiPlex. Fine for temporary use. Not for production infrastructure. Dedicated PCIe NICs, especially Intel-based ones, are the right call.

3. Troubleshooting can create new problems

This one stung. Not every issue you see belongs to the original failure. Sometimes, during diagnosis — or while physically moving hardware to fix one thing — you unintentionally introduce a second problem. That can completely distort your understanding of what's actually happening.

Final thought

Today's outage taught me something simple:

The first problem was hardware.

The second problem was a cable, knocked loose by my own hands while fixing the first.

Both mattered. Both taught me something.

Wednesday, June 10, 2026

Google Photos Was Free. Until It Wasn't. Here's My Setup Now.

I Trusted Google With Ten Years of Memories. Then the Rules Changed.The problem...The problem...Photography has always been one of my favorite hobbies. Not professionally — I never went that route. But personally, I've taken photos of everything that matters to me: family moments, projects, travel, random memories, everyday life.Back in 2015, I discovered Google Photos. Honestly, it felt revolutionary. Before that, managing photos was a mess — my phone constantly filled up, I had to manually copy everything to external hard drives, and I ended up with four or five different drives scattered everywhere. Finding a specific photo from years ago meant remembering which drive had it, connecting it, and hoping I'd organized things correctly.Google Photos changed all of that. Every photo available instantly from anywhere. Search by face, color, event, date, location, objects inside the image. If I wanted photos of my wife, I could simply search for her face.At the time, it felt magical. Then the rules slowly changed.First, Google introduced compression policies. Then they merged storage limits across Google Drive, Gmail, and Google Photos. By that point I had around 50 to 60 GB stored in the cloud — and I realized something uncomfortable: I didn't really own my storage anymore.Five Hard Drives. No System. No Trust.The chaos beforeI eventually tried using Google Takeout to download everything. The process worked, but it was painfully slow and fragmented — multiple archives, folders, metadata files, formats that aren't easy to restore. I ended up manually downloading and deleting files for months.For years after that, my workflow became chaotic again. Save to Google Photos. Leave copies on the phone. Transfer some to local storage. Forget where certain files lived. Accidentally lose things over time.That loss of organization eventually pushed me toward building a NAS. And when I reactivated it, I discovered something that changed everything: self-hosted photo management systems that work like Google Photos — but run on your own hardware.The App That Made Me Stop Paying for Cloud Storage.The solution - IMMICHThe one I'm using is Immich. Honestly, it's incredible. It offers everything I loved about Google Photos:- Automatic photo backups from every device- Face recognition- Timeline organization- AI-powered search- Mobile uploads- Shared libraries- Date memories and remindersThe NUC Couldn't Handle It. My Network Paid the Price.The mistakeInitially, I installed Immich using Docker on the Intel NUC. Technically, it worked — until the AI processing began.What many people don't realize is that image recognition and video processing are resource-intensive when handled locally. The moment I added a second user and the system began scanning thousands of additional photos, the machine became overloaded. I had made the mistake of running too many services on one low-powered machine:The system became saturated. My DNS service started failing — and that meant my entire network would randomly go down, sometimes at 3am, forcing me to manually restart machines just to restore internet access across the house.One Machine Does One Job. The Rest Goes to IMPERFECT.The fixI decided to separate responsibilities. DNS services stayed on the NUC — Pi-hole running independently, dedicated to the network. Immich moved to my main workstation: an i7-14700F with an RTX 5060 and significantly more storage available.[🎬 VIDEO — backup corriendo en el celular, subiendo fotos a la red local]Now backups happen while I work during the day, when the computer is already turned on. The system barely impacts performance. AI processing runs in the background — and when it's done, every photo is searchable, organized by face, date, and location, exactly like Google Photos.Photo processing - Video indexing - DNS services (Pi-hole) - Docker containersIMPERFECT — main workstation running ImmichIMPERFECT — i7-14700F · RTX 5060 · now running Immich for the whole familyFor the Right Situation — It's Hard to Go Back.Is it worth it ?To be fair, cloud storage still makes perfect sense for many people. If you're a single user who doesn't generate a lot of photos and videos, paying for convenience is probably worth it.But my situation is different. I have six immediate family members constantly generating multimedia content every single day. Photos, videos, backups, phone uploads — it adds up quickly. At this point I maintain around 8 TB of available storage. At cloud pricing, that's a significant monthly expense — every month, indefinitely.The interesting part is that modern self-hosted photo systems are no longer difficult to set up. If you have an old computer collecting dust somewhere at home, there's a good chance you already own the hardware needed to build your own private photo cloud. And once it works, it's honestly hard to go back.The biggest issue with subscription-based cloud storage is simple: the moment you stop paying, your data becomes vulnerable. That dependence never sat well with me.This Build Isn't Finished.That's the thing about building your own system — it's never really done. Here's what's coming:protection, ergonomicsQuestions about the setup? Drop them below. I built this without a guide — figured it out piece by piece over time. Happy to help you figure it out.But it all runs locally on my own hardware. No subscription. No cloud lock-in. No dependence on a company changing pricing or policies.WHAT'S NEXT- Moving Immich to the NAS — once the WD EX2 is fully operational, photo storage moves off IMPERFECT and onto dedicated hardware- Home Assistant — smart plugs, door notifications, automation that actually makes sense- Building a desk from scratch — closed cabinet for the homelab, dust management, surgeEach of those is a post. I'll document the process — what worked, what didn't, what I'd do differently. If you're building something similar, follow along.