Soketi einfach selbst hosten

Soketi einfach selbst hosten

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
5 min

Soketi ist ein schneller, Open-Source WebSocket Server, der voll kompatibel mit dem Pusher-Protokoll ist. Wenn du Pusher oder Ably für Echtzeit-Features nutzt, weißt du wie schnell sich die Per-Message-Kosten summieren. Mit Soketi bekommst du unbegrenzte Messages auf deiner eigenen Infrastruktur.

Sliplane ist eine Managed Container Platform, die Self-Hosting einfach macht. Mit One-Click Deployment hast du Soketi in Minuten am Laufen - kein Server-Setup, keine Reverse-Proxy-Config, keine Infrastruktur zum Verwalten.

Voraussetzungen

Vor dem Deployment brauchst du einen Sliplane Account (kostenlose Testversion verfügbar).

Schnellstart

Sliplane bietet One-Click Deployment mit Presets.

SliplaneSoketi deployen >
  1. Klick auf den Deploy-Button oben
  2. Wähl ein Projekt aus
  3. Wähl einen Server aus (bei Neuanmeldung bekommst du einen 48-Stunden-Testserver gratis)
  4. Klick auf Deploy!

Über das Preset

Das One-Click Deployment oben nutzt Sliplanes Soketi-Preset. Das ist enthalten:

  • Debian-basiertes Image (quay.io/soketi/soketi:1.6-16-debian) für Stabilität
  • Vorkonfigurierte App-ID, Key und Secret - du kannst sofort connecten
  • Kein persistenter Storage nötig, da Soketi stateless ist (Channel-State lebt im Memory)
  • HTTPS-Schema standardmäßig konfiguriert (Sliplane übernimmt die SSL-Terminierung)

Soketi ist lightweight und läuft gut auch auf kleinen Servern. Eine einzelne Instanz kann tausende gleichzeitige WebSocket-Connections handeln.

Nächste Schritte

Sobald Soketi auf Sliplane läuft, erreichst du es über die von Sliplane bereitgestellte Domain (z.B. soketi-xxxx.sliplane.app).

Deine App verbinden

Um dich von deinem Frontend oder Backend zu verbinden, nutz das Pusher Client SDK mit deinen Soketi-Credentials. Hier ein JavaScript-Beispiel:

import Pusher from "pusher-js";

const pusher = new Pusher("YOUR_APP_KEY", {
  wsHost: "soketi-xxxx.sliplane.app",
  wsPort: 443,
  wssPort: 443,
  forceTLS: true,
  disableStats: true,
  enabledTransports: ["ws", "wss"],
  cluster: "default",
});

Ersetze YOUR_APP_KEY mit dem SOKETI_DEFAULT_APP_KEY-Wert aus den Umgebungsvariablen deines Services in Sliplane, und soketi-xxxx.sliplane.app mit deiner tatsächlichen Domain.

Umgebungsvariablen

Das sind die wichtigsten Umgebungsvariablen, die du anpassen kannst:

VariableBeschreibung
SOKETI_DEFAULT_APP_IDEindeutige ID deiner App
SOKETI_DEFAULT_APP_KEYÖffentlicher Key, den Clients zum Connecten nutzen
SOKETI_DEFAULT_APP_SECRETGeheimer Key für serverseitige API-Aufrufe
SOKETI_DEBUGAuf 1 setzen für ausführliches Logging
SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGESAuf true setzen um Client-zu-Client Messaging zu erlauben

Skalierung mit Redis

Standardmäßig speichert Soketi Channel- und Presence-Daten im Memory. Wenn du horizontal skalieren willst (mehrere Soketi-Instanzen), kannst du ein Redis-Backend hinzufügen, indem du diese zusätzlichen Umgebungsvariablen setzt:

VariableBeispiel
SOKETI_ADAPTER_DRIVERredis
SOKETI_CACHE_DRIVERredis
SOKETI_QUEUE_DRIVERredis
SOKETI_DB_REDIS_HOSTyour-redis-host
SOKETI_DB_REDIS_PORT6379

Logging

Soketi loggt standardmäßig nach STDOUT, was gut mit Sliplanes integriertem Log-Viewer funktioniert. Setz SOKETI_DEBUG=1 für detaillierte Ausgabe bei Connection-Problemen. Für allgemeine Docker-Log-Tipps schau dir unseren Post zu Docker Logs an.

Kostenvergleich

Du kannst Soketi auch bei anderen Cloud-Anbietern selbst hosten. Hier ein Preisvergleich der gängigsten:

AnbietervCPURAMDiskMonatliche KostenHinweis
Sliplane22 GB40 GB€9 (~$10.65)Flatrate, 1 TB Bandwidth, SSL inklusive
Fly.io22 GB40 GB~$18Disk und Bandwidth extra
Render12 GB40 GB~$35100 GB Bandwidth, Disk extra
Railway22 GB40 GB~$67 + $20 PlanPro-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-2x 2 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

Wann sollte ich Soketi statt Pusher nutzen?

Soketi lohnt sich bei hohem Message-Volumen oder wenn du planbare Kosten brauchst. Pusher berechnet pro Message und pro Connection, was bei Apps mit vielen aktiven Usern schnell teuer wird. Mit Soketi auf Sliplane zahlst du flat €9/Monat, egal wie viele Messages du sendest.

Kann ich meinen bestehenden Pusher-Client-Code mit Soketi nutzen?

Ja. Soketi implementiert das vollständige Pusher-Protokoll. Du kannst wechseln, indem du die Host-Konfiguration in deinem Pusher Client SDK änderst. Keine Code-Änderungen nötig, außer den Connection-Parametern (Host, Key, Secret).

Wie update ich Soketi?

Änder den Image-Tag in deinen Service-Einstellungen auf Sliplane und redeploy. Prüf Quay.io für die neueste stabile Version. Bleib bei der debian-Variante für die beste Kompatibilität.

Unterstützt Soketi Presence Channels und Webhooks?

Ja. Soketi unterstützt alle Pusher-Channel-Typen: Public, Private, Presence und Encrypted Channels. Es unterstützt auch Webhooks für Channel-Events. Konfiguriere Webhooks durch Setzen von SOKETI_DEFAULT_APP_WEBHOOKS mit einem JSON-Array von Webhook-URLs.

Wie viele gleichzeitige Connections kann Soketi handeln?

Auf einem 2 vCPU / 2 GB Server kann Soketi problemlos 5.000+ gleichzeitige WebSocket-Connections handeln. Das tatsächliche Limit hängt von deinem Message-Durchsatz und Payload-Größen ab. Für höhere Last kannst du vertikal skalieren (größerer Server) oder horizontal (mehrere Instanzen mit Redis).

Soketi jetzt selbst hosten - ganz einfach!

Mit Sliplane bekommst du einen Pusher-kompatiblen WebSocket Server ohne Per-Message-Kosten.