# eBook Library (Go + templ) Minimalistische eBook-Bibliothek für den Tolino-Webbrowser. ## Features (MVP) - Listet EPUB/PDF-Dateien aus `books/` - Detailseite pro Buch - Download-Link pro Buch (für Tolino) - Schlichtes, kontrastreiches UI ohne JavaScript-Abhängigkeit - Login-Pflicht (Session-Cookie, 30 Tage) - Optionaler Buch-Upload für berechtigte Benutzer ## Voraussetzungen - Go 1.22+ - [templ](https://github.com/a-h/templ) Templ CLI installieren: ```bash go install github.com/a-h/templ/cmd/templ@latest ``` ## Start 1. Abhängigkeiten laden: ```bash go mod tidy ``` 2. Templates generieren: ```bash templ generate ``` 3. Ersten Benutzer anlegen: ```bash go run ./cmd/admin user add # mit Upload-Recht: go run ./cmd/admin user add --upload ``` 4. Server starten: ```bash go run ./cmd/server ``` 5. Browser öffnen: - `http://localhost:8080` ## Bücher hinzufügen Lege deine Dateien in den Ordner `books/`: - `.epub` (bevorzugt) - `.pdf` (optional) Alternativ können Benutzer mit Upload-Recht Bücher direkt im Browser hochladen. ## Benutzerverwaltung (CLI) Rollen (aufsteigend): `reader` → `uploader` → `admin` ```bash go run ./cmd/admin user add [--role reader|uploader|admin] go run ./cmd/admin user list go run ./cmd/admin user delete go run ./cmd/admin user set-role ``` ## Konfiguration Umgebungsvariablen: | Variable | Standard | Beschreibung | |------------|------------|---------------------------------| | `ADDR` | `:8080` | Listen-Adresse des Servers | | `BOOKS_DIR`| `books` | Verzeichnis mit Büchern | | `USERS_DB` | `users.db` | Pfad zur SQLite-Benutzerdatenbank |