This note is a Nexus-style note. It has other names like _index_ or _Map of Content (MOC)_ but I like _Nexus_
[[Nexus - DevOps]]
# Homelab
The purpose of these projects is to establish and maintain a [[Homelab]] with the ideal future state being "enterprise grade and highly available".
This page is my nexus to the world of homelab!
## Index of Current Homelab projects
For the backlog of tasks that exist for Homelab, please go [[Nexus - Homelab#Backlog|here]]
| Project name | Project Theme | Status | Date Started | Date Completed | Sprints in Project |
| ------------------------------------------------------------------- | ------------------------------------------------ | ----------- | ------------ | -------------- | --------------------------------------------------------------------- |
| [[Homelab - Labtop\|labtop: init]] | Starting a homelab | Done | Not Tracked | 17-FEB-2025 | N/A |
| [[Homelab - Labtop v0.02 - Homelab GitOps & Config Management\|Labtop v0.02]] | Emphasizing config management and system control | In Progress | 19-FEB-2025 | | [[Homelab - Labtop v0.02 - Homelab GitOps & Config Management#Sprint 01\|01]], |
| | | | | | |
## Goals for Homelab
The primary goal of the lab environment is to enable a learning platform about all different facets of advanced enterprise computing. I will structure projects for the homelab around learning to become a DevOps engineer and to enjoy self-hosting as a hobby.
## Documentation Overview
I am a beginner when it comes to doing anything _as Code_. I am also a beginning blogger. I do have some experience working in Agile teams, but only in the context of Data and Knowledge Management.
I have not had any professional experience in working on GitOps. Since I would also like to start practicing for a role on a DevOps team, I will do my best to document the Infrastructure as Code in GitHub following GitOps best practices, and also keep a project journal on crafted in Obsidian and published using Hugo.
### LLM as guide
I make use of LLM applications like ChatGPT to help me get project ideas and how to word things more clearly. I will not, however just copy and paste output and write them here as my words. This would be antithetical to my purpose; ==learning DevOps engineering==.
I will comment in code where an LLM provided assistance, I will always reference a user or source if borrowed from anywhere (like from stack overflow).
### Organization of notes
My notes are organized into three tiers: Nexus, Topics, and Evergreen
- Nexus notes are most closely related to Maps of Content, though they are more verbose.
- Topic notes are collections of related ideas in a given context. Like notes from a specific class. Topic notes can also be called project notes
- Evergreen notes represent a single idea and attempt to show how that idea is linked to other ideas. These often are notes the explain an idea in terms of its definition. The idea is that I can build networks of ideas together and and thus interact with the mass of knowledge in powerful ways.
Evergreen notes are not meant to be organized into a taxonomy. Evergreen notes are taxonomized using tags not folders. I actually enjoy seeing the emergence of ideas come from linking together notes. The levels of Nexus and Topics are more for ease of navigation than anything else.
#### Spaced Repetition
I also make use of spaced repetition reviews on my evergreen notes. I use the spaced repetition for obsidian community plugin.
---
## Backlog
Backlog grooming occurs each week on Thursdays.
### Labtop Project Backlog:
==needs to be rescoped with initiatives==
>[! question] Research Questions
>- Should each entry be listed as a user story? should they just be tasks? can they be either
>- What the hell is a:
> - DevPod vs DevContainer
> - Container vs Pod
>- Research environment separation (DEV, Test, Stage, Prod)
> - can i substitute containers for these?
>- Obsidian
> - Consider Obsidian migration to server for storage?
> - Can I self-host Obsidian Sync?
>- Find a home for the Labtop.
>- Research how to work with R and RStudio via server.
>[!documentation]
>- The [[Nexus - Homelab]] page needs revision
>- Github profile needs attention
>- Make an Obsidian template for Projects, Sprints
>[! Warning] Security
>- SSHKey refactor using Yubikey to authenticate.
>- Investigate SSHKey managemnet and how to represent it as code, or adopt IAM procedures if I willl have multiple users accessing the server.
> - For GitHub, SSH can be config'd to allow agent forwarding from laptop to server to GH.
>[! danger] Networking
>- PiHole
>- Unbound
>- Firewall
>[! info] Infrastructure
> - Terminal and Prompt mods to IaC
> - Docker
> - DevContainer
> - Configure a devcontainer for work in linux
> - PostgreSQL
> - Grafana
> - CI/CD Solution
> - Cloudflare Zero Trust
>[! Apps] Installed End User Applications
>- [ ] Neofetch
> - [ ] What is: `terminal: /dev/pts/0` ?, In RE to the terminal line on `neofetch`
> - [ ] Investigate neofetch replacement.
> - [ ] Investigate why `neofetch` is displaying inaccurate details about the hardware.
> - [ ] Alternatives?
>
>- [ ] Learn and deploy [Home Page](https://github.com/gethomepage/homepage)
>
### Allsky project backlog
In regard to the homelab, How do I get both things to work together rather than having two separate things.
>[! question] Research Questions
>- [ ] Home Assistant "migration" from... Do I need to migrate it?
> - I have HA running on a PI that serves the Allsky project. Can I get the Pi "to send" data to the instance of HA on the server ==when it is available== ? (I take the rpi offsite and make use of HA on whatever extra host netowork I am on)
> - HA is running from a docker container on the Pi.
Currently, Allsky is up but is on its own hardware and has no write up from me. (booo) I will look to redeploy in the homelab when time permits.