Typesense installieren: Docker, Bare Metal und Production-Setup
Typesense lässt sich sehr schnell installieren. Fßr lokale Tests reicht ein einzelner Docker-Befehl. Fßr Produktion braucht es jedoch mehr: persistente Daten, API-Key-Strategie, Reverse Proxy, HTTPS, Backups, Monitoring und ein klares Sicherheitsmodell.
Dieser Leitfaden zeigt drei Stufen:
- Docker-Quickstart fĂźr Entwicklung
- Docker Compose fĂźr reproduzierbare Setups
- Bare-Metal- und Production-Setup mit Reverse Proxy und API Keys
Der offizielle Typesense-Installationsleitfaden beschreibt Docker, Linux-Pakete, macOS/Homebrew und Typesense Cloud als Installationswege; standardmäĂig startet Typesense auf Port 8108.
Wie installiere ich Typesense am schnellsten?
Der schnellste Weg fßhrt ßber Docker. Damit starten Sie einen lauffähigen Typesense-Server mit persistentem Volume und API-Key in wenigen Sekunden.
docker run -p 8108:8108 \ -v typesense-data:/data \ typesense/typesense:0.25.2 \ --data-dir /data \ --api-key=xyz-super-secret \ --enable-cors
Danach testen Sie die Erreichbarkeit:
curl http://localhost:8108/health
Erwartete Antwort:
{"ok":true}
Der Ăśffentliche Docker-Hub-Eintrag typesense/typesense wird von Typesense gepflegt und beschreibt Typesense als Suchengine fĂźr Instant Search, Auto-Suggest, Facetten- und Vektorsuche.
Welche Installations-Optionen bietet Typesense?
Docker
Docker ist der pragmatischste Einstieg.
Geeignet fĂźr:
- lokale Entwicklung
- Testsysteme
- kleine Staging-Umgebungen
- Container-basierte Deployments
Vorteile:
- schnell startklar
- leicht reproduzierbar
- einfach zu entfernen
- gut fĂźr CI/CD
Native Linux-Pakete
FĂźr produktive Linux-Server ohne Container-Stack eignen sich DEB- und RPM-Pakete.
Vorteile:
- systemd-Integration
- Journal-Logging
- Auto-Restart
- klassische Serverwartung
Die offizielle Dokumentation nennt native Linux-Pakete als unterstĂźtzten Installationsweg.
macOS und Typesense Cloud
FĂźr lokale Experimente unter macOS ist Homebrew praktisch.
Wer gar keine Infrastruktur betreiben mĂśchte, nutzt Typesense Cloud. Die Entscheidung zwischen Cloud und Self-Hosted sollte jedoch nicht nur Ăźber Kosten, sondern auch Ăźber Betriebskompetenz getroffen werden.
Mehr dazu: /typesense-cloud-vs-self-hosted/
Stabiles Docker-Compose-Setup
FĂźr Teams ist Docker Compose meist besser als ein einzelner docker run-Befehl.
services:
typesense:
image: typesense/typesense:0.25.2
restart: unless-stopped
ports:
- "8108:8108"
volumes:
- typesense-data:/data
environment:
TYPESENSE_API_KEY: ${TYPESENSE_API_KEY}
TYPESENSE_DATA_DIR: /data
TYPESENSE_ENABLE_CORS: "true"
volumes:
typesense-data:
Die .env-Datei:
TYPESENSE_API_KEY=xyz-super-secret
Start:
docker compose up -d
Logs prĂźfen:
docker compose logs -f typesense
Wichtig: Die .env-Datei gehĂśrt nicht ins Git-Repository.
Typesense Bare Metal auf Linux installieren
Auf produktiven Linux-Servern ohne Container-Layer ist die Paketinstallation eine robuste Option.
Debian / Ubuntu
curl -O https://dl.typesense.org/releases/0.25.2/typesense-server-0.25.2-amd64.deb sudo apt install ./typesense-server-0.25.2-amd64.deb
Â
RHEL / AlmaLinux / Rocky Linux
sudo dnf install https://dl.typesense.org/releases/0.25.2/typesense-server-0.25.2-1.x86_64.rpm
Dienst aktivieren:
sudo systemctl enable --now typesense-server sudo systemctl status typesense-server
Die Typesense-Dokumentation weist darauf hin, dass der API-Key in der Konfigurationsdatei unter /etc/typesense/typesense-server.ini eingesehen oder geändert werden kann.
Was steht in der Typesense-Konfiguration?
Die zentrale Konfiguration liegt typischerweise in:
/etc/typesense/typesense-server.ini
Beispiel:
[server] api-key = xyz-super-secret data-dir = /var/lib/typesense api-port = 8108 peering-port = 8107 enable-cors = true log-dir = /var/log/typesense log-level = INFO snapshot-interval-seconds = 3600
Wichtige Parameter:
| Parameter | Bedeutung |
| api-key | Admin- oder Bootstrap-Key |
| data-dir | Datenverzeichnis |
| api-port | HTTP-API-Port |
| peering-port | Cluster-Kommunikation |
| enable-cors | CORS fĂźr Browserzugriffe |
| snapshot-interval-seconds | Snapshot-Intervall |
Der API-Port ist standardmäĂig 8108. FĂźr Cluster-Kommunikation wird zusätzlich ein Peering-Port genutzt; dieser sollte niemals Ăśffentlich exponiert werden.
Â
Reverse Proxy und HTTPS einrichten
FĂźr Production sollte Typesense nicht ungeschĂźtzt Ăźber HTTP ins Internet gestellt werden.
Die offizielle Production-Dokumentation empfiehlt fĂźr produktive Setups HTTPS, Firewall-Regeln und eine saubere Zertifikatskonfiguration.
Caddy
Caddy ist fĂźr viele Teams der einfachste Weg zu HTTPS.
search.example.com {
reverse_proxy 127.0.0.1:8108
}
Caddy Ăźbernimmt:
- HTTPS
- Zertifikatsausstellung
- automatische Erneuerung
- Reverse Proxy
Die Caddy-Dokumentation beschreibt reverse_proxy als Standard-Direktive fĂźr Weiterleitung an Upstream-Services.
Nginx
server {
listen 443 ssl http2;
server_name search.example.com;
ssl_certificate /etc/letsencrypt/live/search.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/search.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8108;
proxy_set_header Host $host;
}
}
Caddy ist oft schneller eingerichtet. Nginx passt besser, wenn bereits ein etablierter Nginx-Stack existiert.
Warum Scoped API Keys ins Frontend gehĂśren
Der Admin-Key darf nie im Browser landen.
Er erlaubt weitreichenden Zugriff auf Collections und Dokumente. FĂźr Frontends sollten ausschlieĂlich Search-only oder Scoped API Keys verwendet werden.
Typesense unterstßtzt API Keys mit feingranularen Einschränkungen. Scoped Search Keys erzwingen eingebettete Suchparameter serverseitig; Nutzer kÜnnen diese Einschränkungen nicht ßberschreiben.
Beispiel:
import Typesense from "typesense";
const adminClient = new Typesense.Client({
nodes: [{ host: "search.example.com", port: 443, protocol: "https" }],
apiKey: process.env.TYPESENSE_ADMIN_KEY,
});
const scopedKey = adminClient.keys().generateScopedSearchKey(
process.env.TYPESENSE_SEARCH_ONLY_KEY,
{
filter_by: "tenant_id:=acme",
expires_at: Math.floor(Date.now() / 1000) + 3600
}
);
Typische Einsatzfälle:
- Mandantentrennung
- Kundengruppen-Sichtbarkeit
- B2B-Preis- und Sortimentstrennung
- zeitlich begrenzte Suchzugriffe
Erste Collection anlegen und Suche testen
Collection erstellen
curl "http://localhost:8108/collections" \
-X POST \
-H "X-TYPESENSE-API-KEY: xyz-super-secret" \
-H "Content-Type: application/json" \
-d '{
"name":"products",
"fields":[
{"name":"title","type":"string"},
{"name":"price","type":"float"}
]
}'
Dokument indexieren
curl "http://localhost:8108/collections/products/documents" \
-X POST \
-H "X-TYPESENSE-API-KEY: xyz-super-secret" \
-H "Content-Type: application/json" \
-d '{
"id":"1",
"title":"Akku-Bohrschrauber 18V",
"price":129.90
}'
Suche ausfĂźhren
curl "http://localhost:8108/collections/products/documents/search?q=bohr&query_by=title" \ -H "X-TYPESENSE-API-KEY: xyz-super-secret"
Damit ist die Installation funktional geprĂźft.
Häufige Fallstricke bei der Installation
Port 8108 ist bereits belegt
PrĂźfen:
ss -tulpn | grep 8108
Häufige Ursache:
- alter Testcontainer
- lokaler Entwicklungsserver
- parallele Typesense-Instanz
Volume-Permissions stimmen nicht
Bei Bind-Mounts kĂśnnen Schreibrechte fehlen.
Typische LĂśsung:
sudo chown -R 1000:1000 ./typesense-data
Zu wenig RAM
Typesense arbeitet stark speicherorientiert.
Faustregel:
- IndexgrĂśĂe + 50 % Puffer
- kleine Tests: 1-2 GB
- mittlere Shops: 4-8 GB
- grĂśĂere B2B-Kataloge: 16 GB+
Snapshot-Frequenz zu aggressiv
Sehr häufige Snapshots kÜnnen auf schwachen Disks Latenzspitzen erzeugen.
FĂźr viele Setups ist ein Intervall von 3600 Sekunden ein sinnvoller Startpunkt.
Production-Hardening-Checkliste
Vor Go-Live prĂźfen:
- HTTPS aktiv
- Admin-Key nur serverseitig
- Search-only oder Scoped Keys im Frontend
- Firewall erlaubt nur nĂśtige Ports
- Datenverzeichnis persistent
- Snapshots aktiv
- Restore getestet
- Monitoring aktiv
- API-Key-Rotation geplant
- Logs zentralisiert
- Peering-Port nicht Ăśffentlich
Typesense empfiehlt in Production unter anderem Firewall-Regeln, HTTPS und eine Strategie fĂźr API-Key-Rotation.
Fazit
Typesense ist schnell installiert. FĂźr lokale Tests reicht Docker. FĂźr Produktion braucht es aber ein sauberes Betriebsmodell.
Der pragmatische Weg:
- lokal mit Docker starten
- Staging mit Docker Compose aufsetzen
- Production mit Reverse Proxy, HTTPS, Scoped Keys und Monitoring betreiben
- bei hĂśheren Anforderungen Cloud vs. Self-Hosted sauber bewerten
Die Installation ist der einfache Teil. Stabiler Betrieb entsteht durch Backups, Monitoring, API-Key-Strategie und saubere Daten-Pipelines.
FAQ
Welcher Port wird standardmäĂig genutzt?
Typesense nutzt standardmäĂig Port 8108 fĂźr die HTTP-API. FĂźr Cluster-Kommunikation wird zusätzlich ein Peering-Port verwendet.
Brauche ich Docker fĂźr Typesense?
Nein. Docker ist der schnellste Einstieg, aber Typesense kann auch Ăźber native Linux-Pakete installiert werden.
Kann ich Typesense ohne Cloud betreiben?
Ja. Typesense kann vollständig self-hosted auf Docker, Linux-Servern, Kubernetes oder Bare Metal betrieben werden.
Darf der Admin-Key ins Frontend?
Nein. Der Admin-Key gehĂśrt ausschlieĂlich auf den Server. FĂźr Browser-Clients sollten Search-only oder Scoped API Keys verwendet werden.
Wie teste ich, ob Typesense läuft?
Mit curl http://localhost:8108/health. Eine erfolgreiche Antwort lautet {"ok":true}.
Brauche ich HTTPS vor Typesense?
Ja, fĂźr produktive Ăśffentliche Setups sollte Typesense nur Ăźber HTTPS erreichbar sein, idealerweise hinter einem Reverse Proxy.
Welche Hardware brauche ich fĂźr Typesense?
Fßr kleine Setups reichen 1-2 GB RAM. Produktive B2B-Shops sollten abhängig vom Index eher mit 4-16 GB RAM starten.
Was sind typische Installationsfehler?
Belegter Port 8108, falsche Volume-Rechte, zu wenig RAM, fehlende Snapshots und versehentlich exponierte Admin-Keys.