fix: updated GitHub Actions workflow

This commit is contained in:
2026-01-20 19:37:51 -05:00
parent 47eda7d60b
commit 2afdf0ee14

View File

@@ -16,25 +16,23 @@ jobs:
- name: Update README
run: |
# 1. Get the number
LOC=$(grep '"total_code"' public/code-stats.json | sed 's/[^0-9]*//g')
FORMATTED_LOC=$(printf "%'d" $LOC)
echo "Hard-coding $FORMATTED_LOC into the template..."
# 2. Re-write the file
cat <<EOF > README.md
# 🛡 Patrick Beane
**SRE | Security Engineer | Self-Hosted Infra & Detection**
I design and operate **security-first, self-hosted infrastructure** focused on detection, resilience, and sovereignty.
My lab functions as a live production environment where threat intelligence, automation, and reliability engineering intersect.
I design and operate **security-first, self-hosted infrastructure** focused on detection, resilience, and sovereignty.
---
## 🛰 The Fleet (10 Nodes)
> This environment blends production, research, and continuous experimentation.
> Availability and controls are intentionally tuned per node role.
| Node | Role | Specs | Status |
| :--- | :--- | :--- | :--- |
| **Argus** | SIEM / Brain / node-health Failover | Xeon E5-2660v2 (1 core) | 🟢 Online |
@@ -62,10 +60,9 @@ My lab functions as a live production environment where threat intelligence, aut
## 🛡 Detection & Response Lifecycle
- **Triage:** Telemetry ingested from 7 active nodes into the Argus engine.
- **Escalation:** Post-exploitation indicators (e.g. webshells) trigger immediate `PERM_BAN`.
- **Retention:**
- 24 hours for lower confidence scenarios
- 14 days for high-confidence IOCs
- **Escalation:** Post-exploitation indicators (e.g. webshells) trigger immediate \`PERM_BAN\`.
- **Retention:** - 24 hours for lower confidence scenarios
- 14 days for high-confidence IOCs
- 30 days for offender watchlist
- **Notification:** High-severity events dynamically pushed to Discord.
@@ -73,9 +70,9 @@ My lab functions as a live production environment where threat intelligence, aut
## 🛠 The Arsenal
**Languages:** Python (Flask, Gunicorn), Bash, JavaScript (React, Node.js)
**Infrastructure:** Kubernetes (K8s), Docker, Caddy, NGINX
**Security:** Argus (Custom SIEM), CrowdSec, Trivy, SQLite, Vaultwarden
**Languages:** Python (Flask, Gunicorn), Bash, JavaScript (React, Node.js)
**Infrastructure:** Kubernetes (K8s), Docker, Caddy, NGINX
**Security:** Argus (Custom SIEM), CrowdSec, Trivy, SQLite, Vaultwarden
**Observability:** Prometheus, Blackbox Exporter, Node Exporter
**Backups:** Borgmatic, Rsync.net (Encrypted Offsite)
@@ -87,15 +84,14 @@ Actively used across this environment or in adjacent projects:
- **Security & Identity:** Fail2Ban, MITRE ATT&CK mapping, OIDC, Authelia, MFA, TLS hardening
- **Infrastructure & Cloud:** Linux (Debian/Ubuntu), Terraform, AWS, GCP, Oracle Cloud, Vultr
- **CI / Ops:** Git, GitHub Actions, container image scanning
- **Observability (Extended):** Grafana, Netdata
- **CI / Ops:** Git, GitHub Actions, container image scanning
- **Observability (Extended):** Grafana, Netdata
---
## ⚡ Efficiency Metrics
- **Codebase Growth:** `$FORMATTED_LOC` lines of custom code across all our repositories
- **Codebase Growth:** \`$FORMATTED_LOC\` lines of custom code across all our repositories
- **Ares:** Ryzen 9 9950X sustaining ~0.06 load avg while running Gitea and a Kubernetes control plane
- **Resilience:** Automated failover between AWS and peer nodes
@@ -108,7 +104,7 @@ Actively used across this environment or in adjacent projects:
- **Access Control:** Authelia where exposed
- **Management:** Portainer (loopback-bound where possible)
> Nodes are intentionally heterogeneous.
> Nodes are intentionally heterogeneous.
> Each host is scoped to its role to reduce blast radius and cognitive load.
---
@@ -126,12 +122,12 @@ Optimized for sustained workloads and observability aggregation.
---
### 🔗 Live Projects
- **Threat Decisions & Telemetry:** `threats.beane.me`
- **Threat Intelligence & Analytics:** `intel.beane.me`
- **Vulnerability Scanning (Trivy):** `vuln.beane.me`
- **Backups & Restore Verification:** `backups.beane.me`
- **Threat Decision Observability:** `observe.beane.me`
- **Source Control (Gitea + K8s):** `git.beane.me`
- **Threat Decisions & Telemetry:** \`threats.beane.me\`
- **Threat Intelligence & Analytics:** \`intel.beane.me\`
- **Vulnerability Scanning (Trivy):** \`vuln.beane.me\`
- **Backups & Restore Verification:** \`backups.beane.me\`
- **Threat Decision Observability:** \`observe.beane.me\`
- **Source Control (Gitea + K8s):** \`git.beane.me\`
---