My Nomad homelab
Go to file
2023-07-11 12:46:47 -07:00
acls Add nomad ACLs and roles for use in oidc auth 2023-07-07 00:30:02 -07:00
ansible_galaxy Refactor ansible to clean root dir 2022-11-02 14:20:09 -07:00
ansible_playbooks Add Nomad var example and remove old examples 2023-07-11 12:46:47 -07:00
core Use static port for Authelia so that nomad middleware config is the same for each service 2023-07-07 16:34:50 -07:00
databases Enable redis for authelia 2023-07-07 15:50:23 -07:00
services Use shorthand for ingress middlware for photoprism 2023-07-07 16:35:07 -07:00
storage_plugins Update hooks 2022-11-02 12:59:32 -07:00
.gitignore Ignore nomad variables file 2023-04-14 13:54:43 -07:00
.pre-commit-config.yaml Update hooks 2022-11-02 12:59:32 -07:00
.secrets-baseline Add Nomad var example and remove old examples 2023-07-11 12:46:47 -07:00
.terraform.lock.hcl Add nomad ACLs and roles for use in oidc auth 2023-07-07 00:30:02 -07:00
.tflint.hcl Update hooks 2022-11-02 12:59:32 -07:00
ansible.cfg Refactor ansible to clean root dir 2022-11-02 14:20:09 -07:00
core.tf Big refactor to split core and services for better ordering 2022-10-27 14:28:34 -07:00
Makefile Add Nomad var example and remove old examples 2023-07-11 12:46:47 -07:00
nomad_vars.py Add Nomad var example and remove old examples 2023-07-11 12:46:47 -07:00
providers.tf Remove whitespace 2023-07-07 15:56:25 -07:00
README.md Add basic readme 2023-07-11 17:32:50 +00:00
requirements.txt Update hooks 2022-11-02 12:59:32 -07:00
root.tf Add nomad ACLs and roles for use in oidc auth 2023-07-07 00:30:02 -07:00
service.nomad Use stunnel for mysql 2023-05-09 13:20:36 -07:00
services.tf A whole lot of incremental fixes for nomad variables and such 2023-03-24 16:32:37 -07:00
vars.tf Remove whitespace 2023-07-07 15:56:25 -07:00

Homelab Nomad

My configuration for creating my home Nomad cluster and deploying services to it.

Running

make all

Design

Both Ansible and Terraform are used as part of this configuration. All hosts must be reachable over SSH prior to running any of this configuration.

To begin, Ansible runs a playbook to setup the cluster. This includes installing Nomad, bootstrapping the cluster and ACLs, setting up NFS shares, creating Nomad Host Volumes, and setting up Wesher as a Wireguard mesh between hosts.

After this is complete, Ansible variables must be set for services to access and configure correctly. This depends on variables to be set based on the sample file.

Finally, the Terraform configuration can be applied setting up all services deployed on the cluster.

What does it do?

Step by step