Skip to content

Docker Containers

Portainer CE

Portainer CE

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

Home Assistant

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.

Mosquitto

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

zigbee2mqtt

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.

Duplicati

Duplicati

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

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 and Umami.

Adminer

Adminer

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

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

AirConnect is a simple tool to make UPnP/Sonos & Chromecast devices available via AirPlay.

Samba

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 (media).

AdGuard Home

AdGuard Home

AdGuard Home 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.

Plex

Plex

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

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.

Umami

Umami

Umami is self-hosted analytics for my websites. Simple although completely fits my needs.

Note

Official images does not support ARM architectures. I've made my own Dockerfile that builds an image right on my Raspberry Pi.

Bitwarden

Bitwarden

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.