2. 1.Software Engineer | GitHub 🏻💻
2.Foster & expecting dad 👨👩👧👦
3.I practice Jiu Jitsu
4.First conference talk 😬😱😳
5.Not an “IT guy” 💾
6.Love DIY & home “hacks” ♻
3. - Home Assistant to unify your home
- Adguard Home to block ads
- CasaOS to manage apps
- Tailscale to connect remotely
- An old computer to run your setup
What & why?
7. Install Linux...
1. Install balenaEtcher
(etcher.balena.io)
2. Install the OS .iso file
3. Flash the USB
4. Insert USB &
Restart computer in “Boot Menu”
5. Select new bootable drive (the USB)
6. Run through the on-screen menu
8. Install Linux...
1. Install balenaEtcher
(etcher.balena.io)
2. Install the OS .iso file
3. Flash the USB
4. Insert USB &
Restart computer in “Boot Menu”
5. Select new bootable drive (the USB)
6. Run through the on-screen menu
9. Install Linux...
1. Install balenaEtcher
(etcher.balena.io)
2. Install the OS .iso file
3. Flash the USB
4. Insert USB &
Restart computer in “Boot Menu”
5. Select new bootable drive (the USB)
6. Run through the on-screen menu
10. Install Linux...
1. Install balenaEtcher
(etcher.balena.io)
2. Install the OS .iso file
3. Flash the USB
4. Insert USB &
Restart computer in “Boot Menu”
5. Select new bootable drive (the USB)
6. Run through the on-screen menu
1. Restart the computer
2. Look for prompted key
3. Quickly press prompted key
11. Install Linux...
1. Install balenaEtcher
(etcher.balena.io)
2. Install the OS .iso file
3. Flash the USB
4. Insert USB &
Restart computer in “Boot Menu”
5. Select new bootable drive (the USB)
6. Run through the on-screen menu
1. Select “Boot Menu” or “Boot Order”
2. Select and move the USB to the top of the list
3. Save and exit
12. Install Linux...
1. Install balenaEtcher
(etcher.balena.io)
2. Install the OS .iso file
3. Flash the USB
4. Insert USB &
Restart computer in “Boot Menu”
5. Select new bootable drive (the USB)
6. Run through the on-screen menu
13. Install Linux...
1. Install balenaEtcher
(etcher.balena.io)
2. Install the OS .iso file
3. Flash the USB
4. Insert USB &
Restart computer in “Boot Menu”
5. Select new bootable drive (the USB)
6. Run through the on-screen menu
14. Bonus tips...
- Disable sleep
- Disable (undesired) startup applications
- Set up times to update
- Adjust power management
16. DHCP Reservation / Static IP:
1.Login to router’s admin e.g. 192.168.2.1
2.Find “LAN Setup” or “DHCP” settings
3.Find computer in “connected devices”
4.Select and the save IP for your device
17. DHCP Reservation / Static IP:
1.Open your terminal
2.Note the info about your current network
3.Edit your network configuration.
4.Restart your network to apply changes.
18. Home Hub, phase two:
a simple foundation
Linux CasaOS Home Assistant AdGuard Tailscale
1 2 4 5
3
44. Setup AdGuard Home...
1. Install AdGuard via CasaOS
2. Create a login
3. Point your router to your AdGuard instance
4. Tweak some settings:
- Add parental control
- Safe search
- Add more upstream servers
- Add per-device settings
- Add more block lists
- Custom DNS entries
tcp 0.0.0.0:53: bind: address already in us
⚠️
45. Setup AdGuard Home...
1. Install AdGuard via CasaOS
2. Create a login
3. Point your router to your AdGuard instance
4. Tweak some settings:
- Add parental control
- Safe search
- Add more upstream servers
- Add per-device settings
- Add more block lists
- Custom DNS entries
46. Setup AdGuard Home...
1. Install AdGuard via CasaOS
2. Create a login
3. Point your router to your CasaOS instance
4. Tweak some settings:
- Add parental control
- Safe search
- Add more upstream servers
- Add per-device settings
- Add more block lists
- Custom DNS entries
47. Setup AdGuard Home...
1. Install AdGuard via CasaOS
2. Create a login
3. Point your router to your AdGuard instance
4. Tweak some settings:
- Add parental control
- Safe search
- Add more upstream servers
- Add per-device settings
- Add more block lists
- Custom DNS entries
48. Setup AdGuard Home...
1. Install AdGuard via CasaOS
2. Create a login
3. Point your router to your AdGuard instance
4. Tweak some settings:
- Add parental control
- Safe search
- Add more upstream servers
- Add per-device settings
- Add more block lists
- Custom DNS entries
49. Setup AdGuard Home...
1. Install AdGuard via CasaOS
2. Create a login
3. Point your router to your AdGuard instance
4. Tweak some settings:
- Add parental control
- Safe search
- Add more upstream servers
- Add more block lists
- Add per-device settings
- Custom DNS entries
50. Setup AdGuard Home...
1. Install AdGuard via CasaOS
2. Create a login
3. Point your router to your AdGuard instance
4. Tweak some settings:
- Add parental control
- Safe search
- Add more upstream servers
- Add more block lists
- Add per-device settings
- Custom DNS entries
51. Setup AdGuard Home...
1. Install AdGuard via CasaOS
2. Create a login
3. Point your router to your AdGuard instance
4. Tweak some settings:
- Add parental control
- Safe search
- Add more upstream servers
- Add more block lists
- Add per-device settings
- Custom DNS entries
52. Home Hub, phase five:
access anywhere
Linux CasaOS Home Assistant AdGuard Tailscale
1 2 4 5
3
56. Conclusion:
- Home Assistant to unify your home
- Adguard to block ads
- CasaOS to manage apps
- Tailscale to connect remotely
- An old computer to run your setup
Hello, I'm Ricardo Fearing, and today, I'm excited to share some findings from a DIY project that I use every day in my home.
Many of us, especially those working in IT, tend to accumulate old but functional tech that has become outdated. These devices sit in our closets or junk drawers, collecting dust and waiting for us to figure out how to make them useful again.
If that sounds familiar, you're in for a treat because I'm about to show you how to transform that forgotten companion into the ultimate central hub for your smart devices, home automation, and security needs.
(Maybe: This talk clocks in about 30 minutes so we have some room for questions throughout the talk and some space at the end).
Join me as we breathe new life into these dusty relics and turn them into invaluable assets for your home."
First, a few things about me:
(animated)
Software Engineer | GitHub 🧑🏻💻 (I work on our marketing platform)
Foster & expecting dad 👨👩👧👦 (we’re expecting a little lady in December)
⚠️ Fair warning. There may be some dad jokes scattered in this talk
I practice Jiu Jitsu 🥋
Fun way to get out of the office and stay in shape
This is my first conference talk 😬😱😳
So excuse any nerves that show from here
While I am a software engineer, I’m Not an “IT guy” 💾 (or networking expert by any means, and I think if you’re like me: “IT adjacent” this talk may be for you as well.)
I really enjoy creating DIY home hacks that reuse things from around the house
My goal is to share with you simple-to-use tech stack and how each can improve your home automation setup. Allowing you to:
Unify you smart devices into one central hub, using Home Assistant
Provide added security and speed to your network by keeping away ads and blocking unsafe content for you and your family, using AdGuard Home
Simplify app installation and maintenance by using CasaOS
Easily create a tunnel to your system so you can access it from anywhere using Tailscale
Do it all without buying additional hardware
I’ve already touched on some of these reasons, but ultimately, “why should you care?” Why not just buy into an ecosystem?
You’ll avoid contributing to the waste created by thrown out / out-of-date devices and you’ll free up space in the closet or junk drawer.
The software we’ll be using today often is more powerful and has more potential than the off-the-shelf / proprietary counterparts (like “Google Home” for instance)
You’ll be saving money by not needing to buy another device for your hub and not being by “locked in” to an ecosystem freeing you to buy less expensive brands when there is something you need new.
My first step assumes your computer is not “fresh out of the box” so it’s best to install a modern OS for added:
Stability & Reliability
Compatibility
Performance
Continued support.
CasaOS requires us to use a Linux distribution and I’d argue it’s the best way to get a modern OS on the most devices.
Gas Mileage Image Animation:
IMPORTANT: THIS IS A VERY BROAD STROKES OVERVIEW / YOUR MILEAGE MAY VERY
This is really just one option of many.
I kind of think of this as a choose your own adventure book 📖 and I’m just sharing with you the adventure I chose.
What you’ll need:
An old computer or a raspberry pi
A USB drive, ideally with at least 8GB
And a newer computer (this can make installing things a bit easier but isn’t necessarily needed)
I suggest doing the first three steps on a modern computer if you have one.
The first thing we’ll want to do is download and install a utility tool to flash an operating system onto our USB drive.
I suggest BelenaEtcher as it’s cross-platform and reliable.
Next we’ll want to get an exact copy of an entire modern operating system, archived into a single file called an .iso file
Two of the most popular Linux distributions are Ubuntu & Debian.
Ubuntu, is a bit more popular and provides a great UI while Debian provides multiple UI options and provides 32 bit support.
⚠️ At this point, you’ll want to ensure compatibility with your system by verifying whether your computer runs a 32-bit or 64-bit CPU. If you have a 32-bit system my suggestion would be to consider choosing Debian. (Ubuntu no longer releases 32 bit versions).
There is a link in my corresponding blog post with how you can determine which your CPU your system has.
Once we have our flashing utility and our .iso file we can flash our usb-drive, which is essentially copying the contents within the ISO file onto the thumb drive in a way in which our old machine can boot up from it.
Inside BalenaEtcher:
We select "Flash from file" option within balenaEtcher.
Select the OS .iso file you downloaded in the previous step.
Select the USB drive as our destination.
My first time around I did run into an issue with my flash-drive but just had to run these steps again.
Now that we have a bootable USB drive, I want to guide you through the process of accessing 'Boot Mode' on your target device.
Accessing Boot Mode may vary slightly depending on your computer's manufacturer and firmware type, however, the two most common boot systems are BIOS (Basic Input/Output System) or UEFI (Unified Extensible Firmware Interface).
For both, you’ll want to:
Restart your computer.
Look for Key Prompt, something like "Press [Key] to enter setup."
Quickly press the specified key (common keys include F2, F12 or Delete)
(If you don’t get it in time, you’ll know what to press and be able to be pressing it on your next restart.)
To select the usb as the new bootable drive:
Navigate to the “Boot Menu”, "Boot" or "Boot Order" section using the keyboard arrow keys.
Select and move the USB to the top of the list
Save and exit.
Your computer will then reboot using the selected boot device.
When setting up either Ubuntu or Debian, you will encounter slightly different installation steps, but both distributions will guide you through configuring essential settings like:
Language
Time Zone
Internet Connection
Once you've completed the setup steps…
congratulations! You did it! You've successfully installed a modern operating system on your old machine.
Disable sleep
Disable (undesired) startup applications
Set up times to update:
I like to set up times to update so I know when the computer will be offline
I also can change my router settings temporarily (which we’ll go over when we get to AdGuard Home)
Power Management: Adjust power management settings to optimize the laptop's power usage, especially if it's running 24/7 as a server.
Before proceeding with the remaining steps today, it's essential to ensure that your computer consistently maintains the same IP address on your home network.
Typically, routers use DHCP (Dynamic Host Configuration Protocol) to assign IP addresses, which can change over time.
To maintain a consistent IP address, you have two options:
Set up a static IP address on your computer
Configure a DHCP reservation in your router.
In my accompanying blog post, I include instructions for both methods in more detail, however it’d be impossible to show you a step-by-step process that will work for every machine, so what I’ll show you is very broad strokes / high level summary.
DHCP Reservation steps on next slide.
Access your router's configuration by opening a web browser and entering your router's IP address.
Navigate to the DHCP settings section.
Locate the list of connected devices
Select the newly set up machine from the list.
Find the “Reserve IP” option and save the changes.
Open your terminal
Note the info about your current network
Particularly the connection type ethernet or wifi
Your IP address
Edit your network configuration.
Restart your network to apply changes.
Now this is a gross oversimplification, but trying to go into detail I think would be both boring to sit through and I don’t think particularly useful.
Now that we have our machine up-to-date with Linux, let’s begin installing software with CasaOS
To avoid confusion, I want to clarify that, despite its name, CasaOS is not an operating system.
At a high level, CasaOS is a open-source, user-friendly interface to manage docker applications.
Its focus is to make managing and deploying applications and services for a home network environment super easy.
CasaOS is built on the Docker ecosystem, which uses lightweight, isolated environments that package applications and their dependencies called “containers”, making it easy to run software consistently across different systems.
CasaOS requires an underlying Linux Operating System, tho Docker does not.
CasaOS has a number of pre-configured apps that can be installed with one click including Home Assistant, AdGuard, PiHole, Plex.
It provides an intuitive and easy to use UI via your web browser and
installing it couldn’t be simpler.
The CasaOS website provides a script to copy and paste into your terminal and that’s it. CasaOS will install and do it’s thing.
When the installation is done, it will show you the URL as IP where you can access the main homepage to create a local account to see it’s interface.
This account is local to your instance.
CasaOS provides tools for monitoring and managing installed applications. Allowing you to easily:
install a number preconfigured apps with only a few clicks
install any dockerized app easily
start, stop, or restart containers,
explore the files of your installed apps
see your computer’s health and storage
Additionally, CasaOS may offer automated update mechanisms to keep applications and the system itself up to date.
Let’s install the popular video hosting platform “Plex” on or system. All we need to do is:
Go to the app store
Search for plex
Hit Install
CasaOS Runs the install (and can do this in the background)
When it’s done we have a working version of “Plex” on our machine
We can log in or create an account and on our hosted plex instance
Now, if you need to use a custom installation, CasaOS makes that process just as straightforward.
(Click here)
They offer a 'Custom Install' option that provides all the flexibility and configuration choices you would typically find when working with Docker images.
This means you can tailor your CasaOS setup precisely to your needs, selecting the specific applications, services, and settings that suit your home automation and data management requirements.
Now I want to talk about the app that got this project started for me.
Home Assistant is an open-source home automation platform that allows you to control and automate various smart devices and services in your home.
I want to remind you that I’m showing things in broad strokes. What I’m going to show you truly only scratches the surface.
If you find this interesting this just the beginning of what you can do with Home Assistant.
My introduction to Home Assistant began when, like many in 2020, I needed to convert a guest room into an office space.
I placed an old light above my desk, but the location made it difficult to access the light switch easily, so I used a super cheap smart outlet (show outlet) to integrate with Google Home.
However, I later discovered a downside: when I misplaced my phone, I couldn't control the light. I tried to add the outlet to Apple Home so that I could use my computer but it wasn’t compatible.(up next:... I had begun to add smart devices to my home… )
I had begun to add smart devices to my home (including smart outlets, bulbs, security cameras, a smart thermostat, and a robot vacuum) but it wasn’t until this moment I realized how inconvenient it was that these ecosystems don’t play nice together.
I had expected that all my devices…
Work together, easily. I wanted to be the ruler of my smart house.
I was hoping my robots would work like a family but sadly…
They were working like a “clique.” Apple was the biggest culprit but I also didn’t want to be forced into having multiple apps for each device.
This is where Home Assistant really shines.
Home Assistant offers a user-friendly and unified interface that effectively bridges the gap between all your smart devices, eliminating the need to be concerned about compatibility issues with different ecosystems.
It provides the flexibility to create beautiful interfaces for web Mac, Windows, Android and iOS.
It’s particularly popular to turn old tablets into wall panels.
Home assistant has truly countless integrations, but some include
Apple home kit
Roomba vacuums
Google nest thermostats
Phillip hue bulbs
Google Home assistant (meaning you can use your smart speakers to call your home assistant devices)
Alexa
The national weather service
Samsung smartthings
Husqvarna robot mowers
Sonos speakers
The list really could go on
With CASA OS installed, we can install Home assistant with just a few clicks
I want to take a short detour and share another install option for Home Assistant.
There are other HA install options, the primary being “Home Assistant O.S.”, which unlike CasaOS, is an operating system. Home Assistant OS is a great option if:
At the end of this talk, you only want to use Home Assistant
You don’t want to install Linux
You have an extra device
(Maybe: I ran into one integration I was thinking about that required Home Assistant OS but…)
The key benefits of using CasaOS and docker are:
Can restart just one portion of your home system
The user UI provides quick insights and an easy way to manage your installations.
Remember, CasaOS uses Docker Containers, so you may want to use the Docker CLI:
You prefer managing Docker in the terminal and don’t need a UI
Now no matter how you install Home assistant there are some configurations that I suggest you set up.
Set up zones:
Zones allow automations based on location such as turning off your lights when you leave home
You can select a location (latitude & longitude) and change the radius of the zone depending on your need and add as many zones as you want in the maps menu.
One thing I do is simple but was not possible with Google Home at the time. I turn on the lights when my wife or I get close to the house but only after it’s dark out. But HA allows you to chain as many conditionals as you want
I’ve heard that Google Home finally has advanced scripts, but I can’t speak into how complex they can get.
Enable the "Advanced Mode.” It grants you access to a comprehensive array of advanced settings, unlocking customization options and fine-tuning capabilities that allow you to tailor your home automation experience precisely to your liking.
Enable 2FA
It’s always good to secure yourself and you can use any 2 factor app like Google Authenticator to add additional security for new login devices.
Install HACS (Home Assistant Community Store), you gain access to a a huge selection of open-source add-ons that might not be officially supported by default
HACS serves as a gateway to the ecosystem of user-contributed extensions.
Animation
To find a new integration we can look at the official home assistant integrations
and if there is none
HACS allows us to search for additional integrations
Provided by open-source contributors
Now I want to show you our next step for our home hub, …
Everyone hates ads, and there’s a plethora of tools to block ads and improve your browsing experience.
These blockers are perfectly good if you want to block ads on a specific browser or device. But they have to be added on every browser or device and don’t give you a central way to control them.
I prefer blocking everything on my home network and only using these addons when I’m on the go. This is why I want to help you set up a DNS sinkhole
AdGuard Home and Pi-hole are both widely recognized DNS sinkhole solutions. Both are great options, and you really can’t go wrong.
In this demonstration, I've opted for AdGuard due to a few advantages it offers, including:
parental controls
HTTPS filtering capabilities,
and a lower resource footprint when compared to Pi-hole
Now who’s familiar with what a DNS sinkhole is?
Unknowns: Well I can tell you it’s…
All hands raised: Well I don’t have to tell you then,...
Now you may be asking “What’s a DNS sinkhole” and if you thought this..
It’s not this sinkhole. Tho I suppose they both can cause ✌️“traffic jams” ✌️
Unknowns: What it actually is…
All hands raised: You already know...
A DNS Sinkhole is actually a downstream DNS server.
Essentially, a DNS server is like a phonebook for the internet. It turns URLs into IP addresses for our computers.
A DNS Sinkhole that passes along DNS requests that we actually want back like github.com but returns and empty response for anything that matches urls we tell it to ignore like all-the-ads.com
We can install AdGuard Home in the same way we installed Home assistant, with CasaOS.
ANIMATION:
It’s important to note here we may need to Free Up Port 53 on our machine. I’m going to include a link to instructions for this in the companion post.
Next: We need to create a login account.
*Note: this is not an account to a service but the adguard local instance.
In order to start blocking ads, we’ll need to tell our router to use the local IP address we set up before.
This will look differently depending on your router, but you’ll want to change the DNS settings from the default (your ISP’s DNS) to your local machine.
Next, I suggest you Tweak some settings based on your preferences.
I chose to add:
Add parental control
Safe search
to aid in protecting our foster kiddos from seeing things they shouldn’t
While the default AdGuard DNS upstream server is excellent, you have the option to add additional servers for enhanced redundancy so your internet connection stays reliable even if one of the DNS servers go down.
Adguard comes with a block list of known ads out the gate, but we can make it even more effective by adding additional open-source block lists to block even more unwanted content!
I mean, why wouldn’t we want to block more ads, right?
Note: If you ever find a certain legitimate site is having issues, AdGuard home gives you the ability to temporarily disable your filters. I had this happen with Hulu, for instance. You can then search
You can set up clients to block differently based on IP address, MAC address, or ClientID (so you can control what individual devices have access to on your network.
You can add custom DNS entries, so for example you can reach your casaOS instance from something like casaOS.local
Animations
Now that we’re set up,
Your downstream dns responds to known ads with nothingness. It’s a hole where ads go to to die
It forwards on the requests we still want valid responses for
And that’s good news: (gif) Not having to deal with ads, means
smaller payloads and quicker internet
Due to our blocklists eliminating known malware, it also means a safer internet.
Finally, I want to share how you can access your home hub from anywhere with Tailscale, which is a Crazy easy secure network and truly a “zero configuration vpn”.
Tailscale simplifies connectivity – all you need to do is download the app on any device that you want to be “connectable”.
It then forms a private virtual network, assigning each device an IP address, enabling seamless connections between all the devices that have the app installed.
On your machine Tailscale gives you an install script and a link to create an account.
You can then repeat this with any device you’d like to use to connect to your machine and you’ll be given a fixed IP to visit for each device in the VPN
That means you can check in on your stats, automations and cameras while your away on vacation, without worrying.
Conclusion:
Use home assistant to unify your home’s smart devices
Use AdGuard to block ads and create safer browsing for you and your family
Use CasaOS to easily add or remove new apps to your home hub
Use Tailscale to connect remotely
And save money by using an old computer, that you can breath life back into using a linux OS