https://github.com/ecshreve/slab
This project is a collection of configuration files and scripts for setting up my personal homelab / development environment.
https://github.com/ecshreve/slab
ansible docker homelab nomad terraform
Last synced: about 2 months ago
JSON representation
This project is a collection of configuration files and scripts for setting up my personal homelab / development environment.
- Host: GitHub
- URL: https://github.com/ecshreve/slab
- Owner: ecshreve
- Created: 2023-09-15T16:14:10.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-30T12:47:03.000Z (over 2 years ago)
- Last Synced: 2025-07-28T19:50:00.139Z (11 months ago)
- Topics: ansible, docker, homelab, nomad, terraform
- Language: HCL
- Homepage:
- Size: 1.76 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# slab
## Overview
Slab is a project encompassing a suite of configuration files and scripts designed to streamline the setup of my personal homelab and development environment.
The environment consists of:
- **My Machine**: MacBook Pro
- **srv-1**: A Lenovo mini PC running Proxmox, a private Docker registry, a Nomad cluster, and a reverse proxy.
- **Coderbox**: A Lenovo mini PC running Ubuntu and Coder for workspace provisioning based on this repo's templates.
- **Vault**: A Synology NAS1 running a local DNS server.
- **Knossus**: A Synology NAS2.
## Terraform
Terraform is used to manage the infrastructure of the project. The main components include:
- **Main.tf**: This file contains the primary configuration for the infrastructure.
- **Variables.tf**: This file defines the variables used in the main configuration.
- **Outputs.tf**: This file defines the outputs of the Terraform configuration.
## Ansible
Ansible is used for configuration management. The main components include:
## Playbooks
- **playbook.yml**: Sets up private Docker registry and cluster nodes.
- **populate-reg.yml**: Populates private Docker registry with images.
- **uptime.yml**: Configures Uptime-Kuma monitors.
## Galaxy Roles
- **[ecshreve.docker](https://galaxy.ansible.com/ecshreve/docker)**: Installs and configures Docker.
## Coder
Coder uses base images maintained in a public Docker repository. These images are based on Dockerfiles found in the Coder documentation and related projects.
### Base Image
- **coderall-tmpl**: This is the Coder template used for new workspaces. It's based on the `ecshreve/coderall:eric` image, which provides an Ubuntu 22.04 based workspace with various development tools and settings pre-configured.
