I’ve been quite busy setting up my homelab for the past few months and did not get any time to update the blog. Thought I’d do a quick post on my setup if it interests anyone. I will not go into too much detail. If you need more information, let me know in the comments and I might expand on it a bit in a future post. Let’s begin with a screenshot of the containers I am running.


Containers running on my homelab


Can you believe it that my puny media center PC with 4 GB RAM and an ARM processor is running so many containers? By the way, many people have been asking me about the media center PC that I own, so here are some details if you are interested. I am not sure if it is available now.


My media center PC is “X96 air”. Do a google search to find more information. They come in multiple variants and I have the one with 4GB RAM and 64GB storage. Here are some more details if you care

  • CPU: Amlogic S905X3 64-bit quad core ARM® Cortex™ A55 CPU
  • GPU: G31™ MP2 GPU processor
  • Memory: LPDDR 4GB
  • Flash: eMMC 64GB
  • WiFi: IEEE 802.11 a/b/g/n/ac 2.4G / 5G
  • Bluetooth: BT4.2
  • HDMI 2.1, Supports HDMI CEC, Dynamic HDR (HDR 10+)
  • V1ideo decode: supports up to 8K 10 bit HDR
  • USB: 1 * USB 3.0 ; 2 * USB 2.0
  • Remote: IR Reciver
  • Ethernet: Support 10/100M/1000M
  • TF CARD
  • Power: DC 5V/2A


You can find more about power consumption and other capabilities, in the links below

  • https://www.cnx-software.com/2019/10/01/x96-air-amlogic-s905x3-android-9-0-tv-box/
  • https://androidpctv.com/review-x96-air-opinion/


Some one asked about the power consumption of this media center PC and according to the links above, it is as follows

  • Consumption: Off 0.6W / Min 2.3W / Working 3.6W / Max. 7.8W

From my own measurements, those numbers were not too far off.


The media box comes with android OS by default, but I wiped it and installed CoreELEC. That allows me to run a minimal version of linux OS with no package management. So it is very lightweight. It runs kodi which is a media center application that can play all my home videos, photos, movies, music and more (with add-ons).


On that machine (which I will call as homelab) I installed docker and docker-compose and started running a bunch of docker containers. Because my homelab machine (X96 air) is based on ARM instruction set (specifically aarch64), some containers are not be available for it. On the other hand a x86/amd64 machines will have more flexibility but are expensive and consume more power of course.


So, going back to the actual important topic, I have these containers running on my homelab

  • nginx: as a reverse proxy so I can use a sub-domain on my domain name to reach some of the services (for example I use git.re-ynd.com to reach my self hosted git server etc)
  • homepage: dashboard linking off to my services and to show the status of my containers
  • portainer: a versatile container management system
  • diun: notifies me via email when there is an upgrade (new docker image) available for any of my containers
  • gitea: a self hosted private git repository (version control) for my code
  • influxdb: a performant database to store all my sensor data so I can query things like “how much energy did my solar panel generate 7 days ago”
  • grafana: used to build graphs with the data stored in influxdb
  • home assistant: open source home automation
  • node-red: to run more complex automations than what is possible by home assistant
  • actual budget: self hosted financial management software


Even after running all those containers and doubling as a media center PC, my homelab consumes only 2.2 GB RAM and about 20% CPU on idle. So I have still more headroom to add more containers in the future.


Here are screenshots of some of the containers if that interests you.

Homepage

Dashboard with links to my containers / apps as well as their state.


Gitea

My private git repositories.


Grafana

Graph of solar power generation and grid usage this year using data from influxDB which is populated by home assistant. I haven’t backfilled data from my old setup.


Home Assistant

There are lots of dashboards in my home assistant setup, but I am showing a couple of them below.

Overview of home sensors and controls


Living room sensors and controls


Actual budget

Earlier I used to use spreadsheets to track my expenses. But recently I’ve moved to Actual Budget to track all my expenses. I imported all the transactions from my spreadsheets into this new app. It took a lot of time to get things right, but it was well worth the effort since I can now generate graphs with much more ease compared to spreadsheets which becomes cumbersome after a few hundred rows of data.

Expense reports


Budgets


Recurring transactions that get posted automatically


Daily transactions


So there you have it. All the containers running on my homelab.