Skip to content

pheliperocha/home-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

192 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 Personal Home Server

This repository contains the complete infrastructure and application code for my personal home server setup. While the code is public for portfolio and educational purposes, this is not intended for external contributions or pull requests.

πŸ“‹ Table of Contents

πŸ“‹ Overview

This is a production-ready Kubernetes-based home server that automates deployments, monitors services, and manages various personal applications. The setup demonstrates modern DevOps practices, cloud-native architecture, and GitOps workflows.

Key Features:

  • πŸš€ Automated deployment with Helmfile and Helm charts
  • πŸ” End-to-end security with cert-manager and Cloudflare Tunnel
  • πŸ’Ύ Automated backup system with K8up and Restic
  • 🏠 Smart home integration with Home Assistant and Node-RED
  • πŸ“Š Comprehensive monitoring with Prometheus, Grafana, and Loki
  • πŸ”§ Custom deployment automation with Drone Launcher

πŸ—οΈ Architecture

Data Flow:

  1. External Access: Internet β†’ Cloudflare Edge β†’ Cloudflare Tunnel β†’ NGINX Ingress β†’ Services
  2. Internal Services: Applications communicate through Kubernetes services
  3. Monitoring: Alloy collects metrics/logs β†’ Prometheus/Loki β†’ Grafana dashboards
  4. Storage: Applications use NFS/Local PVs, with automated backups via K8up to S3
  5. Home Automation: Home Assistant ↔ Node-RED ↔ Smart Home Devices

βš™οΈ Tools & Technologies

Logo Technology Description
Kubernetes Kubernetes Container orchestration platform
Docker Docker Application containerization
Helm Helm Package manager for Kubernetes applications
Helmfile Helmfile Declarative deployment management
Restic Restic S3 backup repository for K8up backups

πŸ› οΈ Services Running

Core Infrastructure

Logo Service Description
cert-manager cert-manager Automated TLS certificate management
NGINX NGINX Ingress Controller Traffic routing and SSL termination
Cloudflare Cloudflare Tunnel Secure remote access without port forwarding
K8up K8up Automated backup system
Kubernetes Kubernetes Dashboard Cluster management interface
NFS NFS Network file system for persistent storage
MinIO MinIO S3-compatible object storage
PostgreSQL PostgreSQL Relational database service

Monitoring & Observability

Logo Service Description
Prometheus Prometheus Metrics collection and alerting
Grafana Grafana Visualization and dashboards
Grafana Loki Log aggregation
Grafana Alloy Telemetry collection
Uptime Kuma Kuma Uptime monitoring

Applications

Logo Service Description
Home Assistant Home Assistant Home automation platform
Node-RED Node-RED Visual programming for IoT workflows
Pi-hole Pi-hole DNS filtering and ad blocking
qBittorrent qBittorrent Torrent client with web interface
Ntfy Ntfy Push notification service
Atuin Atuin Shell history sync
NestJS Drone Launcher A custom-built NestJS application that automates deployment processes and provides webhook-based CI/CD integration.

πŸ–₯️ Hardware Specifications

Component Specification
CPU Intel Core i7-8550U
RAM 16 GB DDR4
Storage 240 GB SSD + 1 TB HDD
Operating System Ubuntu Server 24.04.3 LTS
Kubernetes MicroK8s v1.32.9

πŸ” Security Considerations

This repository demonstrates production-ready security practices:

  • No Hardcoded Secrets: All sensitive data via environment variables
  • Encrypted Secret Management: All cluster secrets are managed in a separate private repository using SOPS for encryption
  • Secure Remote Access: Cloudflare Tunnel provides secure internet exposure without opening firewall ports
  • Secure Communications: TLS everywhere
  • Principle of Least Privilege: Minimal required permissions

🀝 Contributing

This is a personal project. While the code is publicly available for learning purposes, this is a personal configuration not intended for external contributions or direct replication. Feel free to fork and adapt the concepts for your own use!

πŸ“„ License & Usage

This project is open source under the MIT License and serves as a portfolio demonstration of modern home server infrastructure.

About

This repository contains the complete infrastructure and application code for my personal home server setup.

Resources

Stars

Watchers

Forks

Contributors