Query.code ist eine schlanke, performante und komplett kostenlose Open-Source-Suchmaschine, die speziell für Entwickler-Wissen (Dokumentationen, Foren, Tutorials) optimiert ist.
Das gesamte Projekt ist so aufgebaut, dass es im Free-Tier bekannter Cloud-Anbieter läuft und dient als anschauliches Lernprojekt für moderne Webtechnologien.
Das Frontend ist über GitHub Pages öffentlich erreichbar: 👉 [DEINE-LIVE-URL-HIER-EINFÜGEN] (z. B. https://dein-username.github.io/query-code/frontend/)
Das Projekt basiert auf einer minimalen und effizienten Serverless-Struktur:
- Frontend: Gehostet auf GitHub Pages (HTML5, Tailwind CSS, Vanilla JS). Es kommuniziert direkt über die Supabase JavaScript-Bibliothek mit der Datenbank.
- Datenbank & API: Supabase (PostgreSQL). Nutzt die native Postgres-Volltextsuche (
tsvector&tsquery) für blitzschnelle Suchergebnisse mit Relevanz-Ranking, geschützt durch Row-Level-Security (RLS). - Crawler / Indexer: Ein Python-Skript (
BeautifulSoup4,Requests), das rekursiv Webseiten liest, bereinigt und über den sicherenservice_role-Schlüssel direkt in die Datenbank einspeist.
Du kannst dieses Projekt in weniger als 10 Minuten für dich selbst nachbauen.
- Erstelle ein kostenloses Projekt auf supabase.com.
- Gehe in den SQL Editor und führe das Skript aus
supabase/schema.sqlaus. Das erstellt die Tabellen, Such-Indizes und Sicherheitsregeln (RLS).
-
Navigiere in den Crawler-Ordner:
cd crawler -
Installiere die Abhängigkeiten:
pip install -r requirements.txt
-
Erstelle eine
.envDatei im Ordnercrawler/mit deinen Supabase-Zugangsdaten:SUPABASE_URL=DEINE_SUPABASE_PROJEKT_URL SUPABASE_KEY=DEIN_SERVICE_ROLE_SECRET_KEY
-
Starte den Crawler, um deine Datenbank mit Inhalten zu füttern:
python crawler.py
- Öffne
frontend/app.jsund trage oben deineSUPABASE_URLund deinen öffentlichenSUPABASE_ANON_KEYein. - Starte einen lokalen Server, um CORS-Fehler im Browser zu vermeiden:
# Im Ordner /frontend
python -m http.server 8000- Rufe
http://localhost:8000auf und teste deine eigene Suchmaschine!
Du möchtest neue Features hinzufügen, den Crawler optimieren oder das Design verschönern?
- Forke das Projekt.
- Erstelle einen Feature-Branch (
git checkout -b feature/cooles-neues-feature). - Committe deine Änderungen (
git commit -m 'feat: füge cooles Feature hinzu'). - Pushe den Branch (
git push origin feature/cooles-neues-feature). - Erstelle einen Pull Request!
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die LICENSE-Datei für Details.