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": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "400 resources/450 Recipes/Easy Yogurt flat bread.md",
|
||||
"file": "300 areas/360 Dev-Ops Network Computers/Error Tracking.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Easy Yogurt flat bread"
|
||||
"title": "Error Tracking"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -183,7 +183,7 @@
|
||||
"state": {
|
||||
"type": "file-properties",
|
||||
"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",
|
||||
"title": "File properties"
|
||||
@@ -209,8 +209,9 @@
|
||||
"templater-obsidian:Templater": false
|
||||
}
|
||||
},
|
||||
"active": "8f0c8ae5063438f6",
|
||||
"active": "7066c9273c6fb936",
|
||||
"lastOpenFiles": [
|
||||
"400 resources/450 Recipes/Easy Yogurt flat bread.md",
|
||||
"300 areas/360 Dev-Ops Network Computers/Backup System — Borg, Kopia & Restic.md",
|
||||
"200 projects/240 Web Sites/Kontra Day.md",
|
||||
"000 daily/FAMILY S3 Storage Integration & Blueprint.md",
|
||||
@@ -246,7 +247,6 @@
|
||||
"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/FAMILY CONSOLE.md",
|
||||
"300 areas/360 Dev-Ops Network Computers/Backup Health Check Commands.md",
|
||||
"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`.
|
||||
- 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.
|
||||
|
||||
---
|
||||
|
||||
# 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