v0.3.0: structural refactor — go:embed templates, server split, domain rename
- Migrate all 7 HTML templates + CSS from Go string constants to individual go:embed files in internal/web/templates/ (templates.go: 2150→35 lines) - Split server.go into auth.go, handlers.go, funcmap.go (server.go: 540→120 lines) - Rename controller subdomain from dashboard.* to felhom.* in Traefik labels - Update documentation (CLAUDE.md, README.md, CONTEXT.md) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+17
-4
@@ -7,7 +7,7 @@
|
||||
>
|
||||
> Ask Claude Code: "Please update CONTEXT.md with what we did today"
|
||||
|
||||
Last updated: 2026-02-15 (session 8)
|
||||
Last updated: 2026-02-15 (session 9)
|
||||
|
||||
---
|
||||
|
||||
@@ -22,13 +22,26 @@ Last updated: 2026-02-15 (session 8)
|
||||
## Current project state
|
||||
|
||||
### felhom-controller (this repo)
|
||||
- **Version:** v0.2.15
|
||||
- **Version:** v0.3.0
|
||||
- **Phase 1:** ✅ COMPLETE — Stack Manager + Deploy Flow
|
||||
- **First app deployed:** Paperless-ngx on demo-felhom.eu (2026-02-13)
|
||||
- **Running on:** demo-felhom (N100 mini PC) at 192.168.0.162:8080
|
||||
- **All Phase 1 features working:** deploy, start/stop/restart/update, logs, health-aware states, auth
|
||||
|
||||
### What was just completed (2026-02-15 session 8)
|
||||
### What was just completed (2026-02-15 session 9)
|
||||
- **v0.3.0 — Structural refactoring (templates + server split + domain rename):**
|
||||
- **Templates: go:embed migration** — moved all 7 HTML templates + CSS from Go string constants to individual files in `internal/web/templates/`. Created `embed.go` with `//go:embed` directive. Template loading now uses `ParseFS()` instead of `Parse()`. CSS served from embed.FS via `ReadFile()`. Zero runtime file dependencies — still compiled into the binary.
|
||||
- **Server decomposition** — split monolithic `server.go` (540 lines) into focused files:
|
||||
- `auth.go`: session struct, auth middleware, login/logout handlers, session management
|
||||
- `handlers.go`: page handlers (dashboard, stacks, logs, deploy, app detail)
|
||||
- `funcmap.go`: template FuncMap with 14 custom functions
|
||||
- `server.go`: Server struct, NewServer, loadTemplates (3-liner), ServeHTTP routing, render helper, static file serving
|
||||
- **Domain rename** — controller subdomain changed from `dashboard.*` to `felhom.*` in Traefik labels and setup script
|
||||
- **Documentation updated** — CLAUDE.md, README.md, CONTEXT.md all reflect new file structure
|
||||
- **Reminder for Viktor:** Update Cloudflare Tunnel public hostname (`dashboard.demo-felhom.eu` → `felhom.demo-felhom.eu`) and Pi-hole DNS if needed
|
||||
- **Controller version:** v0.3.0
|
||||
|
||||
### What was previously completed (2026-02-15 session 8)
|
||||
- **FileBrowser as infrastructure service:**
|
||||
- Created `scripts/hdd-setup.sh` (adapted from deploy-portainer) — sets up HDD folder structure with `Dokumentumok` user dir
|
||||
- Created `scripts/docker-setup.sh` (adapted from deploy-portainer) — installs Docker, Traefik, FileBrowser as infra services
|
||||
@@ -191,7 +204,7 @@ Last updated: 2026-02-15 (session 8)
|
||||
| Decision | Rationale |
|
||||
|----------|-----------|
|
||||
| Go stdlib for web (no Gin/Echo) | Minimal dependencies, single binary, easy to embed templates |
|
||||
| Templates as Go string constants | Zero runtime file dependencies, everything in the binary |
|
||||
| Templates as go:embed HTML/CSS files | Zero runtime file dependencies (compiled into binary), but each template is a separate editable file |
|
||||
| Docker Compose for customers (not k8s) | Simpler troubleshooting, customers don't need k8s knowledge |
|
||||
| k3s for management infra only | Viktor's own services (gitea, monitoring, website) run on k3s |
|
||||
| Cloudflare Tunnel for remote access | No port forwarding needed, works behind any NAT |
|
||||
|
||||
Reference in New Issue
Block a user