From 13c2f9cffa624fdf498f3b61fab9d809b92e026e Mon Sep 17 00:00:00 2001 From: bndw Date: Sun, 28 Dec 2025 09:21:08 -0800 Subject: init --- internal/templates/templates.go | 82 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 internal/templates/templates.go (limited to 'internal/templates/templates.go') diff --git a/internal/templates/templates.go b/internal/templates/templates.go new file mode 100644 index 0000000..d90163d --- /dev/null +++ b/internal/templates/templates.go @@ -0,0 +1,82 @@ +package templates + +import ( + "bytes" + "text/template" +) + +var serviceTemplate = `[Unit] +Description={{.Name}} +After=network.target + +[Service] +Type=simple +User={{.User}} +WorkingDirectory={{.WorkDir}} +EnvironmentFile={{.EnvFile}} +ExecStart={{.BinaryPath}} --port={{.Port}} +Restart=always +RestartSec=5s +NoNewPrivileges=true +PrivateTmp=true + +[Install] +WantedBy=multi-user.target +` + +var appCaddyTemplate = `{{.Domain}} { + reverse_proxy 127.0.0.1:{{.Port}} +} +` + +var staticCaddyTemplate = `{{.Domain}} { + root * {{.RootDir}} + file_server + encode gzip +} +` + +// SystemdService generates a systemd service unit file +func SystemdService(data map[string]string) (string, error) { + tmpl, err := template.New("service").Parse(serviceTemplate) + if err != nil { + return "", err + } + + var buf bytes.Buffer + if err := tmpl.Execute(&buf, data); err != nil { + return "", err + } + + return buf.String(), nil +} + +// AppCaddy generates a Caddy config for a Go app +func AppCaddy(data map[string]string) (string, error) { + tmpl, err := template.New("caddy").Parse(appCaddyTemplate) + if err != nil { + return "", err + } + + var buf bytes.Buffer + if err := tmpl.Execute(&buf, data); err != nil { + return "", err + } + + return buf.String(), nil +} + +// StaticCaddy generates a Caddy config for a static site +func StaticCaddy(data map[string]string) (string, error) { + tmpl, err := template.New("caddy").Parse(staticCaddyTemplate) + if err != nil { + return "", err + } + + var buf bytes.Buffer + if err := tmpl.Execute(&buf, data); err != nil { + return "", err + } + + return buf.String(), nil +} -- cgit v1.2.3