diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-14 22:12:29 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-14 22:12:29 +0300 |
| commit | c070d447d6bdc6d9e002e6f3ea5aafe9e5d7fc38 (patch) | |
| tree | c9fa288a885694a5bdff2823e935aa1798799cb9 | |
| parent | f90a9e0063dbe4ca06c193aec7e7469a32e0b422 (diff) | |
Release 0.4.1: drop HTML report header links; document Docker deploy in AGENTS.
Remove Dashboard/foo.zone/Report API nav from HTML output; keep foo.zone CSS and layout. Refresh HTML fixtures.
Made-with: Cursor
| -rw-r--r-- | AGENTS.md | 18 | ||||
| -rw-r--r-- | fixtures/Host.Boots.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/Host.Downtime.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/Host.Lifespan.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/Host.Score.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/Host.Uptime.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/Kernel.Boots.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/Kernel.Score.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/Kernel.Uptime.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/KernelMajor.Boots.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/KernelMajor.Score.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/KernelMajor.Uptime.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/KernelName.Boots.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/KernelName.Score.HTML.expected | 3 | ||||
| -rw-r--r-- | fixtures/KernelName.Uptime.HTML.expected | 3 | ||||
| -rw-r--r-- | internal/goprecords/report_format.go | 7 | ||||
| -rw-r--r-- | internal/version/version.go | 2 |
17 files changed, 19 insertions, 50 deletions
@@ -23,6 +23,21 @@ go test ./... mage install ``` +## Docker image & f3s deploy + +Image build and registry push live in the **`conf`** repo (`f3s/goprecords`), not in this tree. The Justfile there builds from **`docker-image/Justfile`**, which sets **`SRC`** to this **`goprecords`** checkout (default `/home/paul/git/goprecords`). + +**Release checklist** + +1. Bump **`internal/version/version.go`** (`Tag`, semver). +2. In **`conf`**: set **`docker-image/Justfile`** `TAG` to the same version; set **`helm-chart/templates/deployment.yaml`** `image:` to `registry.lan.buetow.org:30001/goprecords:<Tag>`; update **`f3s/goprecords/README.md`** example tags if present. +3. From **`conf/f3s/goprecords`**: run **`just build-push`** (tags and pushes **`r0.lan.buetow.org:30001/goprecords:<Tag>`**; the cluster pulls via **`registry.lan.buetow.org:30001`**). +4. Commit and tag **`goprecords`**; push branch and tag to Codeberg. +5. Commit **`conf`**; push **`master`** to Codeberg **and** to **`r0`** (`git push r0 master`) so the in-cluster git server Argo uses is updated. +6. Sync the app: from **`conf/f3s/goprecords`**, **`just sync`** (or wait for Argo automated sync). Confirm with **`kubectl rollout status deployment/goprecords -n services`** and the deployment image tag. + +Utility targets in **`conf/f3s/goprecords/Justfile`**: **`status`**, **`logs`**, **`restart`**. + ## Project Structure ``` @@ -31,6 +46,7 @@ goprecords/ ├── internal/ │ ├── goprecords/ # Core logic (db, aggregate, report, parse, order, types) │ └── version/version.go # Version constant +├── Dockerfile # Multi-stage image (daemon binary) ├── Magefile.go # Build automation ├── fixtures/ # Test fixtures and expected outputs └── go.mod # Go 1.21, modernc.org/sqlite @@ -48,7 +64,7 @@ goprecords/ - Categories: `Host`, `Kernel`, `KernelMajor`, `KernelName` - Metrics: `Boots`, `Uptime`, `Score`, `Downtime`, `Lifespan` -- Output formats: `Plaintext`, `Markdown`, `Gemtext` +- Output formats: `Plaintext`, `Markdown`, `Gemtext`, `HTML` - `Downtime` and `Lifespan` metrics only apply to `Host` category ## Key Types diff --git a/fixtures/Host.Boots.HTML.expected b/fixtures/Host.Boots.HTML.expected index 225f751..07aa52d 100644 --- a/fixtures/Host.Boots.HTML.expected +++ b/fixtures/Host.Boots.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Boots's by Host</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Boots's by Host</h1><br /> <br /> <span class="quote">Boots is the total number of host boots over the entire lifespan.</span><br /> diff --git a/fixtures/Host.Downtime.HTML.expected b/fixtures/Host.Downtime.HTML.expected index fcb1569..ecbbe42 100644 --- a/fixtures/Host.Downtime.HTML.expected +++ b/fixtures/Host.Downtime.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Downtime's by Host</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Downtime's by Host</h1><br /> <br /> <span class="quote">Downtime is the total downtime of a host over the entire lifespan.</span><br /> diff --git a/fixtures/Host.Lifespan.HTML.expected b/fixtures/Host.Lifespan.HTML.expected index ea34115..7fa920b 100644 --- a/fixtures/Host.Lifespan.HTML.expected +++ b/fixtures/Host.Lifespan.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Lifespan's by Host</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Lifespan's by Host</h1><br /> <br /> <span class="quote">Lifespan is the total uptime + the total downtime of a host.</span><br /> diff --git a/fixtures/Host.Score.HTML.expected b/fixtures/Host.Score.HTML.expected index 61c77d8..bf48b2b 100644 --- a/fixtures/Host.Score.HTML.expected +++ b/fixtures/Host.Score.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Score's by Host</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Score's by Host</h1><br /> <br /> <span class="quote">Score is calculated by combining all other metrics.</span><br /> diff --git a/fixtures/Host.Uptime.HTML.expected b/fixtures/Host.Uptime.HTML.expected index 2c38c84..ca55e85 100644 --- a/fixtures/Host.Uptime.HTML.expected +++ b/fixtures/Host.Uptime.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Uptime's by Host</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Uptime's by Host</h1><br /> <br /> <span class="quote">Uptime is the total uptime of a host over the entire lifespan.</span><br /> diff --git a/fixtures/Kernel.Boots.HTML.expected b/fixtures/Kernel.Boots.HTML.expected index e748baf..273b982 100644 --- a/fixtures/Kernel.Boots.HTML.expected +++ b/fixtures/Kernel.Boots.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Boots's by Kernel</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Boots's by Kernel</h1><br /> <br /> <span class="quote">Boots is the total number of host boots over the entire lifespan.</span><br /> diff --git a/fixtures/Kernel.Score.HTML.expected b/fixtures/Kernel.Score.HTML.expected index 0aaa7ee..fcf8e3c 100644 --- a/fixtures/Kernel.Score.HTML.expected +++ b/fixtures/Kernel.Score.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Score's by Kernel</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Score's by Kernel</h1><br /> <br /> <span class="quote">Score is calculated by combining all other metrics.</span><br /> diff --git a/fixtures/Kernel.Uptime.HTML.expected b/fixtures/Kernel.Uptime.HTML.expected index 84b1691..a374352 100644 --- a/fixtures/Kernel.Uptime.HTML.expected +++ b/fixtures/Kernel.Uptime.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Uptime's by Kernel</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Uptime's by Kernel</h1><br /> <br /> <span class="quote">Uptime is the total uptime of a host over the entire lifespan.</span><br /> diff --git a/fixtures/KernelMajor.Boots.HTML.expected b/fixtures/KernelMajor.Boots.HTML.expected index d639641..55e626a 100644 --- a/fixtures/KernelMajor.Boots.HTML.expected +++ b/fixtures/KernelMajor.Boots.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Boots's by KernelMajor</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Boots's by KernelMajor</h1><br /> <br /> <span class="quote">Boots is the total number of host boots over the entire lifespan.</span><br /> diff --git a/fixtures/KernelMajor.Score.HTML.expected b/fixtures/KernelMajor.Score.HTML.expected index fc5362c..ab5b6a6 100644 --- a/fixtures/KernelMajor.Score.HTML.expected +++ b/fixtures/KernelMajor.Score.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Score's by KernelMajor</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Score's by KernelMajor</h1><br /> <br /> <span class="quote">Score is calculated by combining all other metrics.</span><br /> diff --git a/fixtures/KernelMajor.Uptime.HTML.expected b/fixtures/KernelMajor.Uptime.HTML.expected index 6608613..dd08ee3 100644 --- a/fixtures/KernelMajor.Uptime.HTML.expected +++ b/fixtures/KernelMajor.Uptime.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Uptime's by KernelMajor</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Uptime's by KernelMajor</h1><br /> <br /> <span class="quote">Uptime is the total uptime of a host over the entire lifespan.</span><br /> diff --git a/fixtures/KernelName.Boots.HTML.expected b/fixtures/KernelName.Boots.HTML.expected index 37c38a1..6685f18 100644 --- a/fixtures/KernelName.Boots.HTML.expected +++ b/fixtures/KernelName.Boots.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Boots's by KernelName</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Boots's by KernelName</h1><br /> <br /> <span class="quote">Boots is the total number of host boots over the entire lifespan.</span><br /> diff --git a/fixtures/KernelName.Score.HTML.expected b/fixtures/KernelName.Score.HTML.expected index eae7811..1f1a665 100644 --- a/fixtures/KernelName.Score.HTML.expected +++ b/fixtures/KernelName.Score.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Score's by KernelName</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Score's by KernelName</h1><br /> <br /> <span class="quote">Score is calculated by combining all other metrics.</span><br /> diff --git a/fixtures/KernelName.Uptime.HTML.expected b/fixtures/KernelName.Uptime.HTML.expected index 2c0bcf4..345b33f 100644 --- a/fixtures/KernelName.Uptime.HTML.expected +++ b/fixtures/KernelName.Uptime.HTML.expected @@ -7,9 +7,6 @@ <title>Top 3 Uptime's by KernelName</title> </head> <body> -<p class="header"> -<a href="/">Dashboard</a> | <a href="https://foo.zone">foo.zone</a> | <a class="textlink" href="/report?OutputFormat=HTML&limit=3">Report API</a> -</p> <h1 style="display: inline">Top 3 Uptime's by KernelName</h1><br /> <br /> <span class="quote">Uptime is the total uptime of a host over the entire lifespan.</span><br /> diff --git a/internal/goprecords/report_format.go b/internal/goprecords/report_format.go index eb2c49c..7630564 100644 --- a/internal/goprecords/report_format.go +++ b/internal/goprecords/report_format.go @@ -48,12 +48,7 @@ func (r reportBuilder) formatReportHTML(rows []tableRow, hasLastKernel bool) str b.WriteString("<link rel=\"shortcut icon\" type=\"image/gif\" href=\"https://foo.zone/favicon.ico\" />\n") b.WriteString("<link rel=\"stylesheet\" href=\"https://foo.zone/style.css\" />\n<title>") b.WriteString(template.HTMLEscapeString(title)) - b.WriteString("</title>\n</head>\n<body>\n") - b.WriteString("<p class=\"header\">\n") - b.WriteString("<a href=\"/\">Dashboard</a> | <a href=\"https://foo.zone\">foo.zone</a> | ") - b.WriteString("<a class=\"textlink\" href=\"/report?OutputFormat=HTML&limit=") - b.WriteString(strconv.FormatUint(uint64(r.limit), 10)) - b.WriteString("\">Report API</a>\n</p>\n<h") + b.WriteString("</title>\n</head>\n<body>\n<h") b.WriteString(strconv.Itoa(hl)) b.WriteString(" style=\"display: inline\">") b.WriteString(template.HTMLEscapeString(title)) diff --git a/internal/version/version.go b/internal/version/version.go index 371f9d1..8102711 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -1,4 +1,4 @@ package version // Tag is the application release version. -const Tag = "0.4.0" +const Tag = "0.4.1" |
