Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .fluxschema.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: schema.plugin.fluxcd.io/v1beta1
kind: Config
validate:
schemaLocation:
- default
- ecosystem
- https://raw.githubusercontent.com/datreeio/CRDs-catalog/main
failFast: true
skipMissingSchemas: false
skipFile:
- '.*'
verbose: true
output: text
11 changes: 11 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## What

<!-- What does this PR do? -->

## Why

<!-- Why is this change needed? -->

## Checklist

- [ ] `mise run check` passes
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ venv/
.retry/
.ansible/
ansible.log
machines/collections/

# Local overrides/secrets
.certs/
*.local.yml
*.local.yaml
*.local
Expand All @@ -43,6 +45,7 @@ id_rsa
id_rsa.pub
id_ed25519
id_ed25519.pub
*.agekey
*_rsa
*_rsa.pub
*_ed25519
Expand Down
8 changes: 8 additions & 0 deletions .shellcheckrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# All repository scripts use Bash.
shell=bash

# Follow sourced files when scripts add them later.
external-sources=true

# Keep variable references explicit and catch uninitialized environment assumptions.
enable=check-unassigned-uppercase
4 changes: 4 additions & 0 deletions .sops.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
creation_rules:
- path_regex: (^|/)secrets(\.ya?ml|/)
encrypted_regex: "^(data|stringData)$"
age: age1hvn6a2qlvc2wzzax29psfxxuwrc58xv0226ysuphpr3dnhr5k4ysmwv087
35 changes: 35 additions & 0 deletions .yamllint
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
extends: default

ignore:
- "*/flux-system/*"
- "**/secrets.yaml"

rules:
# Ansible allows yes/no; Kubernetes prefers true/false
truthy:
allowed-values: ['true', 'false', 'yes', 'no']

# Both ecosystems use 120
line-length:
max: 120
allow-non-breakable-words: true
allow-non-breakable-inline-mappings: true

# Ansible files don't always need ---
document-start: disable

indentation:
spaces: 2
indent-sequences: true

comments:
require-starting-space: true
comments-indentation: enable

trailing-spaces: enable

empty-lines:
max: 2
max-start: 0
max-end: 0
29 changes: 25 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,29 @@
# Overview
# Homelab

A playground for experiments, new tools, and whatever I feel like deploying—all in the name of learning.
A personal homelab for learning, experimenting, and enjoying my passion for
tech outside of work.

## Architecture

## License
### Hardware

This project is licensed under the [MIT LICENSE](LICENSE).
| Component | Details |
|---|---|
| Host | ASUS ROG G700TF desktop server |
| Operating system | Ubuntu Linux |
| CPU | Intel Core Ultra 5 225F |
| Memory | 16 GB |
| Storage | 1 TB NVMe |
| GPU | NVIDIA GeForce RTX 5060 with 8 GB VRAM |
| Workstation | macOS system used for administration and development |

### Software

| Component | Responsibility |
|---|---|
| Linux server | Compute, local storage, and cluster host |
| K3s | Container orchestration |
| Flux | Keeps the cluster in sync with Git |
| Ansible | Machine provisioning and configuration |
| GPU runtime | Runs GPU-enabled workloads and AI experiments |
| SOPS and age | Keeps secrets encrypted |
43 changes: 0 additions & 43 deletions Taskfile.yml

This file was deleted.

6 changes: 0 additions & 6 deletions bootstrap/ansible/ansible.cfg

This file was deleted.

11 changes: 0 additions & 11 deletions bootstrap/ansible/inventory/homelab.yml

This file was deleted.

6 changes: 0 additions & 6 deletions bootstrap/ansible/playbooks/k3s.yml

This file was deleted.

6 changes: 0 additions & 6 deletions bootstrap/ansible/playbooks/prep.yml

This file was deleted.

3 changes: 0 additions & 3 deletions bootstrap/ansible/playbooks/site.yml

This file was deleted.

15 changes: 0 additions & 15 deletions bootstrap/ansible/roles/base/defaults/main.yml

This file was deleted.

63 changes: 0 additions & 63 deletions bootstrap/ansible/roles/base/tasks/main.yml

This file was deleted.

16 changes: 0 additions & 16 deletions bootstrap/ansible/roles/k3s_server/defaults/main.yml

This file was deleted.

72 changes: 0 additions & 72 deletions bootstrap/ansible/roles/k3s_server/tasks/main.yml

This file was deleted.

9 changes: 0 additions & 9 deletions bootstrap/ansible/roles/k3s_server/templates/config.yaml.j2

This file was deleted.

Loading