You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Karan Sharma b5a5cd3678 feat: init 2 years ago
digitalocean-infra feat: init 2 years ago
nginx feat: init 2 years ago
pi feat: init 2 years ago
wireguard feat: init 2 years ago
.gitignore feat: init 2 years ago
LICENSE feat: init 2 years ago feat: init 2 years ago


Setup scripts for my home server setup named "Hydra"


I run a Kubernetes cluster using k3s on Raspberry Pi4 (2x nodes). I've prepared an Ansible Playbook to prepare the base OS (Raspbian Buster Lite), configure some sane defaults and create a k3s cluster.

Getting Started

If you're interested in bootstrapping a RPi cluster with k3s, you can refer to the following instructions to use the Ansible playbook.


  • You need to flash Raspbian OS image on your RPi.
  • You need to enable SSH access, which can be done by sudo touch /boot/ssh.

Running the playbook

  • Copy the inventory.sample to inventory and replace the hosts with your RPi nodes.
  • Replace the pi/roles/raspbian/vars/secret.sample with your own secrets in pi/roles/raspbian/vars/secret.yml. I generally prefer to use Ansible Vault to encrypt the secrets.
  • Run the playbook using ansible-playbook pi/setup.yml. This will configure your RPi for:
    • Changing the default password for pi.
    • Disabling Password based SSH access.
    • Configure hostname on all RPi nodes.
    • Enable cgroups features.
    • Update the GPU memory to lowest possible (16M) since we are going to use this as a server.
    • Bootstrap a k3s cluster on the control-plane node and join a agent node with the control-plane node.


I referred to the following resources while creating the Playbook

Services Hosted

List of services I am running on Hydra.