{"id":49091328,"url":"https://github.com/astrapi69/bibliogon","last_synced_at":"2026-05-16T08:18:07.914Z","repository":{"id":347032707,"uuid":"1191550436","full_name":"astrapi69/bibliogon","owner":"astrapi69","description":"Open-source book authoring platform. Web-UI with WYSIWYG and Markdown editing (TipTap), EPUB/PDF export via Pandoc. Generates write-book-template project structures. Built with FastAPI, React, TypeScript, SQLite. Designed for authors and self-publishers. Open Source with SaaS potential.","archived":false,"fork":false,"pushed_at":"2026-04-17T17:12:37.000Z","size":4488,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-17T17:26:06.959Z","etag":null,"topics":["authoring-tool","book-template","book-writing","epub","fastapi","kindle-publishing","markdown-editor","open-source","pandoc","pdf-generation","react","self-publishing","tiptap","typescript","wysiwyg-editor"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astrapi69.png","metadata":{"files":{"readme":"README-de.md","changelog":"CHANGELOG-v0.13.0.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-25T11:02:16.000Z","updated_at":"2026-04-17T17:12:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/astrapi69/bibliogon","commit_stats":null,"previous_names":["astrapi69/bibliogon"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/astrapi69/bibliogon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrapi69%2Fbibliogon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrapi69%2Fbibliogon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrapi69%2Fbibliogon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrapi69%2Fbibliogon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astrapi69","download_url":"https://codeload.github.com/astrapi69/bibliogon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astrapi69%2Fbibliogon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32061251,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authoring-tool","book-template","book-writing","epub","fastapi","kindle-publishing","markdown-editor","open-source","pandoc","pdf-generation","react","self-publishing","tiptap","typescript","wysiwyg-editor"],"created_at":"2026-04-20T19:00:28.150Z","updated_at":"2026-05-16T08:18:07.908Z","avatar_url":"https://github.com/astrapi69.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bibliogon\n\nOpen-Source-Toolkit für Self-Publishing-Autorinnen und -Autoren. Bücher, Artikel und Multi-Plattform-Content-Workflows. Offline-zuerst, Plugin-basiert, EPUB- / PDF- / Hörbuch-Export.\n\nAufgebaut auf [PluginForge](https://github.com/astrapi69/pluginforge), einem wiederverwendbaren Plugin-Framework auf Basis von [pluggy](https://pluggy.readthedocs.io/).\n\n[![Lizenz: MIT](https://img.shields.io/badge/Lizenz-MIT-yellow.svg)](LICENSE)\n\n**[Dokumentation](https://astrapi69.github.io/bibliogon/)** | **[Issues](https://github.com/astrapi69/bibliogon/issues)** | Aktuelle Version: **v0.29.0**\n\n## Funktionen\n\n- WYSIWYG- und Markdown-Editor (TipTap mit 15 offiziellen + 1 Community-Erweiterung, 24 Toolbar-Buttons)\n- Komplette Buchstruktur mit Kapiteltypen für jeden Abschnitt (Vorwort, Geleitwort, Prolog, Widmung, Teil, Epilog, Nachwort, Index, Auch vom Autor, Leseprobe, Call to Action, ...)\n- Genre-Katalog für Roman, Sachbuch, Fachbuch, Biografie, Lyrik, Kinderbuch, Fantasy, Thriller, Liebesroman, Kochbuch, Reise und mehr\n- Drag-and-Drop-Kapitelreihenfolge mit klappbaren Abschnitten\n- EPUB-, PDF-, Word-, HTML-, Markdown-Export über [manuscripta](https://github.com/astrapi69/manuscripta)\n- Hörbuch-Erzeugung mit 5 TTS-Engines (Edge TTS, Google Cloud TTS, Google Translate, pyttsx3, ElevenLabs)\n- Content-Hash-Cache: unveränderte Kapitel werden nicht neu erzeugt (spart Geld bei kostenpflichtigen Engines)\n- Kostenschätzung und Ersparnis-Tracking für kostenpflichtige TTS-Engines\n- Dry-Run-Modus: Probehören vor dem vollständigen Export\n- Persistente Hörbuch-Speicherung mit Pro-Kapitel- und Gesamt-Downloads\n- Voll-Backup und -Restore (.bgb) inkl. Bilder und optional Hörbuch-Dateien\n- Buch-Metadaten: ISBN, ASIN, Verlag, Keywords, Cover, Custom CSS\n- In-App-Hilfe mit Markdown-Rendering, Suche und kontextsensitiven Links\n- Multi-Provider-KI-Assistent (Anthropic, OpenAI, Gemini, Mistral, LM Studio) für Kapitel-Review, Marketing-Texte und kontextbewusste Vorschläge\n- Plugin-System mit ZIP-Installation für Drittanbieter-Plugins\n- Verschlüsselte Anmeldedaten-Ablage (Fernet) für API-Keys und Service-Account-Dateien\n- 6 Themes (Warm Literary, Cool Modern, Nord, Classic, Studio, Notebook) x Hell/Dunkel\n- i18n: Deutsch, Englisch, Spanisch, Französisch, Griechisch, Portugiesisch, Türkisch, Japanisch\n- Responsives Layout mit Hamburger-Menü auf Mobilgeräten\n\n## Artikel-Autorenschaft (Phase 2 - beta)\n\nNeben Büchern unterstützt Bibliogon Artikel-Autorenschaft mit Multi-Plattform-Publikations-Tracking.\n\n- Dedizierter Artikel-Editor mit TipTap (getrennt vom Buch-Editor, Einzeldokument, ohne Kapitel-Sidebar)\n- Artikel-Metadaten: Thema (einstellungsverwaltet), SEO-Titel / -Beschreibung, Tags, Auszug, kanonische URL, Featured Image\n- Pro-Plattform-Publikations-Tracking (Medium, Substack, X, LinkedIn, dev.to, Mastodon, Bluesky, custom)\n- Drift-Erkennung: der Editor markiert nicht-synchronisierte Publikationen, wenn der Artikel-Inhalt nach der Veröffentlichung geändert wurde; eine \"Live bestätigen\"-Aktion setzt den Vergleich zurück\n- Promo-Posts als Publications mit `is_promo`-Flag (kurze Begleitbeiträge, die auf eine Hauptpublikation verlinken)\n- Manueller Publikations-Workflow - noch keine Plattform-API-Integration (Phase-3-Scope)\n\n## Git-Sync für Bücher\n\nBücher können mit externen Git-Repositories synchronisiert werden - für Kollaboration, Backup und Versionskontrolle.\n\n- **Import:** Klonen eines öffentlichen Git-Repos mit einem Buch im WBT-Layout\n- **Commit + Push:** Buchänderungen via SSH-Agent, System-Credential-Helper oder pro-Buch-PAT zurück ins Repo schreiben\n- **Smart-Merge:** Drei-Wege-Diff mit Konfliktlösungs-UI pro Kapitel, wenn Kapitel sowohl lokal als auch remote bearbeitet wurden\n- **Mehrsprachig:** Repos mit `main-XX`-Branches (z.B. `main-de`, `main-fr`) werden über `Book.translation_group_id` als verknüpfte Übersetzungen importiert\n- **Core-Git-Brücke:** Ein Commit fließt sowohl in die Core-Git-Historie als auch in das plugin-git-sync-Subsystem (unter einem Pro-Buch-Lock)\n\nAlle drei Credential-Pfade lassen sich im Git-Backup-Dialog konfigurieren: SSH-Agent, System-Credential-Helper und Pro-Buch-PAT-Eingabe (verschlüsselt gespeichert, nie im Klartext zurückgegeben).\n\n## Multi-Buch-Backup-Import\n\n`.bgb`-Backup-Dateien mit mehreren Büchern lassen sich mit Pro-Buch-Auswahl (Standard: alle ausgewählt) und Pro-Buch-Duplikatserkennung importieren. Der Import-Wizard verwendet eine XState-v5-State-Machine für den Mehrschritt-Flow mit Einzel- und Mehrbuch-Zweigen sowie einer gemeinsamen Error-Boundary, die im Fehlerfall Details meldet und ein GitHub-Issue öffnet.\n\n## Installation und Start\n\n### Voraussetzungen\n\n- [Docker](https://docs.docker.com/get-docker/) (Docker Desktop oder Docker Engine mit Compose)\n\n### One-Liner\n\n**Linux / macOS:**\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/astrapi69/bibliogon/main/install.sh | bash\n```\n\n**Windows (PowerShell):**\n\n```powershell\nirm https://raw.githubusercontent.com/astrapi69/bibliogon/main/install.ps1 | iex\n```\n\nBeides lädt Bibliogon nach `~/bibliogon` (Linux/macOS) bzw. `%USERPROFILE%\\bibliogon` (Windows), baut die Docker-Images und startet die App auf **http://localhost:7880**.\n\n### Doppelklick-Installation (ohne Terminal)\n\nNach dem Klonen oder Herunterladen des Repos den Wrapper für dein Betriebssystem doppelklicken:\n\n| Plattform | Datei | Hinweise |\n|---|---|---|\n| macOS | `install.command` | Finder behandelt `.command` als ausführbar; beim ersten Start fragt Gatekeeper ggf. nach — Rechtsklick \u003e Öffnen umgeht das |\n| Windows | `install.cmd` | Wrapper um `install.ps1` mit `-ExecutionPolicy Bypass`, damit Firmen-Windows mit per Group Policy gesperrter ExecutionPolicy den Installer trotzdem starten kann |\n| Linux | `bash install.sh` | Kein extra Wrapper nötig |\n\n### Manuelle Installation\n\n```bash\ngit clone https://github.com/astrapi69/bibliogon.git\ncd bibliogon\n./start.sh\n```\n\n### Stop / Start / Deinstallation\n\n```bash\ncd ~/bibliogon \u0026\u0026 ./stop.sh                                  # Stop\ncd ~/bibliogon \u0026\u0026 ./start.sh                                  # Erneut starten\ncd ~/bibliogon \u0026\u0026 ./stop.sh \u0026\u0026 cd ~ \u0026\u0026 rm -rf ~/bibliogon    # Deinstallation\n```\n\n### Logs ansehen\n\n```bash\ndocker compose -f docker-compose.prod.yml logs -f\n```\n\n## Entwicklung\n\n```bash\nmake install    # Alle Abhaengigkeiten installieren (Poetry, npm, Plugins)\nmake dev        # Backend (8000) + Frontend (5173) parallel starten\nmake test       # Alle Tests ausfuehren (Backend + Plugins + Frontend)\n```\n\nVollständige Entwicklungsdokumentation siehe [CLAUDE.md](CLAUDE.md).\n\n## Dokumentation\n\nDie Dokumentation liegt in zwei Formen vor:\n\n- **In-App:** Klick auf das Hilfe-Icon in der Navigationsleiste öffnet das Slide-Over-Hilfe-Panel mit Suche, Navigationsbaum und Markdown-Rendering.\n- **Online:** [astrapi69.github.io/bibliogon](https://astrapi69.github.io/bibliogon/) - MkDocs-Material-Site mit Volltextsuche, Hell-/Dunkel-Modus und i18n.\n\nBeide lesen aus denselben Markdown-Dateien in `docs/help/`. Die Doku lokal bauen:\n\n```bash\nmake docs-install   # MkDocs-Abhaengigkeiten installieren (eigenes venv)\nmake docs-serve     # Servieren auf http://localhost:8000 mit Hot-Reload\n```\n\n## Architektur\n\n```\nBrowser --\u003e nginx (statische Dateien + /api-Proxy) --\u003e FastAPI (uvicorn)\n                                                          |\n                                                    PluginForge\n                                                          |\n                                +----------+----------+----------+\n                                |          |          |          |\n                             Export     Help    Audiobook      ...\n```\n\n- **Frontend:** React 18, TypeScript, TipTap, Vite, Radix UI, @dnd-kit, react-markdown\n- **Backend:** FastAPI, SQLAlchemy, SQLite, Pydantic v2\n- **Plugins:** PluginForge (PyPI), pluggy-basiert, YAML-konfiguriert\n- **Export:** manuscripta ^0.9.0 (PyPI), Pandoc, [write-book-template](https://github.com/astrapi69/write-book-template)\n- **TTS:** manuscripta-Adapterschicht mit 5 Engines (Edge TTS, Google Cloud, gTTS, pyttsx3, ElevenLabs)\n\n## Plugins\n\n| Plugin | Lizenz | Beschreibung |\n|--------|--------|--------------|\n| export | MIT | EPUB, PDF, Word, HTML, Markdown, Project-ZIP |\n| help | MIT | In-App-Hilfe-Panel mit Doku, Suche, Tastenkürzeln |\n| getstarted | MIT | Onboarding-Guide, Beispielbuch |\n| ms-tools | MIT | Stilprüfungen, Sanitization, Textmetriken |\n| audiobook | MIT | TTS-Hörbuch-Erzeugung (5 Engines) |\n| translation | MIT | DeepL- / LMStudio-Übersetzung |\n| grammar | MIT | LanguageTool-Grammatikprüfung |\n| kinderbuch | MIT | Kinderbuch-Seitenlayout |\n| kdp | MIT | Amazon-KDP-Metadaten, Cover-Validierung |\n| git-sync | MIT | Buch-als-Git-Repo: Import, Commit, Smart-Merge, Mehrsprachen-Verknüpfung |\n\nDrittanbieter-Plugins lassen sich als ZIP-Dateien über Einstellungen \u003e Plugins installieren.\n\n## Konfiguration\n\nUmgebungsvariablen (in `.env` setzen):\n\n| Variable | Standard | Beschreibung |\n|----------|----------|--------------|\n| `BIBLIOGON_PORT` | 7880 | Port der Web-App |\n| `BIBLIOGON_DEBUG` | false | Debug-Modus (aktiviert Test-Endpoints, API-Docs) |\n| `BIBLIOGON_SECRET_KEY` | (generiert) | Geheimnis für Lizenz-Validierung |\n| `BIBLIOGON_CREDENTIALS_SECRET` | (generiert) | Geheimnis zur Verschlüsselung von API-Keys und Service-Account-Dateien |\n| `BIBLIOGON_CORS_ORIGINS` | localhost:7880 | Erlaubte CORS-Origins |\n| `BIBLIOGON_DATA_DIR` | platformdirs-Standard | Wurzelverzeichnis für Laufzeitdaten (DB, Uploads). Linux/macOS: `~/.local/share/bibliogon/`. Windows: `%LOCALAPPDATA%\\bibliogon\\`. Docker: `/app/data` |\n| `BIBLIOGON_DB_PATH` | (wird nicht mehr berücksichtigt) | **Entfernt in v0.30.0** (DEP-DBPATH-01 Schritt 3). Die Variable hat keine Wirkung mehr auf die Pfad-Auflösung; ist sie weiterhin in der Umgebung gesetzt, wird beim Start eine einzelne Warnung mit dem ignorierten Wert geloggt. Stattdessen `BIBLIOGON_DATA_DIR` setzen — die Datenbank liegt dann unter `\u003cBIBLIOGON_DATA_DIR\u003e/bibliogon.db`. Verwerfungszyklus: Warnung v0.27.0, Präzedenz-Flip v0.28.0, Entfernung v0.30.0. |\n\n## Verwandte Projekte\n\n- [pluginforge](https://github.com/astrapi69/pluginforge) - Plugin-Framework (PyPI)\n- [manuscripta](https://github.com/astrapi69/manuscripta) - Buch-Export-Pipeline mit TTS-Adapterschicht (PyPI)\n- [write-book-template](https://github.com/astrapi69/write-book-template) - Zielverzeichnisstruktur für den Export\n\n## Lizenz\n\nBibliogon wird unter der [MIT-Lizenz](LICENSE) veröffentlicht.\nAlle Plugins sind kostenlos und Open Source.\n\n## Sicherheitsrichtlinie\n\nSiehe [SECURITY.md](SECURITY.md) für den verantwortungsvollen\nMeldeprozess bei Sicherheitsproblemen.\n\n## Verhaltenskodex\n\nDieses Projekt folgt dem [Contributor Covenant 2.1](CODE_OF_CONDUCT.md).\nMeldungen gehen an asterios.raptis@web.de.\n\n## Mitwirken\n\nSiehe [CONTRIBUTING.md](CONTRIBUTING.md) für Einrichtung, Workflow und Erwartungen.\n\n## Issue-Vorlagen\n\nVerwenden Sie die passende Vorlage beim Erstellen eines neuen Issues:\n- [Fehlerbericht](.github/ISSUE_TEMPLATE/bug_report.yml)\n- [Funktionswunsch](.github/ISSUE_TEMPLATE/feature_request.yml)\n- [Frage](.github/ISSUE_TEMPLATE/question.yml)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrapi69%2Fbibliogon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastrapi69%2Fbibliogon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrapi69%2Fbibliogon/lists"}