
Browserless einfach selbst hosten
Yulei ChenBrowserless gibt dir einen Headless Chrome Browser als Service. Du kannst damit Web Scraping, Screenshots, PDF-Erstellung und automatisierte Tests über eine einfache REST API erledigen. Das offizielle Cloud-Angebot wird schnell teuer, besonders bei hohem Volumen, und du teilst dir Ressourcen mit anderen Nutzern.
Sliplane ist eine Managed Container Platform, die Self-Hosting einfach macht. Mit One-Click Deployment hast du Browserless in wenigen Minuten am Laufen - kein Server-Setup, kein Reverse Proxy, keine Infrastruktur zum Verwalten.
Voraussetzungen
Vor dem Deployment brauchst du einen Sliplane Account (kostenlose Testphase verfügbar).
Schnellstart
Sliplane bietet One-Click Deployment mit Presets.
- Klick auf den Deploy-Button oben
- Wähl ein Projekt aus
- Wähl einen Server aus (bei Neuanmeldung bekommst du einen 48-Stunden-Testserver kostenlos)
- Klick auf Deploy!
Über das Preset
Das One-Click Deploy oben nutzt Sliplanes Browserless Preset. Das steckt drin:
- Chromium-basiertes Image (
ghcr.io/browserless/chromium) für einen schlanken Headless Browser - Fester Version-Tag (
v2.49.0) für Stabilität - Token-Authentifizierung standardmäßig aktiviert mit einem zufällig generierten 32-Zeichen Token
- Healthcheck konfiguriert auf
/docs, um zu prüfen, ob der Service läuft - Kein persistenter Storage nötig, da Browserless ein stateless Service ist
Nächste Schritte
Geh zu https://browserless-xxxx.sliplane.app/docs, um die integrierte API-Dokumentation zu sehen.
Authentifizierung
Alle API-Requests brauchen den TOKEN-Wert aus deinen Umgebungsvariablen. Du findest ihn in den Service-Einstellungen auf Sliplane. Übergib ihn als Query-Parameter oder Header:
# Query-Parameter
curl "https://deine-domain.sliplane.app/screenshot?token=DEIN_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"url": "https://example.com"}' \
--output screenshot.png
# Authorization Header
curl "https://deine-domain.sliplane.app/screenshot" \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer DEIN_TOKEN' \
-d '{"url": "https://example.com"}' \
--output screenshot.png
Häufig genutzte API-Endpoints
Browserless bietet mehrere nützliche Endpoints out of the box:
| Endpoint | Beschreibung |
|---|---|
/screenshot | Screenshots von Webseiten erstellen |
/content | HTML-Inhalt einer Seite abrufen |
/pdf | PDFs aus Webseiten generieren |
/scrape | Strukturierte Daten aus Seiten scrapen |
/function | Eigene Puppeteer/Playwright-Funktionen ausführen |
Umgebungsvariablen
Du kannst das Verhalten von Browserless über Umgebungsvariablen in den Sliplane Service-Einstellungen anpassen:
| Variable | Beschreibung | Standard |
|---|---|---|
TOKEN | Authentifizierungs-Token für API-Zugriff | (automatisch generiert) |
CONCURRENT | Max. gleichzeitige Browser-Sessions | 10 |
QUEUED | Max. Requests in der Warteschlange | 10 |
TIMEOUT | Standard Request-Timeout in ms | 30000 |
HEALTH | Healthchecks aktivieren | true |
Logging
Browserless loggt standardmäßig nach STDOUT, was super mit Sliplanes integriertem Log-Viewer funktioniert. Für detailliertere Ausgaben setz die Umgebungsvariable DEBUG auf browserless*. Allgemeine Docker-Log-Tipps findest du in unserem Post über Docker Logs.
Kostenvergleich
Du kannst Browserless auch bei anderen Cloud-Anbietern selbst hosten. Hier ein Preisvergleich der gängigsten Anbieter:
| Anbieter | vCPU | RAM | Disk | Monatliche Kosten | Hinweis |
|---|---|---|---|---|---|
| Sliplane | 2 | 2 GB | 40 GB | €9 (~$10.65) | Flatrate, 1 TB Bandwidth, SSL inklusive |
| Fly.io | 2 | 2 GB | 40 GB | ~$18 | Disk und Bandwidth extra |
| Render | 1 | 2 GB | 40 GB | ~$35 | 100 GB Bandwidth, Disk extra |
| Railway | 2 | 2 GB | 40 GB | ~$67 + $20 Plan | Pro-Plan-Minimum, nutzungsbasiert, Bandwidth extra |
Klick hier, um die Berechnung zu sehen.
(Angenommen eine always-on Instanz mit 730 Stunden/Monat)
- Sliplane: Flat €9/Monat für den Base Server. Unbegrenzte Services auf demselben Server, 1 TB Egress und SSL inklusive.
- Fly.io:
shared-cpu-2x2 GB = $11.83/Monat + 40 GB Volume × $0.15/GB = $6 -> ~$17.83/Monat. Egress wird separat berechnet ($0.02/GB in der EU). - Render: Nächstliegendes Angebot ist Standard ($25, 1 vCPU / 2 GB) plus 40 GB Disk × $0.25/GB = $10 -> ~$35/Monat. Pro (2 vCPU / 4 GB) kostet $85/Monat + Disk.
- Railway (Pro Plan): CPU 2 × $0.00000772/s × 2,628,000 s = $40.57; RAM 2 × $0.00000386/s × 2,628,000 s = $20.29; Volume 40 × $0.00000006/s × 2,628,000 s = $6.31 -> ~$67/Monat Compute, plus $20/Monat Pro-Plan-Minimum und $0.05/GB Egress.
Bandwidth-Kosten können bei nutzungsbasierten Anbietern schnell steigen. Nutz unser Bandwidth-Kostenvergleichstool , um zu sehen, was dein Egress bei jedem Anbieter kosten würde.
FAQ
Wofür kann ich Browserless nutzen?
Browserless ist ideal für alles, was eine echte Browser-Umgebung ohne sichtbares Fenster braucht. Typische Anwendungsfälle sind Web Scraping, PDF- oder Screenshot-Erstellung von URLs, End-to-End Tests mit Puppeteer oder Playwright und automatisierte Formular-Eingaben. Besonders nützlich ist es, wenn du Browser-Rendering im großen Stil in Backend-Workflows oder Automatisierungs-Pipelines brauchst.
Wie begrenze ich gleichzeitige Sessions?
Setz die Umgebungsvariable CONCURRENT in deinen Sliplane Service-Einstellungen. Der Standard ist 10, also können bis zu 10 Browser-Sessions gleichzeitig laufen. Auf einem kleineren Server kann es helfen, den Wert auf 5 oder sogar 2 zu senken, um den Speicherverbrauch stabil zu halten.
Wie update ich Browserless?
Änder den Image-Tag in deinen Service-Einstellungen auf Sliplane und redeploy. Prüf die GitHub Container Registry für die neuesten stabilen Version-Tags.
Gibt es Alternativen zu Browserless?
Ja. Playwright und Puppeteer können als eigenständige Services in Docker laufen. Selenium Grid ist eine weitere Option für verteilte Browser-Automatisierung. Browserless ist allerdings einzigartig mit seiner sauberen REST API, die keine Client-seitigen Libraries braucht - das macht die Integration aus jeder Sprache oder Plattform einfach.
Kann ich Browserless mit Puppeteer oder Playwright nutzen?
Klar. Statt einen lokalen Browser zu starten, verbindest du deinen Puppeteer- oder Playwright-Client über den WebSocket-Endpoint mit deiner Browserless-Instanz. Für Puppeteer nutzt du puppeteer.connect({ browserWSEndpoint: 'wss://deine-domain.sliplane.app?token=DEIN_TOKEN' }). Für Playwright nutzt du die connectOverCDP-Methode mit der gleichen URL.