Skip to content

ohmlab ⚗️ ​

ohmlab is a GitOps kit to run a self-hosted platform on Kubernetes:

  • Ansible roles that provision a gateway and a k3s cluster
  • a bootstrap chart that installs a self-managed Argo CD, which then deploys everything else from git
  • a catalog of charts (identity, secrets, storage, observability, security, developer tools) that each instance enables and configures
  • a controller that seeds the secrets the apps need into Vault

A cluster's own configuration lives in an instance: which apps it runs, with which values, on which machines. An instance can sit in a clone of this repository or in a repository of its own; this-is-tobi/homelab is the reference deployment.

It is a quick starting point for simple infrastructure needs, or for testing tools such as monitoring, alerting, automated deployment and security scanning.

Quickstart ​

Make sure all prerequisites are met (check the installation section if needed).

Setup directory:

sh
# Clone the repository
git clone --depth 1 https://github.com/this-is-tobi/ohmlab.git && cd ./ohmlab && rm -rf ./.git && git init

# Copy inventory example to inventory
cp -R ./ansible/inventory-example ./ansible/inventory

Infrastructure ​

Setup inventory:

Install:

sh
# Deploy gateway and K3s cluster, fetch kubeconfig
./run.sh -p ./ansible/install.yml -u -k

Kubernetes Services (GitOps) ​

Setup configuration:

Install:

sh
# Set kubectl context
kubectl config use-context homelab

# Bootstrap (or upgrade) the mylab instance
./run.sh -b mylab

Optionally pass ARGOCD_ADMIN_PASSWORD=mypass before the command to set the ArgoCD admin password explicitly. Otherwise the chart auto-generates one and the script prints it at the end.