🇺🇸

Tag Archive for ‘Self-Hosting’

Budget Home Server

Mac Mini 2014, Available from OWC

I’ve been running Mac-based home servers since 2011 when I purchased my first Mac Mini for that very purpose. It started as a way to record over-the-air television with an Elgato EyeTV and to store movies, television shows, and music in iTunes that I could stream to our Apple TVs and sync to our iPhones.

I’ve since upgraded to a 2018 Mac Mini, switched to Plex for my media management, and I’m now using an HDHomeRun as my over-the-air capture device. And while I’ve added quite a few services to my home server over the years, streaming media to all of my devices is still, by far, its primary use case.

Recently, while perusing OWC’s used Macs, I started thinking about what I would recommend to a friend or family member if they wanted to get started with their own home server.

I think a lot of people would think of starting with a mini PC. They have become very popular recently and are inexpensive. But I’m not too fond of using Windows unless I absolutely have to and I don’t think managing a Linux server is user-friendly enough for most people — it’s barely user-friendly enough for me.

So the Mac Mini, in my eyes, is the way to go. Of course, you could just buy whatever base-model Mac Mini Apple has available at the moment, attach an external drive for a bunch of storage and you’ll be mostly off to the races, but I think you get a lot more for your money if you go the used route.

I would recommend a 2014 Mac Mini with 8GB of memory, 2.6GHz Core i5 processor, and a 1TB solid state drive.

At the time of writing, you can pick one up from OWC for $195.

That will get you a pretty good amount of storage to start with on a machine that can run up to macOS Monterey. That’s not the most recent version of macOS, but it’s still receiving updates from Apple and should have software support for the apps you’ll want to run for at least a handful of years.

In addition to the Mac Mini itself, if you don’t plan to connect it to a display, you’ll want to get a display emulator dongle. I use this one from CompuLab, but you could also get a Newer Technology one that’s a couple of dollars cheaper.

The last bit of hardware I’d recommend is an optical drive. This will let you rip movies and TV shows from discs to store on the server. I’m using an external Blu-ray drive from Pioneer, but it’s a bit more expensive than I think I’d spend on one today. If you wanted to rip Blu-ray Discs, you should be fine with this one from OWC. And if you are just expecting to rip DVDs, there’s literally thousands of options that are available for $20-40.

I’m not sure if there’s really any meaningful difference between any of the DVD drives available, but I’d recommend getting one from a brand you recognize. You won’t spend much more than if you bought a no-name brand, but you’ll likely end up with something that’s more reliable.

As a bit of an aside, I first started ripping Blu-ray Discs when I was still using a 2011 Mac Mini. These older Macs — including the 2014 Mac Mini that I’m recommending — are going to take a long time to rip and convert Blu-rays. That doesn’t mean I would shy anyone away from doing so, but I think it’s worth setting expectations.

With hardware alone, we’re at about $306 before tax and shipping — if you opt for the Blu-ray drive. That’s not too shabby to get you in the door. And you could certainly use this hardware as a home server for a handful of years, paired with free software options, and you’ll get by just fine.

For free software, you could use:

Plex is perfectly serviceable for hosting your media without a Plex Pass and the pairing of Handbrake and MakeMKV will make ripping Blu-ray Discs and DVDs a breeze. And with MacOS’ built-in screen sharing features, you can run the Mac Mini without a display attached and administer it from another computer on your network.

If you wanted to take the software setup to the next level, I would recommend purchasing a lifetime Plex Pass — $120 — which will give you the ability to download media to the Plex mobile app, give you access to Plexamp, and a whole host of other features.

In addition, I’d recommend purchasing Screens 5 — $80 for a one-time purchase. This will make management of the server significantly easier. You can install Screens Connect on the server and Screens 5 on your Mac, iPhone, and/or iPad to connect and control the machine locally on your home network or remotely anywhere you have access to the web.

And lastly, I would suggest purchasing a MakeMKV license — $65. You can get by with the beta key referenced above, but it expires and sometimes it expires before a new beta key is available. To support the developer’s work and ensure you can always rip when you want to, I’d recommend just buying a license.

With these extra software purchases, we’re looking at around $571 total. That may seem like a lot. But this is a system that you’ll be able to run on your network and use for the next five years, easy. Serving up media that you likely already own — everyone has a box of CDs and DVDs somewhere in their house.

And perhaps, if you really want to commit, you can cancel a streaming service or two and redirect those funds toward physical media. You’d be surprised at how cheap DVDs, Blu-ray Discs, and CDs can be acquired for these days. And after enough time of purchasing media, you’ll find that your own media library has more good content than any of the streaming services offer.

Tech Is Still Cool

Despite my lack of enthusiasm for present-day Apple, there’s still a lot to be excited about in the world of technology. The following is an unordered list of things that I’ve been excited about recently. If you have any thoughts about the following items or have some tech that you’ve been excited about, I’d love to hear from you.

Old MacBooks

I recently purchased two 2015 11-inch MacBook Airs — one for myself and one for my wife. They can run up to macOS Monterey, which is still supported by Apple and by the vast majority of application developers. And if you’re willing to deal with potential pain points, you can use OpenCore Legacy Patcher to install macOS Sonoma on the machines as well.

I have Sonoma running on mine and it runs like a champ. Other than the non-retina display and lack of USB-C ports, these machines feel surprisingly modern.

Old MacBooks are also very easy to upgrade. In addition to the 2015 MacBooks that I recently purchased, I have a couple of older 2011 models that I’ve been toying with as well. The battery and storage has been a breeze to upgrade on these machines. I’ve put brand new batteries and 500GB SSDs in both and completed the tasks in less than ten minutes each.

Linux

An entire operating system, complete with its own selection of applications and features to explore. I’ve been doing so primarily through virtual machines on my work laptop, but I plan to dual boot Sonoma and Ubuntu 24.04 on my 11-inch MacBook Air now that this new long term support release is available.

The most interesting thing about Linux to me is the myriad of windowing managers. I can’t say its necessarily better than what we have on macOS, but it has plenty of innovative ideas that has me working a bit differently — using multiple virtual desktops never clicked with me on macOS like it has in Linux.

Self-hosting

There isn’t much that excites me more than being able to eliminate my reliance on a service controlled by someone else. I have three servers where I run various applications from my home office alongside a Linode and SiteGround account where I run services as well.

Plex and Mastodon likely get the most use from me, but I’m also a huge fan of Invidious, Miniflux, and Wallabag.

I’d like to self-host even more and should be doing so soon. I’m waiting on the arrival of an Umbrel Home. It should be here in the next few weeks. I have Umbrel running on an old Mac mini now, but it seems to bog down quite a bit when I have more than a few applications running on it. I expect the Umbrel Home should handle things a bit better.

Emulation Handhelds

I have a Retroid Pocket 2+ and a Retroid Pocket 3. Both of which are excellent devices for what they are, but I’d love to have something that features a bit more horsepower for PlayStation 2 and GameCube emulation.

I’ve been hemming and hawing over whether I want to get myself an Ayn Odin 2 or a Retroid Pocket 4 Pro. I believe both of them would be able to run the games I’m interested in, so it’s just a matter of which form factor is preferable to me.

I just love the idea of having a single device that can run all of the games from my childhood.

Emulation on the App Store

Apple updated their App Store guidelines earlier this month to allow for retro game emulators in the App Store. It’s still very early days and Delta appears to be the clear standout. It supports Nintendo systems up to Nintendo 64 and Nintendo DS.

I’m still using AltStore for now, though. Delta is a great emulator, but it just doesn’t compare to RetroArch in terms of the number of systems supported. I expect RetroArch will eventually make its way into the App Store, but that will take some time. I’m sure there are some changes that will need to be made to the app to fully come into compliance with Apple’s guidelines.

I’m okay using AltStore for now, but I’m excited about a future where I won’t have to resort to hacks in order to run this type of software on my own device.

PC Building

I built a gaming PC last fall, with the goal of having it run Steam as a headless home server. I’m using one of these inexpensive display emulators and interacting with the system entirely through Steam Link and VNC — using Screens. With this setup I can play any PC game I’d like and emulate more powerful systems from any device in the house — most often my iPhone and the living room Apple TV.

For anyone curious, here are the parts I used for the system:

  • AMD Ryzen 5600 Processor
  • AMD Radeon RX 7600 Graphics Card
  • 32GB of Crucial DDR4 3200 Memory
  • ASRock B550M-ITX/AC Motherboard
  • 2TB Crucial NVMe Solid State Drive
  • 4TB Samsung SATA Solid State Drive
  • Fractal Terra Mini-ITX Case
  • Noctua NH-L9x65 CPU Cooler
  • Corsair SF750 Power Supply

It’s not the most powerful thing in the world, but it’s more than capable of playing everything I’ve thrown at it. And since I’m streaming everything over Steam Link, I’m not all that concerned about playing anything at high resolutions — 720p or 1080p are more than sufficient for my needs.

But with this project, I’ve started paying attention to the world of PC hardware again. Primarily through YouTube channels like Gamers Nexus, JayzTwoCents, optimum, ozTalksHW, and more. This is an area of tech that I haven’t really paid attention to since the early 2000s. And, boy, does it feel fresh and exciting in comparison to Apple hardware.

Steam Link

How amazing is it that you can just play games from your PC on all of your devices? I can have Skate 3 running in RPCS3 on a computer in my home office and use my iPhone as a display and a Backbone One as the controller. Or I can use the television in my living room paired with an Apple TV and an 8BitDo Pro 2 controller.

Steam Link is to video games as Plex is to movies and TV shows.

There are definitely times when the bandwidth just isn’t there, but most of the time everything works smoothly. And I’m sure it will get even better if I actually work on running ethernet to all of our Apple TVs — a project that never seems to receive the priority necessary to accomplish.

iPods

I recently purchased an iPod from Elite Obsolete Electronics. It was a 5.5-generation model that I paid to have modded with a 128GB microSD card and a brand new face plate, backplate, and click wheel.

I’ve since toyed around with just about every feature the device has to offer. I’ve added Click Wheel games, played around with the Notes feature, setup a preset in Handbrake to convert video to a compatible format, and it’s been a blast all along the way.

There’s something nice about using an offline device. Something that, by its very nature, only has the content that’s on it right now. If I want something new, I have to connect it to a computer and sync. It allows me to be a bit more intentional about the content I’m consuming.

Currently, the iPod is my primary method for podcast and audiobook listening. Huffduffer is a great tool that I’ve been getting a lot of use out of for adding random audio files to the iPod.

I’ve also been using the iPod for the majority of my YouTube viewing. I download the videos with my Invidious instance, convert them with the aforementioned Handbrake preset, and then add them to the Apple Music app for syncing — I’ve found it to be a bit easier to add them to the Apple Music app as music videos rather than adding them to the TV app.

Self-Hosted Invidious ➝

This video has kind of an odd style, but I found it an incredibly useful resource while manually installing Invidious. And I’m sure I’ll reference it again in the future when updating my install.

➝ Source: m.youtube.com

Umbrel Node

Umbrel Node Dashboard

One of the gifts I received this year was a 2012 Mac Mini with 16GB of memory and a quad-core processor. It’s not too useful as a Mac at this point, Catalina is the latest version of macOS that it can be officially installed, but Apple is no longer supporting Catalina as of December 2022.

Instead of using it with macOS, I’ve installed Ubuntu and am running it as an Umbrel node. Umbrel, I believe, started its life as self-hosted server software that allowed you to run a full Bitcoin node. It’s advanced quite a bit since then — most notably introducing an app store with more general purpose software like Plex, NextCloud, and Syncthing.

I may explore some of those apps down the line, but my goal was to use Umbrel for the cryptocurrency features. And although I’m still fumbling my way through everything, here’s what I currently have installed on my Umbrel:

Bitcoin Node — This is a full Bitcoin node, which means I have a copy of the entire blockchain — it’s 507GB at the moment. I can connect my wallets directly to my own node and contribute to Bitcoin’s decentralized nature.

Electrs — This is an Electrum server, which is basically an API layer between the Bitcoin node and some wallet apps. I’m using this to connect BlueWallet at the moment.

Lightning Node — Lightning is a layer two solution for Bitcoin. Essentially, it allows for transactions to be abstracted from the actual blockchain. This lets individual transactions complete faster and with less fees than transactions that are completed on-chain. Lightning transactions are eventually settled on the blockchain in bulk, minimizing fees for individual transactions and allowing the whole system to run more efficiently.

Lightning Terminal — The Lightning network uses “channels” to connect nodes to one another. These are the pathways by which transactions are routed. So far I’ve used Lightning Terminal to help me determine what other nodes might be good for me to connect to.

mempool — a self-hosted version of mempool.space, which let’s you track and visualize transactions on the blockchain. This app is still a bit of a mystery to me, but so far I’ve used it to track a few transaction in real-time.

ThunderHub — An app for managing my Lightning Node. It offers a number of reports and charts that I don’t quite understand yet. But as I get more usage out of the node, I expect I’ll start connecting some dots.

Uptime Kuma — The only app that isn’t cryptocurrency-related. It’s an uptime tracker that I’ve configured to periodically ping all of the other apps, sites, and services that I maintain. I’m not sure if I’ll really find it useful long-term. I’m already using Jetpack for this on all of my WordPress sites, so maybe I’ll just use it for tracking uptime of my Mastodon and Pixelfed instances.

I still feel like I’m at that point where I don’t know enough about Bitcoin and Lightning to know what I don’t know. But I’m learning. And it’s a lot of fun.

Self-Hosting

Home Dashboard

I’ve always had a fascination with self-hosting. The idea of fully owning and controlling the web services I relied on was incredibly appealing. I’ve been running my own media server at home for years — first using iTunes and then moving to Plex — but last year I purchased a Linode, installed Cloudron and started leaning into it even more heavily.

I setup a Homer dashboard to keep everything organized and give me a single place to go when I want to access or manage any of my self-hosted software and services.

I thought I’d go over everything listed in my Homer dashboard and explain a bit about how each item is used. Not everything listed is something I’m self-hosting, but it’s all self-hosting-related.

Homer Dashboard

Plex — Our Plex library contains terabytes of ripped DVDs, Blu-rays, and iTunes purchased content that I’ve removed the DRM from. It’s our most used self-hosted service by far. But it’s not just TV shows and movies, I also use Plex to store my music library and children’s videos that I periodically archive using MediaHuman YouTube Downloader.

Channels DVR — A recent addition to my self-hosting setup. I use it with our over-the-air antenna and a number of M3U IPTV playlists.

Seed Box — This is the web interface for Transmission on my older Mac Mini. That machine runs a VPN so I can privately download all of my perfectly legal Linux ISOs.

Transmission — This is the web interface for Transmission on my main Mac Mini server, which I don’t typically run a VPN on (it makes Plex inaccessible outside the network). This is for the times when I want to download perfectly legal Linux ISOs without the privacy.

AllTube — This web app lets me easily download YouTube and other web videos. When I’m on a Mac I usually use a browser extension or the aforementioned MediaHuman YouTube Downloader. This is more for downloading from my iPhone and iPad.

App Manager — This is my Cloudron instance, which manages most of the self-hosted services I run on Linode.

Mastodon — My primary social network built on ActivityPub. Rather than join a public instance, I decided to run my own. If you have an account, you can follow me, Initial Charge, and/or #OpenWeb. And if you don’t have an account, you can find an instance to join on instances.social.

Pixelfed — Much like Mastodon, Pixelfed is a photo-focused ActivityPub service. If you have an account, you can follow me, and if not you can find an instance to join on Fediverse.party.

SearX — A meta search engine that I have configured to primarily pull results from DuckDuckGo and Brave Search. There are occasions where I need to search with Google, but SearX handles the overwhelming majority of my needs.

FreshRSS — An excellent backend to my feed reading system. I sync this with NetNewsWire and Unread on my iPhone, iPad, and Mac. The web interface isn’t great, though. Cloudron recently added Miniflux to its app store, so I might toy around with that in the future.

Wallabag — My read later service of choice. I’m not too fond of the iOS app, so I simply use that for its share extension and then have the website saved to my Home Screen as a progressive web app for reading articles.

RSS Bridge — A nifty service that generates RSS feeds for dozens of websites and services that don’t offer them.

Initial Charge — The site you’re reading this from — where I publish thoughts about Apple products, software, the web, and other geek-related topics.

\#OpenWeb — My recently relaunched directory of independent web publishers. Mostly focusing on technology and Apple-related weblogs.

Initial Charge Shop — This is a super secret project that I’ve been toying around with recently. Built on WordPress and WooCommerce. Hopefully I’ll have more to share soon.

Mike Rockwell — My LinkTree-style homepage built on LittleLink.

The Wishlist — A private site among myself and a small number of family members where we can keep an ongoing wishlist for birthdays and Christmas.

Don Rockwell — A family WordPress site to showcase photographs of and by my father.

Rebecca & Michael — An archive of my wife and my wedding website. Serving as a digital photo album.

Linode — Where most of my web services and websites are hosted. I use a Shared CPU Plan with 4GB of RAM, which handles everything I’ve thrown at it with a little bit of headroom.

SiteGround — Fantastic WordPress hosting. I’m currently using their GrowBig service. I might end up moving my WordPress sites to Linode to simplify things a bit, but I haven’t fully explored that option yet.

NameCheap — My domain registrar. It’s not clear to me if there’s really any benefit to using one registrar over another unless you’re utilizing their other services. So it comes down to price, mostly. And NameCheap seems pretty competitive on that front.

Fastmail — The best email hosting service. I’ve considered truly self-hosting email, but that seems like a task fraught with annoyances.

WordPress.com — Some of my WordPress sites are hosted here. It’s an excellent service, but for full disclosure, I do work at Automattic.

Cloudron — A shortcut to the subscription management site for Cloudron. The software is free to use for up to three apps, but requires a monthly or yearly fee if you want to install and run more than that.

Listenbox — A nifty service that lets you subscribe to YouTube channels as podcasts. This is primarily how I interact with YouTube now.

Social Crossposter — A service for cross-posting between Mastodon and Twitter. This is something that can be self-hosted, but I haven’t explored that option yet.

Search Console — This can probably just be removed from my dashboard. I don’t actively use it for anything at all. I could probably get some more traffic to Initial Charge if I did, but there’s almost nothing about search engine optimization that appeals to me.

IFTTT — Web automation at its best. I used to use it for a lot more than I do now — the original iteration of \#OpenWeb was built on it. But now I just use it to automatically save Initial Charge entries and Mastodon posts to Day One.

Jetpack — A link to Jetpack Cloud where I can manage subscriptions, backups, view my sites’ Activity Log and more.

VaultPress — Although new sites get backups directly through the Jetpack plugin, I still have some WordPress sites that are using VaultPress for their backups.

Bridgy — A bridge service that will let you save replies, favorites, and retweets/boosts to your site as webmentions.

Motorola Surfboard — A link to the web dashboard of my cable modem.

Geek Tees — My retired weblog, which linked to geeky t-shirts and other apparel. It may, at some point, resurface in one form or another.

CyberSurge — The first weblog I ever published with my own domain name. From 2006 until 2009, this was my home on the web.

Nu HTML Validator — W3C’s HTML Validator. When I make updates to any of my sites, I always try to run it through this to make sure all my code is valid.

CSS Validation — W3C’s CSS validator. Used in similar instances as the HTML validator.

Feed Validator — Another W3C validator, this one for RSS feeds.

Security Headers — A service for checking the security-related headers on your site. I’m happy to say that Initial Charge uses five out of the six that this checks for.

Structured Data — A Google developer tool that checks and validates the markup for structured data in your web pages.

PageSpeed Insights — A service for checking the speed of your web pages. It’s not my favorite, but it sure seems like everyone uses it.

Pingdom Tools — Another webpage speed tester. I prefer this one to PageSpeed Insights, but it doesn’t offer quite as detailed recommendations. I usually just use it for quick speed tests.

Just a quick note on hardware, for the folks that are interested in that sort of thing. I already referenced my web hosting — Linode, SiteGround, and WordPress.com — for the services I host locally I have a couple of Mac Minis.

The primary home server is a 2018 Mac Mini with a 3.6GHz quad-core Core i3 processor and 32GB of RAM. For storage, it has a ThunderBay 6 enclosure connected over ThunderBolt that houses two 8TB drives for media storage, two 14TB drives for backups, and a 1TB NVMe SSD that serves as the boot drive.

The other machine is a 2011 Mac Mini with a 2.3GHz Intel Core i5. 16GB of memory, and a 1TB SSD. This computer has more specialty usage — it primarily runs NordVPN, Transmission, and TunesKit M4V Converter to remove DRM from iTunes purchased content. Its running macOS El Capitan, which has the latest version of iTunes that the DRM removal tool works with.