Commit Graph
914 Commits
Author SHA1 Message Date
Erki AasandClaude Opus 4.8 910f2c56d0 Rotate gitea SECRET_KEY into its own claim, drop gitea-random
Completes the post-breach (CVE-2026-59774) secret split. SECRET_KEY moves
from the shared gitea-random claim to a dedicated gitea-secret-key claim
with a fresh value, and the now-unused gitea-random claim is removed
(ArgoCD prunes it).

The earlier concern that rotating SECRET_KEY breaks the 2 push mirrors was
wrong: their gitlab.com credentials live in each repo's on-disk git config,
not in SECRET_KEY-encrypted storage. Blast radius here is negligible: 0 TOTP
2FA, 0 Actions secrets, 0 runner tokens, pull mirrors are public. SECRET_KEY
has no length constraint (Gitea hashes it to derive the AES key), so unlike
JWT_SECRET size 32 is fine and is not regenerated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-15 23:01:54 +03:00
Erki AasandClaude Opus 4.8 e17b0e0b41 Make gitea OAuth2 JWT_SECRET a valid, stable 43-char key
GITEA__OAUTH2__JWT_SECRET must base64url-decode to 32 bytes. The size-32
claim decoded to 24 bytes, so 1.27 rejected it and generated its own key
on each boot; since app.ini lives on an emptyDir that regenerated every
restart and logged out all OAuth2 clients. size 43 decodes to 32 bytes,
so the rotated key is accepted and stays stable across restarts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-15 22:38:10 +03:00
Erki AasandClaude Opus 4.8 18034b7cd9 Rotate gitea INTERNAL_TOKEN and JWT_SECRET into separate claims
Post-breach (CVE-2026-59774) rotation. All three security secrets shared
one generated value via the gitea-random SecretClaim, and the file-read
exploit leaked it. Split INTERNAL_TOKEN and JWT_SECRET into their own
claims (gitea-internal-token, gitea-oauth2-jwt) with fresh distinct
values and repoint the StatefulSet at them.

INTERNAL_TOKEN is the secret the attacker actually used against the
still-internet-reachable /api/internal, so this closes reuse of any saved
copy. Rotating JWT_SECRET invalidates gitea-issued OAuth2 and LFS tokens,
so the OAuth2 integrations (Woodpecker, tea, credential helpers) need one
re-login.

SECRET_KEY is deliberately left on gitea-random: rotating it would break
the 2 push mirrors (encrypted creds) and must be done in a window that
re-enters those credentials.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-15 22:23:56 +03:00
Erki AasandClaude Opus 5 bcb637685a Pin gitea SSH_LISTEN_PORT to 2222
The rootless image defaulted SSH_LISTEN_PORT to SSH_PORT until 1.26; in
1.27 docker-setup.sh leaves it empty, so Gitea fell back to SSH_PORT=22
and crash-looped with "listen tcp :22: bind: permission denied" as uid
1000. The Service already maps 22 -> 2222, so pin the listen port
explicitly rather than depending on an image default.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 22:07:01 +03:00
Erki AasandClaude Opus 5 c525300036 gitea v1.27.3
Fixes CVE-2026-59774, an unauthenticated arbitrary file read in the
Org-mode renderer (POST /{owner}/{repo}/markup, #+INCLUDE directive)
affecting 1.22.1-1.27.0. It was used against this instance on 2026-09-10
to read app.ini, steal INTERNAL_TOKEN and plant an uploadpack
packObjectsHook that ran a Monero miner on every clone. The 1.25 branch
never received the fix, so this skips 1.26.

Env-var config still works: the rootless image's environment-to-ini is
now a shim for `gitea config edit-ini --in-place --apply-env`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 22:04:34 +03:00
Erki Aas 8a76219544 Enable ceph pvc snapshots 2026-08-31 18:14:34 +03:00
Erki Aas eb3ff2dfb5 Cap mikrotik exporter probes 2026-08-31 17:52:13 +03:00
Erki Aas 50887550e0 Let Argo ignore dynamically generated secret diffs 2026-08-31 17:50:52 +03:00
Erki Aas ae7b3fe8ff Excempt 1G modules from 10G link rate degraded alert 2026-08-31 16:46:05 +03:00
Erki Aas bdfc82633f Pin working SecretClaimOperator image 2026-08-31 16:37:39 +03:00
Erki Aas ccb361a0b1 Fix rosdump alert 2026-08-31 16:37:18 +03:00
Erki Aas 9c72de9a8d Use etherpad secret 2026-08-23 14:30:24 +03:00
Erki Aas 9ad15aa58f Upgrade etherpad 2026-08-23 14:24:51 +03:00
Erki Aas fa78dba6a9 Update Calico CRD 2026-08-23 13:31:03 +03:00
Erki Aas 7216e85889 Improve stability of Calico upgrades 2026-08-23 13:30:51 +03:00
Erki Aas 31f3ea0376 Improve ArgoCD prom rule 2026-08-23 13:30:28 +03:00
Erki Aas 0307fca109 Upgrade Calico and fully disable vxlan 2026-08-23 13:10:35 +03:00
Erki Aas f1b601b0c1 Fix KubernetesStatefulsetDown prom rule 2026-08-23 13:10:13 +03:00
Erki Aas 20df574678 Add stable secret to woodpecker agent 2026-08-22 23:57:43 +03:00
Erki Aas 825d4cf602 Fix traefik prom rule 2026-08-22 23:14:13 +03:00
Erki Aas 47f92fd058 Fix rook connection with pve ceph cluster 2026-08-10 02:00:20 +03:00
Erki Aas 64ece67ed7 Fix rspamd memory limit 2026-08-10 01:46:06 +03:00
Erki Aas aed9fb1c29 Update Freescout volume mount per new image 2026-08-10 00:31:03 +03:00
eaas b5c36cecd0 Update freescout/application.yaml 2026-08-09 21:05:27 +00:00
eaas 6979641e97 Update freescout/application.yaml 2026-08-09 21:01:47 +00:00
Erki Aas 0636c40094 Fix frigate persistance and detection 2026-08-06 21:54:29 +03:00
eaas aec42eb2aa Update frigate/values.yaml 2026-08-06 18:28:25 +00:00
rasmus 559f463739 goredirect: redir to /help 2026-07-26 02:10:08 +03:00
Erki Aas 636e0f72cc wildduck: fix cert renewal 2026-07-21 15:55:30 +03:00
Erki Aas edceeabd31 passmower: add codeberg 2026-06-26 17:58:47 +03:00
Erki Aas c20bb80915 passmower: upgrade to 1.3.0 2026-06-26 11:49:07 +03:00
rasmus 3184462ceb doorboy-proxy replicas to 1
k-space/doorboy-proxy#7
2026-06-12 22:38:55 +03:00
Erki Aas 2d891c42e9 fix(wildduck): supress xOriginatingIP header 2026-05-22 10:00:57 +03:00
Erki Aas 2cdea27b74 Fix haraka config 2026-04-16 17:07:07 +03:00
Erki Aas 3ebacea720 Fix haraka config 2026-04-16 17:02:14 +03:00
Erki Aas 2e611270ed Upgrade wildduck components 2026-04-16 16:58:09 +03:00
rasmus b844015d22 doc: wildflock aliases with gsuite
Forwarding set up by eaas
2026-03-04 16:20:01 +02:00
rasmus 64891fd0b5 wiki: update oidc patcher to psql 2026-01-31 23:46:00 +02:00
rasmus 79d18e1b6f wiki: map groups 2026-01-31 23:13:24 +02:00
rasmus 1d2edd3ae9 wiki: switch to migrated pg 2026-01-31 22:48:44 +02:00
rasmus f0c3df9fe8 wiki: recreate empty pg as v18 2026-01-31 22:47:43 +02:00
rasmus 1badb4b255 wikijs to kustomize, prep for pg migra 2026-01-31 22:40:58 +02:00
rasmus dd5d2b79ab up wiki :( 2026-01-23 16:46:29 +02:00
rasmus 9410b25e3e pgweb to kustomize 2026-01-09 09:28:01 +02:00
rasmus fc0ab4a7c8 the last yml to yaml 2026-01-09 09:23:37 +02:00
rasmus 97f7d68459 freescout to kustomize
mail pull/push secrets were broken before and now
2026-01-09 09:14:03 +02:00
rasmus d546168982 ns <-> dirs <-> argocd naming sync OK 2026-01-06 04:26:54 +02:00
rasmus 20b0852c4a disable elastic
filebeat was already removed from cluster
2026-01-06 04:21:16 +02:00
rasmus bd4ed21e25 track elastic-system with argo 2026-01-06 03:23:30 +02:00
rasmus 54ff82a3f5 update README datastores 2026-01-05 23:14:00 +02:00