added more detailed debug logging
This commit is contained in:
@@ -113,10 +113,26 @@ ssh kisfenyo@192.168.0.162 "cd /opt/docker/felhom-controller && docker pull gite
|
||||
- "Sablonok frissítése" button on Alkalmazások page
|
||||
- Sync status exposed in `/api/system/info` response
|
||||
|
||||
## Debug logging
|
||||
|
||||
The controller has two-tier logging controlled by `logging.level` in `controller.yaml` (or `FELHOM_LOGGING_LEVEL` env var):
|
||||
|
||||
- **`info`** (default): Operation success/failure with elapsed time, post-start container states, scan counts
|
||||
- **`debug`**: All of above plus env var keys per compose command, local image availability checks, compose command completion times, log fetch byte counts
|
||||
|
||||
Key patterns used in `internal/stacks/`:
|
||||
- `time.Since(start)` for operation timing — always logged at INFO level
|
||||
- `m.isDebug()` gates verbose output (env var keys, image checks)
|
||||
- `truncateStr(s, 500)` caps stdout/stderr in error logs
|
||||
- `logPostStartStatus()` runs async (goroutine + 3s sleep) after start/restart/update/deploy — never blocks or fails the operation
|
||||
- `checkLocalImages()` parses compose YAML for `image:` lines, runs `docker image inspect` per image
|
||||
- Env var **keys** are logged, never values (secrets safety)
|
||||
|
||||
## Important lessons learned
|
||||
|
||||
1. `PAPERLESS_OCR_LANGUAGES` (plural, with S) **installs** tesseract packs; `PAPERLESS_OCR_LANGUAGE` (singular) **selects** which to use
|
||||
2. `docker compose restart` does NOT pick up new images — always use `docker compose up -d`
|
||||
3. Go map iteration order is random — always sort before displaying in UI
|
||||
4. Docker's `.State` field says "running" even for unhealthy containers — must parse `.Status` for health info
|
||||
5. After `DeployStack()` succeeds, update in-memory `Deployed` flag immediately — `RefreshStatus()` only reads docker ps, not app.yaml
|
||||
5. After `DeployStack()` succeeds, update in-memory `Deployed` flag immediately — `RefreshStatus()` only reads docker ps, not app.yaml
|
||||
6. `docker compose up -d` returns exit 0 even when containers crash-loop — post-start status check is essential for detecting failures
|
||||
Reference in New Issue
Block a user