diff --git a/MEMORY.md b/MEMORY.md index ff0cb8e..dde852d 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -1,4 +1,4 @@ -- [KiteStacks migration + Hetzner cloud failover (COMPLETE)](project-kitestacks-migration.md) — monk primary, kscloud1 cloud replica, Oracle VPS STALLED (Chicago capacity). 2026-06-14/15: Forgejo synced (13 repos both hosts, ROOT_URL fixed, cron sync). osTicket Authentik LDAP SSO WORKING — auth-ldap.phar triple-patched, authentik-ldap+socat-proxy containers on monk, authentik-ldap on kscloud1. Per Scholas capstone IN PROGRESS. +- [KiteStacks homelab — 2-connector active-active CF Tunnel](project-kitestacks-migration.md) — monk (Docker cloudflared) + kscloud1 (5.78.233.28, Hetzner Ubuntu 26.04). 2026-06-16: phantom 3rd replica fixed (disabled native cloudflared systemd on monk), failover verified. kscloud1 SSH key needs re-adding. Oracle Cloud ARM VPS migration planned. - [Forgejo doc redaction rule](feedback-forgejo-redaction.md) — always redact IPs, ports, and passwords in any homelab Forgejo repo files before committing. -- [A+ Core 2 study plan](project-a-plus-core2.md) — exam goal June 28 2026, started 2026-06-11 9:15 PM, Professor Messer diagnostic first, CertMaster next week. -- [Per Scholas IT Support Capstone](project_per_scholas_capstone.md) — 5-phase migration/ticketing team challenge, connected to osTicket+MariaDB on kscloud1. AI=junior assistant, must verify with evidence. +- [A+ Core 2 study plan](project-a-plus-core2.md) — exam goal July 7 2026, hard deadline July 12. SEC-6 + OS-1/OS-2 quizzes June 18, LAB 5 & 6 Friday. +- [KiteStacks service inventory](project-kitestacks-services.md) — 2026-06-18: repos merged into kitestacks-homelab, docs rewritten, BookStack+Forgejo updated. Pending: kscloud1 SSH, OSTicket SMTP test, Portainer OAuth. diff --git a/project-a-plus-core2.md b/project-a-plus-core2.md index c2acb21..1545dd3 100644 --- a/project-a-plus-core2.md +++ b/project-a-plus-core2.md @@ -1,6 +1,6 @@ --- name: project-a-plus-core2 -description: "A+ Core 2 study plan and progress tracking — exam goal June 28, 2026" +description: "A+ Core 2 study plan and progress tracking — exam goal July 7, 2026" metadata: node_type: memory type: project @@ -9,19 +9,20 @@ metadata: ## A+ Core 2 Study Progress -**Exam goal:** Before July 4th week (preferred ~June 28), hard deadline July 12, 2026 -**July 4th week:** Time off — buffer week if needed, or use for final prep -**Strategy:** Monitor readiness via practice tests, don't sit the real exam until consistently hitting 85%+ -**Study started:** 2026-06-11 at 9:15 PM -**Strategy:** Diagnostic test first, then focus on weak areas +**Exam goal:** July 7, 2026 (hard deadline: July 12, 2026) +**July 4th week:** Time off — buffer week or final prep +**Strategy:** Monitor readiness via practice tests, don't sit the real exam until consistently hitting 85%+ +**Study started:** 2026-06-11 at 9:15 PM -**Why:** June 28 is achievable at 3.5 hours/day. User passed Core 1 with highest score in class of 22. +**Why:** User passed Core 1 with highest score in class of 22. July 7 is the current target. ## Study Log | Date | Activity | Notes | |------|----------|-------| | 2026-06-11 | Started Core 2 study, 9:15 PM | Took Sybex diagnostic practice exam — scored 50% (50/100) | +| 2026-06-17 | LAB 5 theory (Malware types & removal procedure), LAB 6 theory (BitLocker, UAC, Firewall, EFS) | 1hr 8min session, 9:57–11:06 PM CDT. Checkpoint answers all correct. Hands-on LAB 5 & 6 scheduled Friday. SEC-6 quiz scheduled for June 18. | +| 2026-06-18 | SEC-6 quiz + OS-1/OS-2 quizzes scheduled | Hands-on LAB 5 & 6 scheduled for this Friday. | ## Planned Tests - **This week (started 2026-06-11):** Professor Messer practice exam (diagnostic — taken cold first) diff --git a/project-kitestacks-services.md b/project-kitestacks-services.md new file mode 100644 index 0000000..baad3c9 --- /dev/null +++ b/project-kitestacks-services.md @@ -0,0 +1,56 @@ +--- +name: project-kitestacks-services +description: "KiteStacks homelab service inventory — what's running, what's available but not running, and refinement ideas" +metadata: + node_type: memory + type: project + originSessionId: d6a84312-592d-459d-9369-9f4ae53a3afa +--- + +## Currently Running on monk (as of 2026-06-18) +authentik, authentik-worker, authentik-ldap, authentik-ldap-proxy, bookstack, bookstack-db, cloudflared, flux, forgejo, grafana, homepage, karakeep, karakeep-chrome, karakeep-meilisearch, kavita, kite-litellm, kite-openwebui, kitestacks-metrics-api, kitestacks-portal-test, node-exporter, ntfy, osticket, osticket-app, osticket-db, portainer, prometheus, uptime-kuma, blackbox-exporter + +## Available but NOT running on monk +- audiobookshelf — audiobook server +- plane — project management (like Linear/Jira) +- postgres — standalone postgres (authentik uses kscloud1 shared one) + +## Removed 2026-06-17 +- linkding — removed (karakeep overlaps) +- zammad — removed (osticket is the helpdesk) + +## kscloud1 extras vs monk +- kite-monitor — Tailscale-only live stats dashboard (new, 2026-06-17) +- osticket-app-118, osticket-db-118 — second osticket instance (118 version) +- www-backup, homepage-backup — portal replicas + +## Completed refinements 2026-06-17/18 +- linkding + zammad removed from monk +- kitestacks-portal synced from portal-test (added Discord/COMMUNITY section), pushed to kscloud1 +- OSTicket SMTP configured: smtp.gmail.com:587, kitestacks.helpdesk@gmail.com, app password stored in ost_email table (smtp_auth_creds=1 for all 3 emails) +- portainer.kitestacks.com CF tunnel hostname — user confirmed already set in CF dashboard + +## Completed 2026-06-18 (this session) +- Forgejo repo reorganization: kitestacks-cloud, kitestacks-cloud-migration, kitestacks-homelab-autosync-test, OSTicketSystem merged as subdirs (cloud/, cloud-migration/, autosync/, osticket/) into kitestacks-homelab repo. Committed and pushed. +- comptia-a-plus-core2 Forgejo repo updated: merged study-tracker content, added certifications/ dir, updated exam goal to July 7. +- homelab-mastery Forgejo repo: architecture/overview.md and build-guide/README.md rewritten in plain English. +- RUNBOOK.md + DEBUG-DOCUMENTATION.md: rewritten in 5th-grade plain English in kitestacks-homelab repo. +- All 6 BookStack pages updated via API (Runbook, Debug, Architecture, Build Guide, AI Guide, Manual Guide). +- Forgejo API token via external URL broken (Cloudflare strips Authorization header). Works via localhost:3006. +- BookStack API token created (claude-push-825981) via DB injection + bcrypt hash. Works internally. + +## Pending +- BookStack kscloud1: update compose (OIDC_ISSUER=https://auth.kitestacks.com/application/o/bookstack/, OIDC_ISSUER_DISCOVER=true), restart, fix cache perms (chown -R abc:users /config/www/framework/cache/). Blocked by kscloud1 SSH key needs re-adding. +- kscloud1 SSH: re-add id_ed25519_kscloud1.pub key via Hetzner VNC console. +- OSTicket SMTP test email — verify delivery works. +- Archive/delete now-redundant standalone repos (kitestacks-cloud, kitestacks-cloud-migration, kitestacks-homelab-autosync-test, OSTicketSystem) once user confirms move is good. +- Portainer Authentik OAuth setup on both Portainer UIs (manual user action). +- Forgejo Authorization header fix: investigate why Cloudflare strips the token header for API calls (may need Cloudflare WAF rule or different auth method). + +## Completed 2026-06-18 +- Portainer OAuth: both monk + kscloud1 configured (AuthenticationMethod=3, Authentik SSO). OAuth user kenpat7177@gmail.com pre-created as Role:1 (admin) on both. Local Docker environment added to both. Portal card already live. +- BookStack monk: live at https://wiki.kitestacks.com. OIDC SSO to Authentik working (verified 302 redirect). Root fixes: Authentik bookstack provider issuer_mode changed to per_provider, OIDC_ISSUER=https://auth.kitestacks.com/application/o/bookstack/, OIDC_ISSUER_DISCOVER=true, cache dir permissions fixed (chown -R abc:users /config/www/framework/cache/). +- Discord community section removed from portal; Discord icon moved to footer. BookStack card added to KNOWLEDGE BASE panel. Applied to monk live, monk dev, and kscloud1 portal. +- Portal changes applied to all 3 portal copies (monk live, monk dev, kscloud1). + +## How to apply: when user asks about homelab services, reference this inventory to suggest what to spin up or improve.