Files
linkvault/README.md
Erik Thiele fc9033d89a Add Proxmox LXC helper-script for automated installation
Creates a Debian 12 LXC container and sets up LinkVault as a systemd
service inside it, following the tteck/community-scripts pattern.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-19 19:11:47 +02:00

82 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LinkVault
KI-gestützte Link-Sammlung: Links einfügen → automatisch laden, **zusammenfassen**,
in **Kategorien / Hersteller** einsortieren und schnell **wiederfinden**.
## Funktionen
- 🔗 **Link hinzufügen** Seite wird geladen und der Textinhalt extrahiert.
- 🤖 **Automatische KI-Analyse** (OpenAI) Titel, Zusammenfassung, Kategorie,
Hersteller/Quelle und Tags werden erzeugt. Bestehende Kategorien werden
wiederverwendet, damit die Sammlung konsistent bleibt.
- 🗂️ **Filtern** nach Kategorie und Hersteller über die Seitenleiste.
- 🔍 **Suche** klassische Textsuche und optionale **semantische KI-Suche**
(findet auch sinnverwandte Treffer via Embeddings).
- 👥 **Mehrbenutzer** Registrierung/Login, jeder Nutzer sieht nur seine Links.
## Technik
- **Backend:** FastAPI (Python)
- **Frontend:** HTML + HTMX (kein Node.js nötig)
- **Datenbank:** SQLite (Standard, konfigurierbar über `DATABASE_URL`)
- **KI:** OpenAI (`gpt-4o-mini` + `text-embedding-3-small`, konfigurierbar)
## Schnellstart
```bash
./run.sh
```
Das Skript legt eine virtuelle Umgebung an, installiert die Abhängigkeiten,
erstellt bei Bedarf eine `.env` und startet den Server auf
http://127.0.0.1:8000.
Danach in `.env` den `OPENAI_API_KEY` eintragen und den Server neu starten.
> Ohne API-Key läuft die App trotzdem Links werden dann nur ohne KI-Analyse
> gespeichert (Kategorie „Sonstiges", keine Zusammenfassung/semantische Suche).
### Manuell
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # OPENAI_API_KEY eintragen
uvicorn app.main:app --reload --port 8000
```
## Projektstruktur
```
app/
main.py FastAPI-App, Routen, Auth-Sessions
config.py Konfiguration aus .env
database.py SQLAlchemy Engine/Session
models.py User- und Link-Modelle
security.py Passwort-Hashing (bcrypt)
scraper.py Seiteninhalt laden & extrahieren
ai.py OpenAI: Kategorisierung, Zusammenfassung, Embeddings
search.py Semantische Suche (Kosinus-Ähnlichkeit)
templates/ Jinja2 + HTMX Oberfläche
```
## Proxmox
Für den Betrieb in einem Proxmox-VE-LXC-Container gibt es ein Helper-Script,
das einen Debian-12-Container anlegt und LinkVault darin als systemd-Service
einrichtet. Auf dem Proxmox-Host ausführen:
```bash
bash scripts/proxmox/install-linkvault.sh
```
Konfiguration (Container-ID, IP, Ressourcen, ...) über Umgebungsvariablen,
siehe Kommentare im Script.
## Hinweise für den Produktivbetrieb
- Einen zufälligen `SECRET_KEY` in `.env` setzen.
- Hinter einem HTTPS-Reverse-Proxy betreiben (Session-Cookies).
- Für mehr Last statt SQLite z.B. PostgreSQL via `DATABASE_URL` verwenden.