Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blei-Log

Ein Logbuch und Rechner für die Blei-/Gewichtskonfiguration beim Tauchen. Halte fest, mit welcher Ausrüstung du welchen Bleibedarf hattest — und lass dir für neue Kombinationen den Bedarf schätzen.

Features

  • Tauch-Logbuch — Einträge mit Flasche, Anzug, Unterzieher, Jacket, Wasser (Süß/Salz), Ort, Blei (kg) und Notizen.
  • Blei-Rechner — schätzt den Bleibedarf für jede Kombination (auch nie getauchte) und lernt aus deinen Einträgen den Beitrag jedes Ausrüstungs­teils. Plus physikbasierte Erst-Einschätzung für den Kaltstart.
  • Ausrüstungsverwaltung — sortierbare Tabelle nach Kategorien, mit Auftriebs-/Leergewichts-/Volumen-Angaben und Tank-Auftriebsberechnung.
  • Öffentliche Profile — teile deine Konfigurationen optional öffentlich.
  • Benutzerkonten — Registrierung/Login (JWT), Self-Service-Passwort-Reset per E-Mail (optional via SMTP) sowie Admin-Reset.
  • Admin-Bereich — Nutzerverwaltung (aktivieren/deaktivieren, löschen, Passwort zurücksetzen). Der erste registrierte Nutzer wird automatisch Admin.
  • PWA — installierbar, mit Offline-Manifest und Service Worker.

Technik

  • Backend: Node.js / Express, JWT-Auth, bcrypt, Rate-Limiting, Input-Sanitizing
  • Datenbank: PostgreSQL
  • Frontend: Vanilla HTML/CSS/JS (keine Build-Kette)
  • Reverse Proxy: nginx (liefert Frontend, proxyt /api)
  • Deployment: Docker Compose

Schnellstart

Voraussetzung: Docker und Docker Compose.

git clone https://github.com/etlami/bleilog.git
cd bleilog

# Secrets setzen (nicht committen — .env ist in .gitignore)
cat > .env <<'EOF'
DB_PASSWORD=<starkes-passwort>
JWT_SECRET=<langes-zufälliges-secret>
EOF

docker compose up -d --build

Danach ist die App unter http://localhost erreichbar. Der erste registrierte Account wird automatisch zum Admin.

Konfiguration

Konfiguriert wird über Umgebungsvariablen (siehe docker-compose.yml):

Variable Pflicht Zweck
DB_PASSWORD ja Passwort der PostgreSQL-Datenbank
JWT_SECRET ja Signaturschlüssel für JWTs (Server startet ohne nicht)
CORS_ORIGIN nein Cross-Origin-API-Zugriff auf einen Host beschränken
APP_URL nein Basis-URL für Passwort-Reset-Links
SMTP_HOST, SMTP_PORT, SMTP_SECURE, SMTP_USER, SMTP_PASS, SMTP_FROM nein SMTP für Self-Service-Passwort-Reset. Ohne SMTP_HOST ist nur der Admin-Reset aktiv.

TLS: In nginx/nginx.conf ist ein HTTPS-Serverblock vorbereitet (auskommentiert). Zertifikate z. B. via certbot erzeugen und unter nginx/certs/ ablegen.

Lizenz

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages