Homelab

A project to store homelab stuff.

Just here for the Arch distoolbox?

Arch Distoolbox

Arch Toolbox Status

Table of Contents

Fun Facts

On linux, ctrl+shift+u, then, while holding ctrl+shift, typing b+0 will type a ° (degree) symbol. Also you can enter any unicode symbol this way.

Important Dates and Times

  • Machine updates happen at 4am on on Saturday
  • VM updates happen at 5am on Saturday
  • Backups happen at 6am every day

Project Lifecycle

Projects will fall into one of the three following categories:

  1. Incubating
  2. Graduated
  3. Retired

Incubating projects are experimental or prototypal. They're being actively developed and aren't ready for production deployment. These projects may appear and disappear without warning and are not stable. There is no minimum requirement for a project to be in incubation.

Graduated projects are in-use, stable, and production ready. They met the graduation requirements and are actively maintained.

Retired projects are no longer in use or recommended. They are kept for reference. Retired projects must meet the retirement requirements

Supported Projects

All projects will fall into one of the following categories:

  • hardware
  • infrastructure
  • cloud
  • systemd
  • podman
  • docker
  • kubernetes

Hardware will contain projects that relate to specific machines or equipment. 3D printers, Raspberry Pis, and other IOT devices qualify as specialized hardware that needs documentation and configuration. This is not limited to computer equipment. The furnace is an important part of the home lab. the Air Conditioner is integral to the homelab's function. These projects will also be documented.

Infrastructure will contain projects that set up the environments for the remaining listed project types. For example, infrastructure will contain "how to set up a linux box with docker" or "how to set up a k3s cluster for kubernetes".

Cloud projects are for specific cloud providers.

Systemd projects are designed to be installed with ansible and run via systemd on a linux VM or other linux hardware.

Podman projects are either designed to be run as quadlets or as podman containers outright.

Docker projects are either docker-compose or some form of docker run command.

Kubernetes projects are helm, kustomize, kubectl, or some other kubernetes compliant deployment.

Graduation Requirements

  • Installation is documented
  • Installation configuration examples are provided
  • Hardening guidelines are documented
  • Upgrade procedures are documented
  • Maintenance procedures are documented
  • Uninstall procedures are documented
  • Backup and restore procedures are documented and tested

Retirement Requirements

  • A reason for retirement is documented
  • If applicable, a replacement has been identified and documented
  • If applicable, backup data locations are documented

Order of Operations

  1. Install cloud projects. These usually have no dependencies and typically provide critical services to other projects (DNS, email notifications, etc.)
  2. Install infrastructure projects. Usually these only have dependencies on cloud services.
  3. Install systemd services. These are usually low-level programs that require a dedicated machine and perform semi-critical functions (ipv4 proxy, ddns, etc.).
  4. Install kubernetes, docker, podman, and other services.
Description
No description provided
Readme 31 MiB
Languages
Python 61.6%
Shell 18.8%
Dockerfile 13.1%
Jinja 5.1%
DIGITAL Command Language 1.4%