footer und AppVersion eingebaut
All checks were successful
Docker Release Build / push_to_registry (push) Successful in 1m2s

This commit is contained in:
Florian Walther
2026-02-07 16:45:02 +01:00
parent dd8eab7975
commit c9296beb5f
5 changed files with 55 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
iname: Docker Release Build
name: Docker Release Build
on:
push:
tags:
@@ -25,6 +25,8 @@ jobs:
push: true
# Hier wird die Git-Referenz automatisch als Docker-Tag genutzt
#tags: gitea.scu.si/florianwalther/password-generator:${{ gitea.ref_name }}
build-args: |
APP_VERSION=${{ gitea.ref_name }}
tags: |
gitea.scu.si/florian.walther/password-generator:${{ gitea.ref_name }}
gitea.scu.si/florian.walther/password-generator:latest

View File

@@ -8,7 +8,8 @@ WORKDIR /app
COPY . .
# Baue die Anwendung
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /app/password-generator
ARG APP_VERSION=dev
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w -X 'main.AppVersion=${APP_VERSION}'" -o /app/password-generator
# Verwende ein minimales Image für die finale Stage
FROM scratch

23
main.go
View File

@@ -12,12 +12,29 @@ const (
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
)
//var tmpl *template.Template
var templates = make(map[string]*template.Template)
var AppVersion = "development"
func loadTemplates() {
templates["index.html"] = template.Must(template.ParseFiles("templates/base.html", "templates/index.html"))
templates["help.html"] = template.Must(template.ParseFiles("templates/base.html", "templates/help.html"))
// 1. FuncMap definieren
funcMap := template.FuncMap{
"getAppVersion": func() string {
return AppVersion
},
}
// 2. Templates mit FuncMap laden
// Wir nutzen New("base.html"), da base.html meist das Haupt-Layout definiert
templates["index.html"] = template.Must(template.New("base.html").Funcs(funcMap).ParseFiles(
"templates/base.html",
"templates/index.html",
))
templates["help.html"] = template.Must(template.New("base.html").Funcs(funcMap).ParseFiles(
"templates/base.html",
"templates/help.html",
))
log.Printf("Alle Templates erfolgreich geladen")
}

View File

@@ -47,6 +47,33 @@ body {
position: relative;
}
footer {
/* Fixierung am unteren Rand */
position: fixed;
bottom: 0;
left: 0;
/* Ausdehnung */
width: 100%;
/* Design & Abstände */
background: var(--password-bg);
border-top: 1px solid #e0e0e0;
padding: 8px 16px;
/* Text-Ausrichtung */
text-align: left;
font-family: monospace; /* Monospace sieht für Versionen oft "technischer" aus */
font-size: 12px;
color: var(--text-color);
/* Sicherstellen, dass nichts drüber liegt */
z-index: 9999;
/* Padding in die Breite einrechnen */
box-sizing: border-box;
}
#password {
font-family: 'Courier New', Courier, monospace;
font-size: 1.2rem;

View File

@@ -45,5 +45,7 @@
<body>
<button id="theme-toggle">🌓</button>
{{ block "body" . }}{{end}}
<footer>Version: {{getAppVersion}} | made with golang and ♥️ {{ block "footer" . }}{{ end }}</footer>
</body>
</html>