From 07a297f8186bcf775efdbf807bd16a4108d61a2c Mon Sep 17 00:00:00 2001 From: ducoterra Date: Fri, 21 Nov 2025 13:43:23 -0500 Subject: [PATCH] Add better intro to README --- README.md | 83 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 64 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 5470593..f2ca4d8 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,34 @@ # Homelab -A project to store homelab stuff. +Welcome to my homelab! -Just here for the Arch distoolbox? +This repo is an in-flux collection of my personal notes, docs, and tutorials of +things I find interesting and self-host. -[Arch Distoolbox](active/software_distoolbox/distoolbox.md) +Take a look around! -![Arch Toolbox -Status](https://gitea.reeseapps.com/services/homelab/actions/workflows/distoolbox.yaml/badge.svg?branch=main) +- "Active" projects (/active) are in use today and generally fall into these + categories: + - `aws_` is for aws notes + - `device_` is for hardware + - `kubernetes_` is for helm charts or other kubernetes hosted software + - `os_` is for operating system setup guides and notes + - `podman_` is for containerized projects + - `software_` is for cli tools, projects without a specific way to host them, + or other misfits + +All active projects will have a markdown file named after the project. This is +for quick access via shortcuts like `ctrl + p` in vscode. For example, I want +to check my notes for `virsh` so I would type `ctrl + p` "virsh" to open +"virsh.md". + +"Retired" projects (/retired) is a graveyard of things I didn't want to delete. + +"Template" projects (/templates) are quick templates for creating new active +projects with sane defaults. + +I keep my GPG and SSH keys in `keys` if you want to add those to your keyring +or give me access to your servers. ## Table of Contents @@ -18,6 +39,7 @@ Status](https://gitea.reeseapps.com/services/homelab/actions/workflows/distoolbo - [inputrc](#inputrc) - ["find ." shortcuts](#find--shortcuts) - [tmux](#tmux) + - [bash](#bash) - [SSH Setup](#ssh-setup) - [Git GPG Commit Signing](#git-gpg-commit-signing) - [Important Dates and Times](#important-dates-and-times) @@ -62,6 +84,40 @@ find . -type d -exec chmod 755 {} \; - Even Vertical Distribution: ctrl + b + alt + 2 - Swap pane order: ctrl + b + : -> swap-pane -t 0 +### bash + + + +Here are some handy references for default bash variables + +```text +$0 – The name of the script being executed. +$1-$9 – The first nine command-line arguments. +$# – The number of command-line arguments. +$* – All command-line arguments as a single string. +$@ – All command-line arguments as an array. +$? – The exit status of the last executed command. +$$ – The process ID of the current shell. +$! – The process ID of the last background command. +$- – Shows the current shell options or flags. +``` + +And here are the meanings of the shell options + +```text +h – Remember the location of commands as they are looked up +i – Interactive shell +m – Job control is enabled +B – Brace expansion is enabled +H – History substitution is enabled +``` + +So to check if you are in an interactive shell: + +```bash +[ $- == *i* ]] && Some command here +``` + ## SSH Setup Generate a key (password protect it!) @@ -176,12 +232,10 @@ All projects will be prefixed with one of the following categories: - `device_` - `os_` -- `cloud_` -- `systemd_` +- `software_` - `podman_` - `docker_` - `kubernetes_` -- `software_` Note, some projects will be named with just the prefix. These are projects for configuring the underlying technology. The `podman` project, for example, will @@ -203,24 +257,15 @@ be prefixed with the cloud's name, not the word "cloud". So AWS services will be prefixed with `aws_` and azure would be `azure_`. This should make them more searchable. -`systemd_` projects are designed to be installed with ansible and run via -systemd on a linux VM or other linux hardware. +`software_` projects record configuration for common software agnostic to +operating system or linux flavor. `podman_` projects are either designed to be run as quadlets or as podman containers outright. -`docker_` projects are either docker-compose or some form of docker run -command. - `kubernetes_` projects are helm, kustomize, kubectl, or some other kubernetes compliant deployment. -`software_` projects record configuration for common software agnostic to -operating system or linux flavor. - -`security_` projects record security best practices and might reference other -projects, but are usually just best practices and how-tos. - ## Active Project Requirements - [ ] Installation is documented