sam-4screen-desktop 2026-9-9:18:24:8
This commit is contained in:
10
.obsidian/workspace.json
vendored
10
.obsidian/workspace.json
vendored
@@ -13,12 +13,12 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "400 resources/450 Recipes/Easy Yogurt flat bread.md",
|
"file": "300 areas/360 Dev-Ops Network Computers/Error Tracking.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "Easy Yogurt flat bread"
|
"title": "Error Tracking"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "file-properties",
|
"type": "file-properties",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "400 resources/450 Recipes/Easy Yogurt flat bread.md"
|
"file": "300 areas/360 Dev-Ops Network Computers/Error Tracking.md"
|
||||||
},
|
},
|
||||||
"icon": "lucide-info",
|
"icon": "lucide-info",
|
||||||
"title": "File properties"
|
"title": "File properties"
|
||||||
@@ -209,8 +209,9 @@
|
|||||||
"templater-obsidian:Templater": false
|
"templater-obsidian:Templater": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "8f0c8ae5063438f6",
|
"active": "7066c9273c6fb936",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
|
"400 resources/450 Recipes/Easy Yogurt flat bread.md",
|
||||||
"300 areas/360 Dev-Ops Network Computers/Backup System — Borg, Kopia & Restic.md",
|
"300 areas/360 Dev-Ops Network Computers/Backup System — Borg, Kopia & Restic.md",
|
||||||
"200 projects/240 Web Sites/Kontra Day.md",
|
"200 projects/240 Web Sites/Kontra Day.md",
|
||||||
"000 daily/FAMILY S3 Storage Integration & Blueprint.md",
|
"000 daily/FAMILY S3 Storage Integration & Blueprint.md",
|
||||||
@@ -246,7 +247,6 @@
|
|||||||
"300 areas/350 AI/AI Tools to try.md",
|
"300 areas/350 AI/AI Tools to try.md",
|
||||||
"300 areas/360 Dev-Ops Network Computers/Error Tracking.md",
|
"300 areas/360 Dev-Ops Network Computers/Error Tracking.md",
|
||||||
"300 areas/360 Dev-Ops Network Computers/FAMILY CONSOLE.md",
|
"300 areas/360 Dev-Ops Network Computers/FAMILY CONSOLE.md",
|
||||||
"300 areas/360 Dev-Ops Network Computers/Backup Health Check Commands.md",
|
|
||||||
"Untitled.canvas"
|
"Untitled.canvas"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -72,3 +72,27 @@ Two failures blocked the request path.
|
|||||||
- Changed `app.py` MQTT intake to retry and reconnect. Backup: `app.py.bak-mqtt-20260906`.
|
- Changed `app.py` MQTT intake to retry and reconnect. Backup: `app.py.bak-mqtt-20260906`.
|
||||||
- Run `sudo systemctl restart voice-agent` to load the change.
|
- Run `sudo systemctl restart voice-agent` to load the change.
|
||||||
- DeepSeek key is valid but the account balance is zero. Add credit at platform.deepseek.com.
|
- DeepSeek key is valid but the account balance is zero. Add credit at platform.deepseek.com.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 2026-09-09 — Garage S3 web returns 404/403 for site images (anonymous hosting)
|
||||||
|
|
||||||
|
## Symptom
|
||||||
|
A Go + htmx site (being built for `kontra.day`) tried to serve uploaded images through **Garage S3 web** (`:3902`) and got `404` on the bucket root and `403 Forbidden: Garage does not support anonymous access yet` in `docker logs family-home-lab-garage-1`.
|
||||||
|
|
||||||
|
## Root cause
|
||||||
|
Two things misled the diagnosis:
|
||||||
|
|
||||||
|
1. **Wrong claim (from an earlier AI):** it said `[s3_web]` was absent and the web server wasn't running. **False** — `[s3_web]` IS in `garage.toml` (`bind_addr = "[::]:3902"`, `root_domain = ".web.lab.audasmedia.com.au"`, `index = "index.html"`) and the log shows `Web server listening on http://[::]:3902`. Verified: `ss -tln` shows 3902 bound (Garage web server), 3903 admin, 3909 garage-webui.
|
||||||
|
2. **Real issue:** Garage S3 Web is **not anonymous static hosting**. It requires **per-bucket web access + a read-scoped access key**. Without it, every request gets `403 Forbidden: Garage does not support anonymous access yet`, and the bucket root 404s with no index/perm.
|
||||||
|
|
||||||
|
## Fix / correct pattern
|
||||||
|
- **Do NOT** point site/app code at `:3902` for anonymous browsing.
|
||||||
|
- **Use the S3 API** (`:3900`, region `garage`) with a **read-scoped key** for uploads/reads.
|
||||||
|
- **Serve images** through the app or **Caddy** (reverse-proxy to Garage with the read key, or a Caddy `file_server` static dir) — not via `:3902` directly.
|
||||||
|
- If web-serving a bucket is truly needed, enable **per-bucket web access + a guest/read key** in Garage (not a global switch).
|
||||||
|
|
||||||
|
## Verification / non-causes
|
||||||
|
- `[s3_web]` present; web server confirmed running (log line + port 3902 bound) → the earlier "no s3_web / not running" diagnosis was wrong.
|
||||||
|
- Port map: 3900 S3 API · 3902 S3 web · 3903 admin API · 3909 garage-webui. No port conflict.
|
||||||
|
- Documented in the Garage section of [[Backup System — Borg, Kopia & Restic]] and the kontra.day site handoff.
|
||||||
|
|||||||
Reference in New Issue
Block a user