aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2025-04-27 14:02:53 -0400
committerXe Iaso <me@xeiaso.net>2025-04-27 14:05:04 -0400
commit1d9fa34fa84cc125c68ab486d8bbc2dbe7a51f0e (patch)
tree806543b40d615e1bf57d4a83fdba88bb8008e088
parent10e176a023ee1a4955160c86f0dc71a435bdf866 (diff)
downloadx-1d9fa34fa84cc125c68ab486d8bbc2dbe7a51f0e.tar.xz
x-1d9fa34fa84cc125c68ab486d8bbc2dbe7a51f0e.zip
feat(httpdebug): quiet mode and function as a systemd service
Signed-off-by: Xe Iaso <me@xeiaso.net>
-rw-r--r--cmd/httpdebug/httpdebug.env0
-rw-r--r--cmd/httpdebug/httpdebug.service13
-rw-r--r--cmd/httpdebug/main.go11
-rw-r--r--yeetfile.js26
4 files changed, 47 insertions, 3 deletions
diff --git a/cmd/httpdebug/httpdebug.env b/cmd/httpdebug/httpdebug.env
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/cmd/httpdebug/httpdebug.env
diff --git a/cmd/httpdebug/httpdebug.service b/cmd/httpdebug/httpdebug.service
new file mode 100644
index 0000000..01cf9af
--- /dev/null
+++ b/cmd/httpdebug/httpdebug.service
@@ -0,0 +1,13 @@
+[Unit]
+Description="http debugger"
+
+[Service]
+ExecStart=/usr/bin/httpdebug
+Restart=always
+RestartSec=30s
+EnvironmentFile=/etc/within.website/x/httpdebug.env
+LimitNOFILE=infinity
+DynamicUser=true
+
+[Install]
+WantedBy=multi-user.target \ No newline at end of file
diff --git a/cmd/httpdebug/main.go b/cmd/httpdebug/main.go
index 8162bc2..15943b7 100644
--- a/cmd/httpdebug/main.go
+++ b/cmd/httpdebug/main.go
@@ -14,7 +14,8 @@ import (
)
var (
- bind = flag.String("bind", ":3000", "TCP port to bind to")
+ bind = flag.String("bind", ":3000", "TCP port to bind to")
+ silent = flag.Bool("silent", false, "if set, don't log http headers")
)
func main() {
@@ -34,8 +35,12 @@ func main() {
fmt.Fprint(w, "<pre id=\"main\"><code>")
}
- fmt.Println("---")
- r.Write(io.MultiWriter(w, os.Stdout))
+ if !*silent {
+ fmt.Println("---")
+ r.Header.Write(io.MultiWriter(w, os.Stdout))
+ } else {
+ r.Header.Write(w)
+ }
if contains {
fmt.Fprintln(w, "</pre></code>")
diff --git a/yeetfile.js b/yeetfile.js
index 946e764..87fa4c7 100644
--- a/yeetfile.js
+++ b/yeetfile.js
@@ -28,6 +28,32 @@ const pkgs = [];
[deb, rpm].forEach((method) => {
pkgs.push(
method.build({
+ name: "httpdebug",
+ description: "HTTP protocol debugger",
+ homepage: "https://within.website",
+ license: "CC0",
+ goarch,
+
+ documentation: {
+ LICENSE: "LICENSE",
+ },
+
+ configFiles: {
+ "cmd/httpdebug/httpdebug.env": "/etc/within.website/x/httpdebug.env",
+ },
+
+ build: ({ bin, systemd }) => {
+ $`go build -o ${bin}/httpdebug -ldflags '-s -w -extldflags "-static" -X "within.website/x.Version=${git.tag()}"' ./cmd/httpdebug`;
+ file.install(
+ "./cmd/httpdebug/httpdebug.service",
+ `${systemd}/httpdebug.service`,
+ );
+ },
+ }),
+ );
+
+ pkgs.push(
+ method.build({
name: "ingressd",
description: "ingress for my homelab",
homepage: "https://within.website",