Skip to content

Instantly share code, notes, and snippets.

@asad-albadi
Last active February 29, 2024 02:47
Show Gist options
  • Save asad-albadi/f23ff6d6efabce2851421636274ccfc1 to your computer and use it in GitHub Desktop.
Save asad-albadi/f23ff6d6efabce2851421636274ccfc1 to your computer and use it in GitHub Desktop.

My Home Lab Checklist

image homelab

This is my personal checklist for my Home Lab – a collection of projects I've already set up, those I plan to create, and even things I'm intrigued by and might explore in the future. It's a dynamic space where I can experiment, learn, and cultivate my tech interests. will see how it goes!

Hardware

This is the hardware where I deploy my containers, scripts, media server.

Computers | Servers | SBC

Device Dell Precision Workstation T5400 Raspberry Pi 4 Model B SY-WIND ASUS TUF Dash F15 FX516PC
Operating System Proxmox VE 7.4-3 x86_64 Debian GNU/Linux 11 Windows 11 Pro x86_64 Pop!_OS 22.04 LTS x86_64
Kernel Version 5.15.102-1-pve 6.1.21-v8+ 10.0.22621 6.4.6-76060406-generic
Shell bash 5.0.17 bash 5.1.4 bash 5.2.15 bash 5.1.16
CPU 2x Intel Xeon E5410 (4) @ 2.327GHz BCM2835 (4) @ 1.800GHz Intel i7-8700K (12) @ 3.700GHz 11th Gen Intel i5-11300H (8) @ 4.400GHz
GPU NVIDIA GeForce GTX 660 Ti N/A NVIDIA GeForce GTX 1080 Ti NVIDIA GeForce RTX 3050 Laptop GPU
Intel TigerLake-LP GT2 [Iris Xe Graphics]
Memory DDR2
ECC
16 GiB
LPDDR4
4 GiB
DDR4
16 GiB
DDR4
8 GiB
Disk 240GB SSD
500GB HDD
64GB SD Card 1TB SSD
500GB SSD
2TB HDD
4TB HDD
500GB SSD
Remarks VMs & Containers Scripts Gaming, Plex Server ICT Stuff

Network Appliances

  • RiftRaven Micro Firewall Appliance

    • CPU: Quad Core AES-NI Supported CPU
    • LAN Ports: 4x 2.5 Gbps
    • Storage: 32GB mSATA SSD (128GB Upgraded by RiftRaven)
    • RAM: 4GB (8GB Upgraded by RiftRaven)
    • Preinstalled OS: OPNSense (Reinstalled for security purposes)
  • Linksys SWITCH 8 PTOS (LGS310C)

    • Switch Type: Managed
    • Ports: 8 Gigabit Ethernet, 2 Gigabit SFP uplinks
    • VLAN Support: Port-based and 802.1q VLANs, Management VLAN, Guest VLAN
    • Security: 802.1x Radius authentication, DHCP snooping, IP-MAC binding, Port Isolation, Port Security
    • QoS: 8 hardware queues, Port-based, 802.1p priority-based, IPv4/v6 IP DSCP-based

Containers

  • ilteoood/docker-surfshark OR misioslav/surfshark OR Gluetun VPN client Docker container with OpenVPN client preconfigured for SurfShark

  • OctoPrint OctoPrint is an open source 3D printer controller application, which provides a web interface for the connected printers.

  • bookstack A platform for creating, organizing, and storing documentation or notes.

  • Unifi Network Application software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance.

  • cloudbeaver An open-source database management tool that supports various databases.

  • dozzle A web-based, interactive log viewer for Docker containers.

  • glances container A cross-platform system monitoring tool that provides detailed information about your system's performance.

  • ctop provides a concise and condensed overview of real-time metrics for multiple containers

  • grafana A widely-used platform for monitoring and analyzing metrics with customizable dashboards.

  • Srutiny is a Hard Drive Health Dashboard & Monitoring solution, merging manufacturer provided S.M.A.R.T metrics with real-world failure rates.

  • Dashy is an open source, highly customizable, easy to use, privacy-respecting dashboard app

  • Homer A dead simple static HOMepage for your servER to keep your services on hand, from a simple yaml configuration file.

  • homepage A customizable, personal homepage to centralize links, notes, and more.

  • huginn A system for building agents that perform automated tasks and workflows online.

  • joplin-server A server component for Joplin, an open-source note-taking app.

  • mongodb A Docker image for running MongoDB, a NoSQL database system.

  • netdata A monitoring solution that provides real-time insights into system performance and health.

  • nginx Proxy Manager A web-based GUI for managing Nginx reverse proxy configurations.

  • nosqlclient A cross-platform NoSQL database client.

  • plex A media server platform for managing and streaming your multimedia content.

  • pihole A network-level ad blocker and DNS sinkhole.

  • postgres A Docker image for running PostgreSQL, a powerful open-source relational database system.

  • uptime-kuma A self-hosted monitoring solution to track the uptime and response times of various services.

  • vaultwarden An open-source password manager compatible with Bitwarden clients.

    • Ngnix is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.
  • Gotify A simple server for sending and receiving message.

    • Gotify Indicator Gotify Indicator is an application to recieve and send messages from your own Gotify Server.
  • wazuh A security information and event management (SIEM) platform for monitoring and analyzing security events.

  • What's up Docker? Gets you notified when new versions of your Docker containers are available and lets you react the way you want.

  • Portainer is an open-source service that provides a visual web view for containerized applications. it is a container management tool for Docker, Docker swarm, Kubernetes, and Azure Container Instances (ACI).

  • Pi-Alert is a WIFI / LAN intruder detector.

  • qBittorrent qBittorrent is a cross-platform free and open-source BitTorrent client.

    • VueTorrent The sleekest looking WebUI for qBittorrent made with Vue.js!

Containers (Not Needed, yet)

  • ntfy A notification tool that sends notifications to your desktop or phone.
  • gollum A simple, Git-powered wiki for tracking changes and collaborating on documentation.
  • Zigbee2MQTT A bridge that allows you to control Zigbee devices using MQTT.
  • watchtower A tool for automatically updating Docker containers.
  • paperless-ngx A document management system for organizing and searching your digital documents.
  • audiobookshelf A platform for organizing and managing your audiobook collection.
  • drawio A Dockerized version of the popular diagramming tool, draw.io.
  • Eclipse Mosquitto™ An open-source MQTT broker that facilitates communication in IoT applications.
  • lazylibrarian A tool for managing and automating your ebook and audiobook downloads.
  • memos A simple, self-hosted note-taking platform.
  • monica A personal CRM to manage interactions with your loved ones.
  • traefik A modern reverse proxy and load balancer for microservices.
  • Homebridge facilitates the incorporation of smart home devices without native HomeKit support, utilizing a diverse selection of plugins.
  • pwndrop is a self-deployable file hosting service for sending out red teaming payloads or securely sharing your private files over HTTP and WebDAV.
  • Gitlab(Self-Hosted) is an open source code repository and collaborative software development platform for large DevOps and DevSecOps projects.

Cloud

  • runzero A comprehensive cyber asset management solution
  • Draw.io Cross-platform graph drawing software developed in HTML5 and JavaScript
  • it-tools A collection of IT-related tools accessible through a web interface.

VM/KVM | OS | LXC | NAS | FW

  • proxmox A virtualization management platform that supports containers and virtual machines.
  • LXC is an operating-system-level virtualization method for running multiple isolated Linux systems on a control host using a single Linux kernel
  • TrueNAS TrueNAS is an open-source storage solution that offers data protection, high availability, and various protocols for file sharing, block and object storage, along with snapshot and replication features, all managed through an intuitive web-based interface.
  • OPNsense is an open source, FreeBSD-based firewall and routing software.
  • pfSense is a firewall/router computer software distribution based on FreeBSD.
  • Home Assistant is free and open-source software for home automation designed to be a central control system for smart home devices with a focus on local control and privacy.

Microcontroller Projects

  • [NodeMCU V3 | DHT11]

    Temperature & Humidity sensor sends a post request to API call on the home server every 15 minutes, in turn the API sends a discord message & inserts to the postgresql DB (for grafana visualization).

  • [NodeMCU V3 | 0.96 inch OLED Display]

    OctoPrint Percentage Viewer - in this project the NodeMCU sends a get request to Octoprint and receives the perecentage data then view it on the screen.

  • [Motion Detection] TBD.

  • [Open Door Detection] TBD.

  • [Car Location Detection / Tracker] TBD.

Scripting

  • [Financial Management | Budget Dashboard | Android Frontend App <|> Windows/Linux Frontend App] A scheduled Python script that parses bank emails, on the home server, auto categorize the entries, inserts into Atlas MongoDB (for frontend apps usage) and local Postgresql DB (for metabase visualization) and sends the transaction to discord. The frontend apps have the ability to search and filter along with a second view for a summary.
  • [Speedtest] A scheduled Python script that measures the download/upload speeds in Mbps every 15 minutes; inserts the data into Postgresql (for grafana visualization) and sends the results on Discord.

Software Development |> Web | Mobile | Desktop

  • [Bookshop Inventory Management] Github

Automation | Data Science
Tools | Services

  • Ansible is a suite of software tools that enables infrastructure as code. It is open-source and the suite includes software provisioning, configuration management, and application deployment functionality.
  • Jenkins is an open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.
  • ActiveMQ is an open source message broker written in Java together with a full Java Message Service client. It provides "Enterprise Features" which in this case means fostering the communication from more than one client or server.
  • Kafka is a distributed event store and stream-processing platform. It is an open-source system developed by the Apache Software Foundation written in Java and Scala. The project aims to provide a unified, high-throughput, low-latency platform for handling real-time data feeds.
  • JMeter is an Apache project that can be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications.
  • Elastic Stack It's comprised of Elasticsearch, Kibana, Beats, and Logstash (also known as the ELK Stack) and more. Reliably and securely take data from any source, in any format, then search, analyze, and visualize.
  • Kubernetes Kubernetes is an open-source container orchestration system for automating software deployment, scaling, and management.
  • Superset is an open-source modern data exploration and visualization platform.
  • Metabase Metabase is an open source tool that allows for powerful data instrumentation, visualization, and querying.
  • Quarto An open-source scientific and technical publishing system
  • Airflow is an open-source workflow management platform for data engineering pipelines
  • Dash by Plotly is a python framework created by plotly for creating interactive web applications. Dash is written on the top of Flask, Plotly. js and React. js. With Dash, you don't have to learn HTML, CSS and Javascript in order to create interactive dashboards, you only need python.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment