Git & GitHub Guide

Git & GitHub Guide#


1 Installation & Initial Configuration#

1.1 Installation#

MacOS (Requires Homebrew)#

brew install git

Linux (Debian/Ubuntu)#

apt-get install git

Verify Version#

git --version

1.2 Global Configuration#

# Set Identity
git config --global user.name "Marc Ouellet"
git config --global user.email "marc.ouellet@gmail.com"

# Set Default Branch to match GitHub (main)
git config --global init.defaultBranch main

# Verify Settings
git config --global user.name
git config --global user.email

# Common Alias
git config --global alias.s "status"

2 The Collaborative Workflow#

To work simultaneously on the same project without overwriting each other, you should follow a specific cycle for every work session. This process ensures that everyone stays in sync while moving one step at a time.

Obsidian

1 Core Obsidian Shortcuts#

These are the most essential keys for building your homelab documentation rapidly.

Action Shortcut (Mac) Result
Quick Open Cmd + O Search for any note in your vault.
Insert Link Cmd + K Creates standard []( ) syntax.
Toggle Sidebar Cmd + S Hides/Shows the file explorer.
Search in Note Cmd + F Finds text within the current file.
Global Search Cmd + Shift + F Searches your entire vault.
Command Palette Cmd + P Access every feature (Templates, Plugins, etc).

Since we switched to Standard Markdown Links, use these to keep the “network” alive.

Pangolin Update

1. Pangolin Pre-Update Requirements#

Update Record — 2026-10-02#

  • Target: RackNerd RN-VPS (72.11.147.220), stack /home/marc/docker-compose/pangolin.
  • Used the successful pre-update backup on LXC 102: /home/vps-backup/Backups/2026-10-02_08h27_PangolinBackup.tar.gz; gzip integrity and database/configuration entries were verified.
  • Updated Pangolin 1.21.1 → 1.22.2 → 1.23.0 → 1.24.0. Each stage passed Compose readiness checks and dashboard HTTP 200; final migrations completed successfully.
  • Updated Gerbil to 1.5.2, Newt to 1.18.0, Traefik to v3.7.13, and pinned CrowdSec to v1.8.1. Rebuilt the custom GoAccess image from its existing inline Dockerfile with a fresh base image; verified GoAccess 1.12.
  • Updated Badger to v1.7.0 and the CrowdSec Traefik plugin to v1.7.1 in the active config/traefik/traefik.yaml. Automatic Badger migration skipped the nonstandard filename; the explicit update is present.
  • Retained docker-compose.yml.before-2026-10-02-update and config/traefik/traefik.yaml.before-2026-10-02-update on the VPS. Database rollback requires the pre-update backup, not just older images.
  • Verification limitation: Homelab site is online, but RN VPS site is offline. The local Newt connector repeatedly receives HTTP 400 No newt found with that newtId. Testing the original Newt 1.15.0 produced the same rejection; restored 1.18.0. Its registration requires investigation without exposing credentials. No site registrations or credentials were changed. Full routed-resource functionality has not been verified.
  • Follow-up resolved: after the user restarted using their 1p alias, Newt 1.18.0 logged Websocket connected at 12:45:09 UTC. Both RN VPS and Homelab sites were verified online and approved; all six stack containers were running, Pangolin and CrowdSec were healthy, and the dashboard returned HTTP 200. No credential values were inspected during this follow-up. Individual routed resources remain untested.

1.1. Backup Data#

Always backup your data before updating. Copy your config directory to a safe location to allow for a rollback if necessary.