OpenWebUI integration
This commit is contained in:
54
README.md
54
README.md
@@ -1,43 +1,33 @@
|
||||
# PodX - Offline Podcast + Docs Unified Search (Docker)
|
||||
# PodX - Offline Library with OpenWebUI export
|
||||
|
||||
## Repo-friendly secrets
|
||||
- Secrets live in **.env** at the repo root (NOT committed).
|
||||
- Commit **.env.example**. Users copy it to `.env` and fill in their values.
|
||||
- We also include **.gitignore** to keep `.env` and data paths out of git.
|
||||
|
||||
## Quick start
|
||||
```bash
|
||||
unzip homelab-podx.zip && cd homelab-podx
|
||||
cp .env.example .env # edit values (MEILI_MASTER_KEY, OPENWEBUI_API_KEY, etc.)
|
||||
docker compose up -d --build
|
||||
# Open the UI:
|
||||
# http://<your-host>:8088
|
||||
# UI: http://<host>:8088
|
||||
# Meili: http://<host>:7700
|
||||
```
|
||||
The worker reaches OpenWebUI at `$OPENWEBUI_URL` (default: http://host.docker.internal:3003).
|
||||
|
||||
Paste links to podcasts/video (YouTube, Rumble, direct MP3). Worker downloads with yt-dlp, transcribes locally with faster-whisper large-v3, stores media under library/, subtitles and transcripts under transcripts/, and indexes everything (plus your PDFs/EPUBs/Kiwix) in a single Meilisearch index: library.
|
||||
|
||||
### Ingest PDFs
|
||||
## Ingest helpers
|
||||
```bash
|
||||
MEILI_URL=http://localhost:7700 MEILI_KEY=devkey ./ingest/ingest_pdfs.sh /path/to/*.pdf
|
||||
MEILI_URL=http://localhost:7700 MEILI_KEY=$MEILI_MASTER_KEY ./ingest/ingest_pdfs.sh /path/*.pdf
|
||||
MEILI_URL=http://localhost:7700 MEILI_KEY=$MEILI_MASTER_KEY ./ingest/ingest_epub.py /path/*.epub
|
||||
MEILI_URL=http://localhost:7700 MEILI_KEY=$MEILI_MASTER_KEY ./ingest/ingest_kiwix.sh /path/wiki.zim
|
||||
```
|
||||
|
||||
### Ingest EPUBs
|
||||
|
||||
## Backfill existing files into OpenWebUI
|
||||
```bash
|
||||
pip install ebooklib beautifulsoup4 lxml requests
|
||||
MEILI_URL=http://localhost:7700 MEILI_KEY=devkey ./ingest/ingest_epub.py /path/to/*.epub
|
||||
# From repo root:
|
||||
./tools/backfill_openwebui.sh
|
||||
# Or include extra folders to scan:
|
||||
./tools/backfill_openwebui.sh /some/other/folder /another/folder
|
||||
```
|
||||
|
||||
### Ingest Kiwix ZIM
|
||||
Install zim-tools: apt-get install zim-tools or brew install zimtools
|
||||
```bash
|
||||
MEILI_URL=http://localhost:7700 MEILI_KEY=devkey ./ingest/ingest_kiwix.sh /path/to/wikipedia_en.zim
|
||||
```
|
||||
|
||||
### Optional: set Meilisearch settings
|
||||
```bash
|
||||
curl -X PATCH "http://localhost:7700/indexes/library/settings" -H "Authorization: Bearer devkey" -H "Content-Type: application/json" -d '{"searchableAttributes":["title","text","meta.book_author","meta.uploader","meta.chapter"],
|
||||
"displayedAttributes":["type","title","source","date","_formatted","meta"],
|
||||
"sortableAttributes":["date","type"],
|
||||
"filterableAttributes":["type"]}'
|
||||
```
|
||||
|
||||
### Plex
|
||||
Point Plex libraries at library/. Video podcasts will show .srt/.vtt subtitles automatically if basenames match.
|
||||
|
||||
### Notes
|
||||
- Accuracy-first: model large-v3 (English + Czech). Change via WHISPER_MODEL env var in docker-compose.yml if desired.
|
||||
- Everything runs offline; no cloud calls.
|
||||
- Reads `.env` for `OPENWEBUI_URL`, `OPENWEBUI_API_KEY`, `OPENWEBUI_KB_NAME`.
|
||||
- Uploads `*.txt`, `*.md`, `*.html` it finds in `./transcripts` and `./library/web` by default.
|
||||
|
Reference in New Issue
Block a user