Commit graph

931 commits

Author SHA1 Message Date
f38decc285 ci: add Forgejo Actions pipeline + runner setup
Some checks are pending
KiteStacks CI / Validate compose files (push) Waiting to run
KiteStacks CI / Check for accidental secrets (push) Waiting to run
KiteStacks CI / Shellcheck scripts (push) Waiting to run
- apps/forgejo/docker-compose.yml: enable FORGEJO__actions__ENABLED=true
- apps/forgejo-runner/docker-compose.yml: forgejo-runner:3.5.0 container
  mounts docker.sock so jobs can spin up containers on monk
- .forgejo/workflows/ci.yml: 3-job pipeline on every push to main
    compose-lint   → validates all apps/*/docker-compose.yml
    secrets-check  → scans for hardcoded passwords/tokens/keys
    shellcheck     → lints all scripts/*.sh
- docs/ci-cd-setup.md: runner registration steps + extension guide

PENDING (needs user action):
  1. docker compose up -d --force-recreate in apps/forgejo/ to apply env
  2. Get runner token from Forgejo admin panel
  3. Run forgejo-runner register with token, then docker compose up

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 03:03:29 -05:00
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
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
4545b5c5e0 chore: rename assassin cluster to T14s and add kavita gitops manifests 2026-06-15 11:56:59 -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
dbbb776808 docs: correct disaster recovery runbook (monk primary, kscloud1 active-active, Forgejo activity fix) 2026-06-11 18:46:09 +00:00
KiteStacks AutoSync
fdac5ef6f0 docs: add disaster recovery runbook 2026-06-10 05:09:36 -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
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
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
KiteStacks AutoSync
272480bd80 Automated update: 2026-06-08 22:27:22 2026-06-08 22:27:22 -05:00
KiteStacks AutoSync
f98123b859 Automated update: 2026-06-08 22:06:43 2026-06-08 22:06:43 -05:00
KiteStacks AutoSync
90d7e82e10 Automated update: 2026-06-08 21:46:38 2026-06-08 21:46:38 -05:00
KiteStacks AutoSync
2c2faea3d8 Automated update: 2026-06-08 21:26:09 2026-06-08 21:26:09 -05:00
KiteStacks AutoSync
3e059ca69b Automated update: 2026-06-08 21:05:43 2026-06-08 21:05:43 -05:00
KiteStacks AutoSync
18dfd5d012 Automated update: 2026-06-08 20:45:10 2026-06-08 20:45:10 -05:00
Kenpat7177
34ae9423ef docs: complete Authentik SSO setup for all kitestacks.com services (v1.3.898)
- All OAuth2/OIDC providers created in Authentik; secrets filled for Kavita and OpenProject
- Proxy Providers created for Shaarli, Uptime Kuma, LiteLLM; assigned to Embedded Outpost
- OpenProject upgraded v13→v15 with data preserved; compose volume path fixed
- Cloudflare tunnel updates for proxy services still pending

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 20:32:51 -05:00
KiteStacks AutoSync
99696e3148 Automated update: 2026-06-08 20:24:38 2026-06-08 20:24:38 -05:00
KiteStacks AutoSync
102ec8b455 Automated update: 2026-06-08 20:04:19 2026-06-08 20:04:19 -05:00
KiteStacks AutoSync
29f493dbf7 Automated update: 2026-06-08 19:43:12 2026-06-08 19:43:12 -05:00
KiteStacks AutoSync
608f8de681 Automated update: 2026-06-08 19:22:54 2026-06-08 19:22:54 -05:00
KiteStacks AutoSync
a33ba8bde5 Automated update: 2026-06-08 19:02:24 2026-06-08 19:02:24 -05:00
KiteStacks AutoSync
7fc5696417 Automated update: 2026-06-08 18:41:39 2026-06-08 18:41:39 -05:00
KiteStacks AutoSync
61acb5731f Automated update: 2026-06-08 18:21:08 2026-06-08 18:21:08 -05:00
KiteStacks AutoSync
f267cf09f1 Automated update: 2026-06-08 18:00:38 2026-06-08 18:00:38 -05:00
KiteStacks AutoSync
e114ffa7ff Automated update: 2026-06-08 17:40:08 2026-06-08 17:40:08 -05:00
KiteStacks AutoSync
ef44f9c333 Automated update: 2026-06-08 17:19:37 2026-06-08 17:19:37 -05:00
KiteStacks AutoSync
6461c0266c Automated update: 2026-06-08 16:57:37 2026-06-08 16:57:37 -05:00
KiteStacks AutoSync
c0c9068458 Automated update: 2026-06-08 16:37:21 2026-06-08 16:37:21 -05:00
KiteStacks AutoSync
d9ac3f05c7 Automated update: 2026-06-08 16:16:45 2026-06-08 16:16:45 -05:00
KiteStacks AutoSync
dd0ea28d85 Automated update: 2026-06-08 15:56:38 2026-06-08 15:56:38 -05:00
KiteStacks AutoSync
f6a432f972 Automated update: 2026-06-08 15:36:18 2026-06-08 15:36:18 -05:00