Commit graph

963 commits

Author SHA1 Message Date
dbcf51993d ops: add HashiCorp Vault for secrets management
Replaces .env files across all KiteStacks apps. Vault runs as a Docker
container bound to 127.0.0.1:8200 with file storage backend.

- apps/vault/: compose file + vault.hcl config (TLS disabled, localhost only)
- scripts/vault-env.sh: fetches secret from Vault KV and injects as env
  vars before running docker compose (drops the .env pattern entirely)
- scripts/vault-init.sh: one-time init — GPG-encrypts unseal keys to
  ~/.vault-keys.gpg, creates kitestacks policy + limited app token
- scripts/vault-unseal.sh: post-restart unseal via GPG-decrypted key
- docs/vault-setup.md: full setup guide including secret migration steps

Usage: vault-env.sh kitestacks/authentik -- docker compose up -d

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 03:01:12 -05:00
5b3698191e ops: add nightly Docker volume backup to SAMURAI
- scripts/backup-volumes.sh: tar each named volume via alpine, rsync to
  SAMURAI (Tailscale 100.74.x.x) at 02:00; 7-day retention; preflight
  checks Tailscale + SSH before starting
- scripts/setup-samurai-ssh.sh: one-time SSH key install to SAMURAI
- scripts/monk-backup.{service,timer}: systemd units for nightly schedule
- docs/backup-setup.md: full setup instructions incl. Windows OpenSSH
  config and admin authorized_keys fix

Phase 2 (MinIO S3 on SAMURAI) tracked as TODO in backup-volumes.sh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 02:59:14 -05:00
4c28ed131a docs: redact remaining sensitive data and fix stale service counts
- linux.md: redact sudo password from grep example
- networking.md: update nine→eleven service count in summary
- 01-what-you-need.md: redact real VPS IP from example

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 01:14:41 -05:00
39a1541270 docs: remove personal A+ cert info from homelab docs
Strip all CompTIA A+ references, exam dates, and deadlines from the
project-facing documentation. Certifications roadmap now starts at CCNA,
learning path phases renumbered, interview prep updated accordingly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 01:12:16 -05:00
1e8319ee75 docs: comprehensive homelab-mastery rewrite with full build guides
Complete documentation suite for KiteStacks covering all 11 services across
2-host active-active architecture. Includes beginner track (with AI, 8 files)
and advanced track (without AI, 7 files) with time estimates, real troubleshooting
cases, and command-by-command explanations. Updates certifications roadmap to
reflect July 7 2026 A+ Core 2 exam goal.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 01:08:43 -05:00
e3cfa80d98 chore: clean up cloudflared token handling and add pending files
- Remove hardcoded TUNNEL_TOKEN from cloudflared docker-compose.yml
  (now reads from .env via ${TUNNEL_TOKEN:?...})
- Delete backup file that contained raw token
- Add .env.example template for cloudflared
- Add scripts/rollout-cloudflared-token.sh for token rotation
- Add apps/kitestacks-portal/public/flux/index.html (FluxCD status page)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 00:34:48 -05:00
0d3fc4051c merge: add homelab-mastery as subdir
Moved homelab-mastery repo content into homelab-mastery/ subdirectory.
Covers architecture, concepts, certifications, interview-prep, and learning-path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 00:33:54 -05:00
fb822d5142 Reorganize repos into kitestacks-homelab + plain-English doc rewrite
- Rewrote RUNBOOK.md and DEBUG-DOCUMENTATION.md in simple 5th-grade language
  with real-world analogies for every technical concept
- Updated README.md with current service inventory and folder map
- Added cloud-migration/ subdirectory (from kitestacks-cloud-migration repo)
- Added autosync/ subdirectory (from kitestacks-homelab-autosync-test repo)
- Added osticket/ subdirectory (from OSTicketSystem repo)
- Added cloud/ placeholder for future cloud configs
- Excluded binary DB/postgres files from autosync subdirectory

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 18:37:58 -05:00
f79478158d Update DEBUG-DOCUMENTATION with BookStack SSO and kscloud1 SSH incidents 2026-06-18 21:08:10 +00:00
4dc535905a Update RUNBOOK with BookStack OIDC fix and kscloud1 SSH recovery 2026-06-18 21:08:03 +00:00
e69f236c89 docs: document phantom 3rd tunnel replica fix + update runbook for 2-connector arch
- DEBUGGING.md: add issue #9 — native cloudflared systemd running alongside Docker
  container causes phantom 3rd replica in CF dashboard; fix is to disable systemd service
- RUNBOOK.md: correct architecture diagram from 3 connectors to 2 (monk Docker + kscloud1);
  add warning to disable native cloudflared systemd after containerizing; update failover
  test procedure with verified 2026-06-16 results (zero downtime confirmed)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 21:35:23 -05:00
d439a1bb46 docs: document ntfy 502 error and multi-node tunnel requirements 2026-06-15 15:51:06 -05:00
c4c6b49bf4 docs: clean up runbook and create dedicated debugging guide 2026-06-15 15:23:44 -05:00
bdec86b16f fix: downgrade kustomize apiVersion to v1beta1 2026-06-15 13:04:59 -05:00
ce67f391f5 fix: use tailscale SSH URL for GitRepository 2026-06-15 12:59:20 -05:00
bddfb8179d docs: update runbook with k3s/flux install and bootstrap steps 2026-06-15 12:45:23 -05:00
4545b5c5e0 chore: rename assassin cluster to T14s and add kavita gitops manifests 2026-06-15 11:56:59 -05:00
24be0b06c8 phase 8: forgejo sync config, authentik-ldap SSO service, runbook update 2026-06-15 08:54:08 -05:00
bd76c9f448 v1.4.0: OSticket replaces OpenProject, Portainer SSO live, auth code TTL fix
- OpenProject → OSticket (campbellsoftwaresolutions/osticket + MariaDB + nginx:8080 proxy)
- Portainer SSO configured via API on both monk and kscloud1, portal card live
- OAuth2 access_code_validity 1min → 10min (fixes reconnect race condition)
- Karakeep redirect_uri re-fixed to /api/auth/callback/custom
- RUNBOOK Phase 3, 5.8, 5.11, 6.1, portal panels all updated
- CHANGELOG v1.4.0 added
2026-06-12 13:42:20 -05:00
KiteStacks AutoSync
4b8925ca7e security: complete IP, port, and password redaction across all docs
Redact all remaining IPv4 addresses, port numbers, and credential values
from RUNBOOK.md, AUTHENTIK.md, and authentik-sso-setup.md. Replace with
descriptive placeholders (<IP_REDACTED>, <port>, <REDACTED>, etc.).
Docker image version tags (postgres:16, forgejo:11, etc.) preserved.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 16:16:23 -05:00
KiteStacks AutoSync
e409b461d8 security: redact all IPs, ports, and passwords from docs
Replace all production IPs (public, LAN, Tailscale), host port bindings,
and hardcoded passwords/secrets across RUNBOOK.md, docs/, and projects/
with descriptive placeholders (<KSCLOUD1_PUBLIC_IP>, <port>,
<KSCLOUD1_SUDO_PASSWORD>, etc.) so no sensitive infrastructure details
are committed to the repository.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 16:05:53 -05:00
c231bcce70 Update RUNBOOK.md 2026-06-11 20:56:03 +00:00
KiteStacks AutoSync
24458bd5d1 docs: rewrite RUNBOOK.md as complete start-to-finish setup guide
Replaces the stub runbook with a comprehensive setup guide covering the
entire KiteStacks homelab from scratch — monk (primary host), kscloud1
(Hetzner cloud replica), Cloudflare Tunnel, Tailscale mesh, shared
Authentik Postgres+Redis, all 9 services with full compose configs,
Authentik SSO for every app, kscloud1 replica deployment, portal UI,
monitoring, Discord integration, and a full verification checklist.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 15:51:39 -05:00
a9f25945ad fix: Discord #recent-activities webhook delivery (empty meta/username) 2026-06-11 20:00:39 +00:00
4b5b098464 docs: Discord #recent-activities webhook live - test push 2026-06-11 19:07:39 +00:00
dbbb776808 docs: correct disaster recovery runbook (monk primary, kscloud1 active-active, Forgejo activity fix) 2026-06-11 18:46:09 +00:00
8a014d27bc docs: update runbook for monk as primary host + kscloud1 active cloud failover 2026-06-11 18:46:09 +00:00
KiteStacks AutoSync
fdac5ef6f0 docs: add disaster recovery runbook 2026-06-10 05:09:36 -05:00
KiteStacks AutoSync
bdd4e43254 chore: stop tracking runtime database and container data 2026-06-10 04:09:06 -05:00
KiteStacks AutoSync
68995fd94a docs: add Hetzner cloud redundancy deployment runbook 2026-06-10 04:05:16 -05:00
Kenpat7177
7427b2d0d1 Document cloud migration backup pushed to Forgejo (v1.3.922) 2026-06-09 23:10:34 -05:00
Kenpat7177
95b6a07453 Remove Shaarli; switch to Raindrop.io cloud for bookmark management (v1.3.921)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 10:44:25 -05:00
Kenpat7177
d6c4812b73 Remove Shaarli; switch to Raindrop.io cloud for bookmark management
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 10:40:46 -05:00
KiteStacks AutoSync
1b2461425f docs: add root homelab runbook and debug documentation 2026-06-09 03:32:33 -05:00
KiteStacks AutoSync
55594d4c87 Automated update: 2026-06-09 03:14:40 2026-06-09 03:14:40 -05:00
KiteStacks AutoSync
b2a6716d21 Automated update: 2026-06-09 02:54:20 2026-06-09 02:54:20 -05:00
KiteStacks AutoSync
fd5f035d16 Automated update: 2026-06-09 02:33:26 2026-06-09 02:33:26 -05:00
KiteStacks AutoSync
2ad3c7b6d2 Automated update: 2026-06-09 02:12:47 2026-06-09 02:12:47 -05:00
KiteStacks AutoSync
b8b96ff91d Automated update: 2026-06-09 01:51:45 2026-06-09 01:51:45 -05:00
KiteStacks AutoSync
7b06744704 Automated update: 2026-06-09 01:31:21 2026-06-09 01:31:21 -05:00
KiteStacks AutoSync
3cbb9248d8 Automated update: 2026-06-09 01:11:12 2026-06-09 01:11:12 -05:00
KiteStacks AutoSync
03c0729837 Automated update: 2026-06-09 00:50:48 2026-06-09 00:50:48 -05:00
KiteStacks AutoSync
1664c6a2a1 Automated update: 2026-06-09 00:30:13 2026-06-09 00:30:13 -05:00
KiteStacks AutoSync
0bad9d1109 Automated update: 2026-06-09 00:09:44 2026-06-09 00:09:44 -05:00
KiteStacks AutoSync
19e1744330 docs(discord): define recent activity feed workflow 2026-06-09 00:00:10 -05:00
KiteStacks AutoSync
e5429731f3 feat(discord): add Discord Integration project documentation 2026-06-08 23:57:34 -05:00
KiteStacks AutoSync
9a501cce3d Automated update: 2026-06-08 23:48:23 2026-06-08 23:48:23 -05:00
KiteStacks AutoSync
abbee480b5 Automated update: 2026-06-08 23:28:16 2026-06-08 23:28:16 -05:00
KiteStacks AutoSync
86cad9ae71 Automated update: 2026-06-08 23:08:11 2026-06-08 23:08:11 -05:00
KiteStacks AutoSync
318136e8a0 Automated update: 2026-06-08 22:47:39 2026-06-08 22:47:39 -05:00