Eine elegante und performante Web-Anwendung zum Erstellen, Verwalten und Anzeigen von persönlichen Countdowns zu wichtigen Ereignissen. Geschrieben in Go (Golang) mit einem reinen Vanilla JavaScript Frontend.
- Sichere Benutzerverwaltung: Registrierung und Login mit Passwort-Hashing (bcrypt).
- Persistente Sessions: Benutzer bleiben über Cookies eingeloggt und können sich ausloggen.
- Dynamisches Frontend: Countdowns werden in Echtzeit vom Backend geladen und dargestellt.
- Countdown Management: Benutzer können ihre eigenen Countdowns erstellen und wieder löschen.
- Live-Timer: Jeder Countdown zählt sekundengenau herunter.
- PWA-fähig: Die Anwendung kann als App auf dem Homescreen installiert werden und funktioniert dank Service Worker auch offline.
- Leichtgewichtig & Performant: Dank Go im Backend und minimalem JavaScript im Frontend extrem schnell.
- Backend: Go (Golang)
- Datenbank: SQLite
- Frontend: HTML5, CSS3, Vanilla JavaScript (keine Frameworks)
- Deployment: Läuft als systemdService in einem LXC-Container.
- 
System vorbereiten und Go installieren: apt update && apt upgrade -y apt install golang sqlite3 git -y
- 
Repository klonen: git clone [https://github.com/xdnixlos/countdown.git](https://github.com/xdnixlos/countdown.git) /opt/countdown-app cd /opt/countdown-app
- 
Go-Module herunterladen: go mod tidy 
- 
Anwendung kompilieren: go build -o countdown-server .
- 
Berechtigungen setzen: chown -R root:www-data /opt/countdown-app chmod -R 775 /opt/countdown-app 
- 
systemdService einrichten:- Erstelle die Datei /etc/systemd/system/countdown.servicemit folgendem Inhalt:[Unit] Description=Countdown Web Application Service After=network.target [Service] Group=www-data WorkingDirectory=/opt/countdown-app ExecStart=/opt/countdown-app/countdown-server Restart=always [Install] WantedBy=multi-user.target 
 
- Erstelle die Datei 
- 
Service starten und aktivieren: systemctl daemon-reload systemctl start countdown.service systemctl enable countdown.service
Die Anwendung läuft jetzt im Hintergrund auf Port 8080.
