This project describes my personal self-hosted infrastructure setup.
This was meant to be just a reminder for me as I can never trust my brain, you forget stuff when you get older, that is a known fact. Now I am making it publicly available in case it might help someone out there.
Overall, I am using only free and open source software
Important
- The content of this repository is provided "as is", with no guarantee that the information is complete or error-free. Do not just blindly "Copy-Paste", but try to analyze and adapt the content according your use case and your infrastructure, especially the docker network (port) and volumes.
- I, the author, take absolutely no responsibility for possible consequences due to the use of the related software and/or any scripts/files in here.
I started this project back in summer 2023 as a home lab, for learning purpose and I just wanted to keep all my data to be located locally and managed by myself. Well, just started to be really serious with online privacy.
When planning the whole idea, the main goal was to have an environment, which is:
- 100% self-hosted => privacy preserving, full control over my dat
- Secure => I need implement authentication, SSL/TLS, firewall, Ad-blocking,custom DNS resolver.
- Energy efficient => The electricity in the country where I live is quite expensive, so I needed to run something energy efficient.
- Lightweight => Everything should run smoothly with minimal hardware and software requirements)
- Container-ready => I've always loved the idea of de-coupled services, i.e. isolated, portable, scalable applications.
- Accessible => some services accessible only locally, some only through VPN.
- Observability => monitoring, alerting, tracking.
- Backups => I should be able to deploy and manage backups of any data and running services.
Currently all the apps below are running on a single Raspberry Pi 4 Model B with 8 Gb of RAM.
Note
The schemas are still on paper and I need to work on transferring them to a digital drawing.
I am running and using the following apps. This list is constantly being updated as soon as I am deploying new services.
Service Name | Port | Use cases | Official Details |
---|---|---|---|
AdGuardHome | 53 | Network-wide ads & trackers blocking DNS server. | Github Website |
AudioBookShelf | 80 | Audiobookshelf is a self-hosted audiobook and podcast server. | Github Website |
ActualBudget | 5006 | Actual is a local-first personal finance tool. | Github Website |
CAdvisor | 8080 | To analyze resource usage and performance characteristics of running containers. | Github |
ChangeDetection | 5000 | Page change monitoring with alerts a breeze. | Github Website |
FritzBox-Exporter | 9787 | This is a prometheus exporter for AVM Fritz! | Github |
Grafana | 3000 | Just an awesome dashboard. | Github Website |
HomeAssistant | 8123 | Open source home automation that puts local control and privacy first. | Github Website |
Homer | 8080 | A simple static HOMepage for your servER to keep your services on hand. | Github Website |
InfluxDB | 8086 | An open source time series database for metrics, events, and real-time analytics. | Github Website |
IT-Tools | 80 | Collection of handy online tools for developers, with great UX. | Github Website |
Lubelogger | 8080 | Web-Based Vehicle Maintenance and Fuel Mileage Tracker. | Github Website |
MeTube | 8081 | Self-hosted YouTube (and others) downloader (web UI for youtube-dl / yt-dlp. | Github |
MySpeed | 5216 | A speed test analysis software that shows your internet speed | Github Website |
Navidrome | 4533 | My personal Streaming Service as of using Spotify. | Github Website |
NextCLoud | 80 | My private cloud. I hate GoogleDrive, OneDrive. | Github Website |
Nginx Proxy Manager | 80, 81, 443 | To easily forward to websites running at home, including free SSL. | Github Website |
Node-Exporter | 9100 | Exporter for *nix machine metrics | Github |
Planka | 1337 | An open source project tracking. | Github Website |
Portainer | 9000 | Making Docker via a Web UI | Github Website |
Prometheus | 8080 | The Prometheus monitoring system and time series database. | Github Website |
Stirling-pdf | 8080 | Web application that allows you to perform various operations on PDF files | Github Website |
UptimeKuma | 3001 | An easy-to-use self-hosted monitoring tool. | Github |
Vaultwarden | 80 | Alternative implementation of the Bitwarden server API. | Github |
Wiki-JS | 3000 | A lightweight and powerful wiki app built on NodeJS. | Github Website |
- Pending tasks