Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ real values into `platform.yml`. The publish pipeline sanitises the real values
when syncing to the public mirror. The private repo's `platform.yml` must
always reflect actual deployment reality.

> **Incident**: This gap caused `headscale.lv3.org` DNS to point at `203.0.113.1`
> **Incident**: This gap caused `headscale.example.com` DNS to point at `203.0.113.1`
> (a non-routable documentation IP), breaking Tailscale VPN for the entire
> deployment.

Expand Down
10 changes: 5 additions & 5 deletions build/platform-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
"next_refresh_at": "2026-04-14T12:04:04Z",
"environment": "production",
"identity": {
"platform_name": "lv3.org",
"operator": "Florin Badita-Nistor",
"platform_name": "example.com",
"operator": "Platform Operator",
"description": "Single-node Proxmox homelab with repository-managed agentic operations automation.",
"host_id": "proxmox-host",
"provider": "hetzner-dedicated"
Expand Down Expand Up @@ -6310,17 +6310,17 @@
},
{
"component": "Ops portal",
"endpoint": "https://ops.lv3.org",
"endpoint": "https://ops.example.com",
"adr": "0093"
},
{
"component": "Windmill workflows",
"endpoint": "https://windmill.lv3.org",
"endpoint": "https://windmill.example.com",
"adr": "0044"
},
{
"component": "API gateway",
"endpoint": "https://api.lv3.org",
"endpoint": "https://api.example.com",
"adr": "0092"
}
],
Expand Down
2 changes: 1 addition & 1 deletion catalog/services/gitea/service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ health:
argv:
- test
- -x
- /opt/gitea/data/git/repositories/ops/proxmox_florin_server.git/custom_hooks/pre-receive
- /opt/gitea/data/git/repositories/ops/platform_server.git/custom_hooks/pre-receive
success_rc: 0
docker_publication:
container_name: gitea
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
placeholder. Writing this to /etc/network/interfaces causes TOTAL HOST LOCKOUT
on the next reboot (wrong IP — server unreachable). Aborting convergence.
Fix: ensure .local/identity.yml is injected via -e @.local/identity.yml.
See incident postmortem 2026-04-12 (6h outage on 65.108.75.123).
See incident postmortem 2026-04-12 (6h outage on 203.0.113.1).

- name: Validate optional staging bridge inputs
ansible.builtin.assert:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@
# INPUT policy. If it crashes after setting DROP policy but before adding ACCEPT rules,
# the host becomes unreachable. This guard detects that state, stops pve-firewall, and
# aborts convergence so the operator can investigate.
# Incident reference: 2026-04-12 — 6h outage on 65.108.75.123; root cause was
# Incident reference: 2026-04-12 — 6h outage on 203.0.113.1; root cause was
# placeholder IP in /etc/network/interfaces (wrong IP, not firewall), but this guard
# provides defence-in-depth against the firewall-crash scenario.
- name: Wait for pve-firewall to populate ACCEPT rules in PVEFW-HOST-IN (up to 30s)
Expand Down
2 changes: 1 addition & 1 deletion config/health-probe-catalog.json
Original file line number Diff line number Diff line change
Expand Up @@ -790,7 +790,7 @@
"argv": [
"test",
"-x",
"/opt/gitea/data/git/repositories/ops/proxmox_florin_server.git/custom_hooks/pre-receive"
"/opt/gitea/data/git/repositories/ops/platform_server.git/custom_hooks/pre-receive"
],
"success_rc": 0,
"docker_publication": {
Expand Down
Loading
Loading