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

2.7 KiB
Raw Blame History

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

./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

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 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.