Add better intro to README
All checks were successful
Podman DDNS Image / build-and-push-ddns (push) Successful in 59s

This commit is contained in:
2025-11-21 13:43:23 -05:00
parent d7224b038b
commit 07a297f818

View File

@@ -1,13 +1,34 @@
# Homelab # 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 - "Active" projects (/active) are in use today and generally fall into these
Status](https://gitea.reeseapps.com/services/homelab/actions/workflows/distoolbox.yaml/badge.svg?branch=main) 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 ## Table of Contents
@@ -18,6 +39,7 @@ Status](https://gitea.reeseapps.com/services/homelab/actions/workflows/distoolbo
- [inputrc](#inputrc) - [inputrc](#inputrc)
- ["find ." shortcuts](#find--shortcuts) - ["find ." shortcuts](#find--shortcuts)
- [tmux](#tmux) - [tmux](#tmux)
- [bash](#bash)
- [SSH Setup](#ssh-setup) - [SSH Setup](#ssh-setup)
- [Git GPG Commit Signing](#git-gpg-commit-signing) - [Git GPG Commit Signing](#git-gpg-commit-signing)
- [Important Dates and Times](#important-dates-and-times) - [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 - Even Vertical Distribution: ctrl + b + alt + 2
- Swap pane order: ctrl + b + : -> swap-pane -t 0 - Swap pane order: ctrl + b + : -> swap-pane -t 0
### bash
<https://tecadmin.net/bash-special-variables/>
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 ## SSH Setup
Generate a key (password protect it!) Generate a key (password protect it!)
@@ -176,12 +232,10 @@ All projects will be prefixed with one of the following categories:
- `device_` - `device_`
- `os_` - `os_`
- `cloud_` - `software_`
- `systemd_`
- `podman_` - `podman_`
- `docker_` - `docker_`
- `kubernetes_` - `kubernetes_`
- `software_`
Note, some projects will be named with just the prefix. These are projects for Note, some projects will be named with just the prefix. These are projects for
configuring the underlying technology. The `podman` project, for example, will 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 be prefixed with `aws_` and azure would be `azure_`. This should make them more
searchable. searchable.
`systemd_` projects are designed to be installed with ansible and run via `software_` projects record configuration for common software agnostic to
systemd on a linux VM or other linux hardware. operating system or linux flavor.
`podman_` projects are either designed to be run as quadlets or as podman `podman_` projects are either designed to be run as quadlets or as podman
containers outright. 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 `kubernetes_` projects are helm, kustomize, kubectl, or some other kubernetes
compliant deployment. 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 ## Active Project Requirements
- [ ] Installation is documented - [ ] Installation is documented