Self-Hosting Journey
A report of my long self-hosting journey
Diagram
Software
Currently, all clusters run Docker, with software orchestration handled via docker-compose. The source of truth is a private GitHub repository containing all configurations. To update any configuration or container, one simply commits the changes to GitHub, pulls the update on the machine, and restarts the container.
Future Work: The goal is to transition all machines in a cluster to Docker Swarm or Kubernetes, and enable automated configuration updates. This would involve implementing a service that pulls changes from GitHub and relaunches the services seamlessly. Another objective would be to host this website and my Links website locally as well but due to hardware limitations right now they are all on Vercel and linked to their GitHub repositories.
Hardware
Laptop magalhães :)
Specs:
- CPU: Intel Atom N450 1,67 Ghz
- RAM: 2 GB DDR3 RAM
- DISK: 250GB HDD
- GPU: WSVGA 1024x600, 32-bit
- ETHERNET: 10/100 Mbit/s 802.11 b/g/n and RJ45 support
- OS: debian
Raspberry pi 3B
Specs:
- CPU: Broadcom BCM2837, Quad-core Cortex-A53 @ 1.2 GHz
- GPU: Broadcom VideoCore IV
- RAM: 1GB LPDDR2
- USB Ports: 4 × USB 2.0
- Ethernet: 10/100 Mbps
- Power: 5V/2.5A micro-USB
- OS: DietPi
Raspberry pi 5
Specs:
- CPU: Broadcom BCM2712, Quad-core Cortex-A76 @ 2.4 GHz
- GPU: VideoCore VII
- RAM: 16GB LPDDR4X
- USB Ports: 2 × USB 3.0, 2 × USB 2.0
- Ethernet: Gigabit Ethernet (1000 Mbps)
- Power: 5V/5A USB-C
- OS: Raspbian 64bit
Services:
Local
- Motioneye
- Portainer
- Adguard Home
- Homeassitant
- Autoheal
- Wireguard
- Watchtower
- Frigate
- MQTT
- Caddy
Motioneye
MotionEye is an online interface for the software motion, a video surveillance program with motion detection.
Portainer CE
Portainer Community Edition is a lightweight service delivery platform for containerized applications that can be used to manage Docker, Swarm, Kubernetes and ACI environments. It is designed to be as simple to deploy as it is to use. The application allows you to manage all your orchestrator resources (containers, images, volumes, networks and more) through a ‘smart’ GUI and/or an extensive API.
Portainer consists of a single container that can run on any cluster. It can be deployed as a Linux container or a Windows native container.
Adguard Home
AdGuard Home is a network-wide software for blocking ads and tracking. After you set it up, it’ll cover ALL your home devices, and you don’t need any client-side software for that.
It operates as a DNS server that re-routes tracking domains to a “black hole”, thus preventing your devices from connecting to those servers. It’s based on software we use for our public AdGuard DNS servers, and both share a lot of code.
Homeassitant
Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.
Autoheal
Monitor and auto restart unhealthy docker containers.
Wireguard
Vpn server that makes use of the UDP protocol make it have less overhead.
Watchtower
With watchtower you can update the running version of your containerized app simply by pushing a new image to the Docker Hub or your own image registry.
Watchtower will pull down your new image, gracefully shut down your existing container and restart it with the same options that were used when it was deployed initially.
Frigate
Frigate is an open source NVR built around real-time AI object detection. All processing is performed locally on your own hardware, and your camera feeds never leave your home.
Caddy
Reverse Proxy.
Cloud
- Github
- Vercel
- Cloudflare




