security: MIT-Lizenz, .gitignore härten, Fail-Fast für SESSION_SECRET

- LICENSE: MIT-Lizenz (bereits vorhanden, korrekt)
- package.json: "license": "MIT" ergänzt
- README.md: Lizenz-Badge auf MIT aktualisiert, Lizenz-Sektion angepasst
- .gitignore: .claude/ und *.txt hinzugefügt (verhindert versehentliches
  Committen von Claude Code Einstellungen und Token-Textdateien)
- server/auth.js: Fail-Fast in Produktion wenn SESSION_SECRET fehlt;
  Fallback-String auf 'dev-only-secret-not-for-production' umbenannt
  (klarere Intention, kein bekannter Produktions-Wert im Public Repo)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ulsklyc
2026-03-24 23:01:08 +01:00
parent 72d6d5126e
commit 0dac77773a
4 changed files with 14 additions and 3 deletions
+6
View File
@@ -26,3 +26,9 @@ dist/
.idea/ .idea/
*.swp *.swp
*.swo *.swo
# Claude Code (enthält lokale Berechtigungen und ggf. Tokens)
.claude/
# Textdateien mit Tokens/Keys (Sicherheitsnetz)
*.txt
+2 -2
View File
@@ -8,7 +8,7 @@
[![Docker](https://img.shields.io/badge/Docker-ready-2496ED?logo=docker&logoColor=white)](https://www.docker.com) [![Docker](https://img.shields.io/badge/Docker-ready-2496ED?logo=docker&logoColor=white)](https://www.docker.com)
[![SQLite](https://img.shields.io/badge/SQLite-SQLCipher%20verschlüsselt-003B57?logo=sqlite&logoColor=white)](https://www.zetetic.net/sqlcipher/) [![SQLite](https://img.shields.io/badge/SQLite-SQLCipher%20verschlüsselt-003B57?logo=sqlite&logoColor=white)](https://www.zetetic.net/sqlcipher/)
[![PWA](https://img.shields.io/badge/PWA-offline--fähig-5A0FC8?logo=pwa&logoColor=white)](https://web.dev/progressive-web-apps/) [![PWA](https://img.shields.io/badge/PWA-offline--fähig-5A0FC8?logo=pwa&logoColor=white)](https://web.dev/progressive-web-apps/)
[![Lizenz](https://img.shields.io/badge/Lizenz-privat-lightgrey)](./LICENSE) [![Lizenz: MIT](https://img.shields.io/badge/Lizenz-MIT-yellow.svg)](./LICENSE)
Alle Daten bleiben auf deinem eigenen Server. Alle Daten bleiben auf deinem eigenen Server.
Kein Cloud-Zwang. Keine Datenweitergabe. Kein Tracking. Kein Cloud-Zwang. Keine Datenweitergabe. Kein Tracking.
@@ -284,4 +284,4 @@ docker compose up -d
## Lizenz ## Lizenz
Privates Projekt — nicht für den öffentlichen Einsatz lizenziert. [MIT](./LICENSE) © 2025 ulsklyc
+1
View File
@@ -31,6 +31,7 @@
"googleapis": "^144.0.0", "googleapis": "^144.0.0",
"tsdav": "^2.0.10" "tsdav": "^2.0.10"
}, },
"license": "MIT",
"engines": { "engines": {
"node": ">=20.0.0" "node": ">=20.0.0"
} }
+5 -1
View File
@@ -31,9 +31,13 @@ const sessionStore = new SQLiteStore({
* Session-Middleware konfigurieren. * Session-Middleware konfigurieren.
* Wird in server/index.js eingebunden. * Wird in server/index.js eingebunden.
*/ */
if (process.env.NODE_ENV === 'production' && !process.env.SESSION_SECRET) {
throw new Error('[Auth] SESSION_SECRET muss in der .env gesetzt sein (Produktion).');
}
const sessionMiddleware = session({ const sessionMiddleware = session({
store: sessionStore, store: sessionStore,
secret: process.env.SESSION_SECRET || 'dev-secret-AENDERN-IN-PRODUKTION', secret: process.env.SESSION_SECRET || 'dev-only-secret-not-for-production',
resave: false, resave: false,
saveUninitialized: false, saveUninitialized: false,
name: 'oikos.sid', name: 'oikos.sid',