Commit Graph

140 Commits

Author SHA1 Message Date
Will Anderson 92d3f8adea rename: newsletter.harmonic-framework.com → campaigns.harmonic-framework.com 2026-04-04 19:10:42 -05:00
Will Anderson bd7c906c05 fix: remove legacy admin_username/password env vars from listmonk config 2026-04-04 19:01:35 -05:00
Will Anderson 58eea3b686 fix: remove destructive initContainer, use one-time Argo CD hook Job for schema install 2026-04-04 18:57:36 -05:00
Will Anderson 0b8eb4264a fix: bind listmonk to 0.0.0.0:9000 so k8s service can route traffic 2026-04-04 18:49:41 -05:00
Will Anderson e788fd48fd fix: listmonk init container command — override entrypoint, drop nonexistent --idempotent flag 2026-04-04 18:46:09 -05:00
Will Anderson bf40bd7f15 feat: add Listmonk newsletter platform on Legion k3s
- Namespace, ExternalSecrets (Vault), DB init job, deployment, service, PVC, ingress
- Routes newsletter.harmonic-framework.com via existing Cloudflare tunnel
- Uses shared platform postgres with dedicated listmonk DB/user
- Credentials stored at secret/data/listmonk in Vault
2026-04-04 18:43:44 -05:00
Will Anderson eefaeafcfc fix(adguard): remove split-horizon DNS rewrites
Split-horizon breaks VPN/LAN hybrid scenarios. Let all clients use
public DNS (Cloudflare proxy IPs) and route via CF tunnel. Works
everywhere, no network-topology-dependent DNS required.
2026-04-04 11:06:38 -05:00
Will Anderson f50d14ccdc fix(adguard): use Tailscale IP for split-horizon DNS rewrites
LAN IP 192.168.68.77 unreachable over Tailscale VPN. 100.64.0.1 works
for both LAN (Tailscale installed) and remote VPN clients. Also adds
*.neuralplatform.dev which was missing from the configmap.
2026-04-04 10:59:33 -05:00
Will Anderson c66bfc2a85 fix(redpanda): use nodePort 30094 (30093 already allocated) 2026-04-04 10:37:40 -05:00
Will Anderson e325539c67 fix(redpanda): remove unsupported --set flags, add external listener on 9093
Newer Redpanda versions removed --set CLI flags. Also adds dual listener:
- INTERNAL://9092 for in-cluster services (ClusterIP)
- EXTERNAL://9093 for Tailscale access from Mac (NodePort 30093 → 100.64.0.1:30093)
2026-04-04 10:33:14 -05:00
Will Anderson 6b546b6168 ci: bump runner pod to pick up valid_volumes config change 2026-04-04 10:27:06 -05:00
Will Anderson 2a5c3fb0ec feat: add Redpanda Console at redpanda.neuralplatform.ai 2026-04-04 10:25:16 -05:00
Will Anderson f3898d4c8e ci: allow /var/run/docker.sock as valid volume for Docker builds 2026-04-04 10:24:37 -05:00
Will Anderson 82ed0eb10b feat: add Redpanda and wp-deploy-coordinator to Legion
- Redpanda single-node StatefulSet in platform namespace
- wp-coordinator deployment consuming wp.deploy topic
- RBAC for coordinator to exec into harmonic-wordpress pods
- R2 credentials via ExternalSecret (no SSH key needed on coordinator)
- Sites config as ConfigMap — add new WP sites without code changes
2026-04-04 10:18:09 -05:00
Will Anderson 6a9db2094e feat: add harmonic-wordpress dev environment on Legion
- Add harmonic-wordpress namespace
- WordPress + MySQL deployment with PVCs and ExternalSecrets
- Ingress for dev.harmonic-framework.com via Traefik + cert-manager
- Argo CD Application watching k8s/harmonic-wordpress/
- Add public Gitea repo credential for git.neuralplatform.ai
2026-04-04 09:47:41 -05:00
Will Anderson fb0284d72a fix(mudcraft): revert to 32x32 reference texture 2026-04-01 03:55:13 -05:00
Will Anderson 2195f8d8d9 fix(mudcraft): proper flat Minecraft sword sprite, update SHA1 2026-04-01 03:53:02 -05:00
Will Anderson d6fa31dcd2 fix(mudcraft): revert to original sword texture orientation 2026-04-01 03:34:30 -05:00
MUDCraft CI 5f685768ec deploy(mudcraft-plugin): update plugin image to ce051316ceda4e06ebea931a7c4b16fd9f0f6887 2026-04-01 08:27:21 +00:00
Will Anderson 7e2feb54b2 fix(mudcraft): flip sword texture, update resource pack SHA1 2026-04-01 03:24:07 -05:00
MUDCraft CI 632fadcf5b deploy(mudcraft-plugin): update plugin image to 557648d146015319524dbd322d622f9fff1c41c0 2026-04-01 08:16:12 +00:00
Will Anderson 3db342d292 fix(mudcraft): resource pack SHA1 — 32x32 texture 2026-04-01 03:03:59 -05:00
MUDCraft CI d79329d9be deploy(mudcraft-plugin): update plugin image to 9450f20bb0b71193cecef218ed0763c8cd0d688c 2026-04-01 07:55:38 +00:00
Will Anderson 58e9f9c1fe fix(mudcraft): update resource pack SHA1 and pack_format 75 for 1.21.11 2026-04-01 02:41:36 -05:00
MUDCraft CI aee009f98d deploy(mudcraft-plugin): update plugin image to e98661c9e1168f6d767017791e6f6fca8b35787c 2026-04-01 07:24:38 +00:00
Will Anderson e3b9395805 feat(mudcraft): configure resource pack and R2 public hosting
Upload stormrift resource pack to mudcraft-assets R2 bucket with public
r2.dev URL. Add RESOURCE_PACK, RESOURCE_PACK_SHA1, and RESOURCE_PACK_ENFORCE
to server configmap so clients download the pack on join.
2026-04-01 02:07:39 -05:00
MUDCraft CI 4cb9fc6427 deploy(mudcraft-plugin): update plugin image to d6122cddfa46484b57c4da4dde611629e05a9081 2026-04-01 06:39:16 +00:00
MUDCraft CI 2f544ed79e deploy(mudcraft-plugin): update plugin image to 5515ae0812f5191384047a78eb5ed308d975e6a2 2026-04-01 06:27:40 +00:00
MUDCraft CI 0c9f14a92d deploy(mudcraft-core): update image to 159b48c4e5c49c46e090400decac659f0fc6f2da 2026-04-01 06:10:01 +00:00
MUDCraft CI 954834acb1 deploy(mudcraft-core): update image to a238572acf9a22032c1c9662759cec5b86dda67d 2026-04-01 05:49:40 +00:00
MUDCraft CI fdcc443e92 deploy(mudcraft-core): update image to 68685eed1e401ccd15925ac6000edc8a102ca5d3 2026-04-01 05:21:51 +00:00
Will Anderson 67347bdcdf feat(mudcraft): add registry pull secret and imagePullSecrets to deployment 2026-04-01 00:10:06 -05:00
MUDCraft CI 1e06463529 deploy(mudcraft-core): update image to 3c5445c55d4e2afe2b4a5e6e4f4ce23e5e3bf374 2026-04-01 05:06:55 +00:00
Will Anderson 04c65ec908 feat(mudcraft): add mudcraft-core deployment, service, secrets, ingress; fix voicechat domain to play.mudcraft.org 2026-03-31 22:46:09 -05:00
Will Anderson 33bf2c7819 feat(mudcraft): add full base permissions to mortal tier
Mortals now have voice chat, EssentialsX basics (msg, home, spawn,
warp), and friends system permissions by default.
2026-03-29 21:59:48 -05:00
Will Anderson b0f2b7533f fix(mudcraft): grant voicechat permissions to mortal tier 2026-03-29 21:59:30 -05:00
MUDCraft CI d741fa5d0c deploy(mudcraft): update plugin image to 10abb0f6f66e134efd81d787df249a9a738403b9 2026-03-30 02:56:57 +00:00
Will Anderson 0a3be2b40d feat(mudcraft): grant voicechat.mute to Angel tier 2026-03-29 21:55:41 -05:00
Will Anderson da6faf918a feat(mudcraft): auto-bootstrap LuckPerms tiers on every pod start
Adds postStart lifecycle hook that waits for RCON then applies the full
permission structure idempotently on every deploy. Tiers:

  Mortals:   mortal → hero → metamortal
  Immortals: angel → god

Permission structure is now git-managed in configmap-luckperms-bootstrap.yaml
— edit that file to change the permission hierarchy.
2026-03-29 21:55:29 -05:00
Will Anderson c2336dc9fc chore(mudcraft): set difficulty to normal 2026-03-29 21:39:58 -05:00
MUDCraft CI c4fbfb79ac deploy(mudcraft): update plugin image to 54f38f924ef38789a02d1316a3605137b6193d71 2026-03-30 02:38:36 +00:00
Will Anderson 574faa0279 fix(mudcraft): set voice_host so clients connect to correct UDP endpoint
Simple Voice Chat was advertising a blank voice_host, causing clients to
try connecting to the pod's internal IP over UDP. Explicitly set
voice_host=mudcraft.nook.family:24454 via ConfigMap + initContainer.
2026-03-29 21:22:03 -05:00
MUDCraft CI 1313886912 deploy(mudcraft): update plugin image to 7d3a8132bd9f9790101c214ee4d5776f53b63137 2026-03-30 02:15:41 +00:00
Will Anderson 1a27f2ad79 feat(mudcraft): whitelist random_guy789 2026-03-29 20:47:12 -05:00
Will Anderson 63d54d9ea0 fix(mudcraft): substitute LP_PASSWORD in LuckPerms config at init time
LuckPerms reads config.yml as a literal string — ${LP_PASSWORD} was
never being substituted, causing auth failures against PostgreSQL.
initContainer now has the secret injected as an env var and uses sed
to write the real password into the config before LuckPerms reads it.

Also adds faultexception to WHITELIST so they can connect.
2026-03-29 20:41:39 -05:00
Will Anderson 8588def1ab fix(mudcraft): add fsGroup 1000 so PVC dirs are writable by server process
Existing /data/plugins/LuckPerms/ dir on PVC was created by root, so
UID 1000 couldn't create subdirs (libs/, etc.). fsGroup:1000 tells k8s
to chown all volume mounts to group 1000 at pod startup, fixing access.
2026-03-29 20:37:44 -05:00
MUDCraft CI a86e9f892f deploy(mudcraft): update plugin image to d2528281d4d304a8ae62e0f73ba6aed034113d34 2026-03-30 01:36:19 +00:00
Will Anderson e79424e6e1 fix(mudcraft): run initContainer as UID 1000 so plugin dirs are writable
LuckPerms was failing with AccessDeniedException on /data/plugins/LuckPerms/libs
because the initContainer was creating directories as root. Main container runs
as UID 1000 and couldn't write inside them. Running initContainer as matching
UID 1000 fixes ownership.
2026-03-29 20:34:14 -05:00
Will Anderson e482059a03 fix(mudcraft): fix LuckPerms init by removing subPath mounts
SubPath mounts into plugin directories were causing k8s to create those
directories owned by root before the server process could write to them.
LuckPerms was failing with "Unable to create libs directory" as a result.

Move config injection to the initContainer: it now cleans stale JARs
(rm *.jar), copies fresh JARs from the plugins image, and pre-creates
the LuckPerms and PurpurExtras directories with configs copied from
ConfigMaps. Main container no longer mounts configs via subPath.

Also fixes stale JAR accumulation — initContainer now clears old JARs
before copying, preventing broken old versions from loading.
2026-03-29 20:30:50 -05:00
Will Anderson 50aa2d2828 Force pod restart — pick up corrected plugin image SHA 2026-03-29 20:20:49 -05:00