2026-03-23 08:01:38 +00:00
2026-03-23 04:29:25 +00:00
2026-03-23 04:29:25 +00:00
2026-03-23 06:34:13 +00:00
2026-03-23 04:29:25 +00:00
2026-03-23 06:34:13 +00:00
2026-03-23 05:59:53 +00:00
2026-03-23 05:59:53 +00:00
2026-03-23 04:29:25 +00:00
2026-03-23 16:06:42 +13:00

homelab-infra

GitOps-managed infrastructure for homelab services using Docker Compose and Traefik for routing.

Overview

This repository manages a homelab setup with multiple self-hosted services. It uses GitOps principles where infrastructure as code is version-controlled, and documentation is automatically generated from configuration files using MkDocs.

Key Features

  • GitOps Workflow: All infrastructure configurations are stored in Git
  • Automated Documentation: MkDocs site built from actual config files
  • Service Management: Makefile for easy service control
  • Environment Sync: Pre-commit hooks ensure .env files stay in sync
  • Backup Integration: Restic-based backups for data protection

Services

Currently includes: Gitea (Git hosting), Nextcloud (cloud storage), Devbox (development container), Obsidian LiveSync (CouchDB), Traefik (reverse proxy), and Whoami (test service).

Getting Started

  1. Clone the repo
  2. Copy environment templates: make init-env
  3. Edit .env files with your secrets
  4. Create Docker networks: docker network create web
  5. Start services: make up

Documentation

Full documentation is available at the MkDocs site or build locally with make docs.

Directory Structure

homelab-infra/
├── Makefile              # Service management commands
├── backup.sh             # Restic backup script
├── docs/                 # MkDocs documentation source
├── mkdocs.yml            # MkDocs configuration
├── scripts/              # Utility scripts
└── [service]/            # Per-service configurations
    ├── docker-compose.yml
    ├── .env.example
    └── README.md
Description
No description provided
https://docs.sjhl.nz
Readme 96 KiB
Languages
Python 82.4%
Makefile 14.5%
Shell 3.1%