Portainer is a lightweight management UI that allows easy Docker management.
I use it for restarting, stoping, killing docker containers. I can check logs, ports, statistics. This is my primary tool, that replaces Home Assistant Supervisor.
Home Assistant is an open-source home automation platform that puts local control and privacy first. This is the heart of my smart home.
Home Assistant powers my home automation binds my devices together, passes them to Google Home and HomeKit, etc.
You can read more about it in Home Assistant section of this documentation.
Eclipse Mosquitto is lightweight and is suitable for use on all devices from low power single board computers to full servers.
In my case, this is an MQTT broker (basically, a man in the middle) between Home Assistant MQTT integration and Zigbee2MQTT container. This is necessary to incorporate my Zigbee devices into my smart home.
zigbee2mqtt is a container for connecting Zigbee devices without proprietary Zigbee bridges. It bridges events and allows controlling Zigbee devices via MQTT.
In my case, it bridges my Zigbee devices to Home Assistant via CC2531 sniffer. You can read more about it in the Hardware section.
ESPHome is a system to control ESP8266/ESP32 devices by simple and powerful configuration files and control them remotely through Home Automation systems.
I use ESPHome for connecting and controlling my Midea AC remotely.
Duplicati is a backup software to store encrypted backups online. It works standard protocols like FTP or SSH and cloud services.
I use Duplicati as a replacement for Supervisor's Snapshots. It allows to schedule incremental backups, encrypt them, upload to cloud services (Google Drive, Dropbox). Additionally, it gives an ability to restore granularly (only specified files or folders).
MariaDB is a high-performing open-source relational database, forked from MySQL.
Long story short, it's a fast, light, and backward compatible with MySQL database solution. I use it as a SQL database for my smart home. This is used by Nginx Proxy Manager.
Adminer (formerly phpMinAdmin) is a full-featured database management tool written in PHP.
It's a dead-simple UI for my MariaDB database.
Nginx Proxy Manager¶
Nginx Proxy Manager is a Docker container for managing Nginx proxy hosts with a simple, powerful interface.
This allows me to easily expose services from my local network to the internet. It automatically requests, invalidates, and renews SSL certificates from Let's Encrypt.
AirConnect is a simple tool to make UPnP/Sonos & Chromecast devices available via AirPlay.
Samba Docker container allows me to share folders from my machine as Samba volumes. I use it to expose my home config folder (
smart-home) and my media vault (
Pi-hole is a powerful network-wide ads & trackers blocking DNS server.
Once it's set up, it'll cover all home devices, so there's no need to install any client-side software for that.
You can read more about it in a section about Ad-Blocking.
Previously, I used AdGuard Home to blocks advertisements. AdGuard is a company founded and developed by Russians. After Russian invasion in Ukraine I decied to move away from AdGuard.
Plex Media Server organizes video, music, and photos from personal media libraries and streams them to smart TVs, streaming boxes, and mobile devices.
Basically, this is a self-hosted Netflix. Plex helps me expose and manage media files from the hard drive wired to Raspberry Pi. It finds localized metadata for my media: descriptions, reviews, posters, and soundtracks.
Media is downloaded via Transmission.
Transmission is a popular BitTorrent client. It can be hosted as a Docker container — that's exactly what I did.
I use it for downloading media to my hard drive.
Bitwarden is an open-source password manager that can be self-hosted. I'm using Vaultwarden, which is an unofficial Bitwarden client written in Rust. Vaultwarden is especially useful for low powerful machines, like Raspberry Pi.