implemented git sync for app templates
This commit is contained in:
@@ -33,7 +33,9 @@ deploy-felhom-compose/
|
||||
│ ├── internal/
|
||||
│ │ ├── config/ # YAML config loading
|
||||
│ │ ├── stacks/ # Docker Compose operations, deploy flow
|
||||
│ │ ├── sync/ # Git sync — periodic pull of app catalog repo
|
||||
│ │ ├── api/ # REST API endpoints
|
||||
│ │ ├── system/ # System info (memory, disk)
|
||||
│ │ └── web/ # Dashboard UI (embedded HTML/CSS templates)
|
||||
│ ├── Dockerfile
|
||||
│ ├── Makefile
|
||||
@@ -98,6 +100,19 @@ ssh kisfenyo@192.168.0.162 "cd /opt/docker/felhom-controller && docker pull gite
|
||||
- `app.yaml` persists deploy config; `deployed: true` flag controls UI state
|
||||
- Password fields require explicit user input or generation (no silent auto-fill)
|
||||
|
||||
## Git sync module (internal/sync)
|
||||
|
||||
- Uses `os/exec` to call `git` CLI — no Go git library dependency
|
||||
- On startup: clones repo to `{data_dir}/catalog-cache/` (shallow clone, `--depth 1`)
|
||||
- Periodically: `git fetch --depth 1` + `git reset --hard origin/{branch}`
|
||||
- Copies only `docker-compose.yml` and `.felhom.yml` to stacks dir
|
||||
- **Never overwrites** `app.yaml` or `.env` — these contain deployed secrets
|
||||
- Content-hash comparison (SHA-256) — only writes if file actually changed
|
||||
- After sync, triggers `ScanStacks()` rescan for dashboard update
|
||||
- `POST /api/sync` triggers immediate sync (30s debounce)
|
||||
- "Sablonok frissítése" button on Alkalmazások page
|
||||
- Sync status exposed in `/api/system/info` response
|
||||
|
||||
## Important lessons learned
|
||||
|
||||
1. `PAPERLESS_OCR_LANGUAGES` (plural, with S) **installs** tesseract packs; `PAPERLESS_OCR_LANGUAGE` (singular) **selects** which to use
|
||||
|
||||
Reference in New Issue
Block a user