Homelab Documentation

website·Indexed 30 days ago

https://boranuzun.github.io/homelab-docs/

Technical documentation for a reproducible, code-driven homelab project. Covers the deployment of NixOS on Proxmox, infrastructure management with OpenTofu, secret encryption using SOPS and age, CI/CD workflows, and the configuration of various containerized services including Traefik, Tailscale, Uptime Kuma, and Dozzle.

Tokens
18.4K
Snippets
84
Records
118
Agent score
71%

What's inside Homelab Docs

  1. Overview of the Homelab Infrastructure Stack

    The homelab environment is designed as a reproducible, code-driven infrastructure using a NixOS virtual machine hosted on a Proxmox hypervisor. The architecture implements Infrastructure as Code (IaC), GitOps, and DevSecOps principles to ensure the system is versioned, reproducible, maintainable, and secure.
  2. Overview of OpenTofu Infrastructure-as-Code tool

    OpenTofu is an open-source infrastructure-as-code (IaC) tool used to define and provision infrastructure via a declarative configuration language. It was created as a community-driven fork of Terraform following HashiCorp's transition from the MPL 2.0 license to the Business Source License (BSL). OpenTofu is designed to be a drop-in replacement for Terraform, maintaining the spirit of open collaboration and sustainability.
  3. Overview of NixOS declarative system management

    NixOS is a Linux distribution based on the Nix package manager that uses a purely functional and declarative approach to system configuration. Unlike imperative systems where packages are installed and files edited manually, NixOS defines the entire system state—including installed packages, system services, and user accounts—within a single configuration file: configuration.nix. This ensures reproducibility and allows the system to be treated as code (Infrastructure as Code).
  4. Overview of SOPS and age for secret encryption

    SOPS (Secrets OPerationS) is a tool developed by Mozilla for managing encrypted files, supporting structured formats like YAML, JSON, INI, ENV, and BINARY. It allows sensitive data (e.g., .env, .tfvars, .tfstate) to be version-controlled in Git while remaining encrypted. 'age' is a modern, secure encryption tool designed as a simpler, faster alternative to GPG. Using SOPS with age provides a script-friendly, low-configuration method for encrypting secrets without the complexity of PGP.
  5. Overview of the automated homelab architecture

    The homelab environment is designed as a reproducible, code-driven infrastructure using an 'Operating System as Code' approach. The core architecture consists of a NixOS-based virtual machine hosted on a Proxmox hypervisor, which serves as the platform for various containerized services.
  6. Overview of containers for homelab deployment

    Containers provide a lightweight method to run applications in isolated environments by packaging an application with all its dependencies. This ensures consistent behavior across different environments, making them ideal for deploying services in a homelab setup.
  7. Overview of Dozzle real-time log viewer

    Dozzle is a lightweight, real-time log viewer for Docker containers that provides a responsive web interface for monitoring and debugging applications. Key features include container filtering, search functionality, dark/light theme support, and the ability to download logs for analysis. By default, it does not require authentication and should be secured via a reverse proxy.
  8. Overview of OpenTofu as an Infrastructure-as-Code tool

    OpenTofu is an open-source infrastructure-as-code (IaC) tool used to define and provision infrastructure via a declarative configuration language. It was created as a community-driven fork of Terraform in response to HashiCorp's transition from the MPL 2.0 license to the Business Source License (BSL). OpenTofu is designed to be a drop-in replacement for Terraform, maintaining compatibility with Terraform v1.5 to allow users to transition without rewriting existing infrastructure code.
  9. Overview of Dozzle real-time log viewer

    Dozzle is a lightweight, real-time log viewer for Docker containers. It provides a responsive web interface for monitoring, filtering, and searching container logs without requiring command-line access. It supports both dark and light themes and does not include built-in authentication, meaning it should be secured via a reverse proxy if exposed.
  10. Overview of SOPS and age for secret encryption

    SOPS (Secrets OPerationS) is a tool for managing encrypted files (YAML, JSON, INI, ENV, and BINARY), allowing sensitive data like .env or .tfvars to be version-controlled in Git. It supports various encryption backends, including AWS KMS, GCP KMS, Azure Key Vault, PGP, and age. age is a modern, secure encryption tool designed as a simpler, faster alternative to GPG.
  11. Overview of using containers in a homelab

    Containers provide a lightweight method to run applications in isolated environments by packaging the application and its dependencies together. This ensures consistent behavior across different environments, making them ideal for deploying services in a homelab setup.
  12. Automate NixOS configuration deployment with CI/CD

    In this homelab project, CI/CD is implemented to automatically rebuild and deploy the NixOS configuration and containerized services whenever changes are pushed to the Git repository. This ensures a declarative and reproducible infrastructure where updates to configuration.nix are validated by a GitHub Actions pipeline and applied to the remote NixOS VM without requiring manual login.