Files
podx/README.md
2025-09-07 10:56:14 +02:00

70 lines
2.3 KiB
Markdown

# 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
cp .env.example .env # edit values (MEILI_MASTER_KEY, OPENWEBUI_API_KEY, etc.)
docker compose up -d --build
# UI: http://<host>:8088
# Meili: http://<host>:7700
```
The worker reaches OpenWebUI at `$OPENWEBUI_URL` (default: http://host.docker.internal:3003).
## Ingest helpers
```bash
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
```
## Backfill existing files into OpenWebUI
```bash
# From repo root:
./tools/backfill_openwebui.sh
# Or include extra folders to scan:
./tools/backfill_openwebui.sh /some/other/folder /another/folder
```
- Reads `.env` for `OPENWEBUI_URL`, `OPENWEBUI_API_KEY`, `OPENWEBUI_KB_NAME`.
- Uploads `*.txt`, `*.md`, `*.html` it finds in `./transcripts` and `./library/web` by default.
## Generating required secrets
### 1. Meilisearch master key
Meilisearch needs a strong master key (like a root password). Generate one locally:
```bash
# On Linux or Mac with OpenSSL installed
openssl rand -hex 32
# Example output (keep it secret, do not reuse this exact value):
92e4d0d2e4c6f489a91dfc30b6fd6c985f6780ad827f1e7ce1bb3c6dc81d562b
```
Then put it in your `.env`:
```dotenv
MEILI_MASTER_KEY=92e4d0d2e4c6f489a91dfc30b6fd6c985f6780ad827f1e7ce1bb3c6dc81d562b
MEILI_KEY=${MEILI_MASTER_KEY}
```
### 2. OpenWebUI API key
To allow PodX to push documents into your OpenWebUI Knowledge Base, create an API key:
1. Go to your running OpenWebUI (e.g. [http://localhost:3003](http://localhost:3003)).
2. Log in with your admin account.
3. Navigate to **Settings → API Keys**.
4. Click **Generate new API key**, give it a name like `podx-worker`.
5. Copy the generated key and add it to `.env`:
```dotenv
OPENWEBUI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```
If the key is ever leaked, revoke it in OpenWebUI and generate a new one.