Exposing Jupyter & Model APIs: Der Python Data Science Workflow mit Pagekite

Quick answer
Pagekite: Der Python-Localhost-Tunnel für Data Science Workflows: webhook testing answer
For local webhook testing, run your app locally, expose it with a public HTTPS tunnel, and paste the stable callback URL into the provider dashboard.
How do I test webhooks on localhost?
Start your local server, open a public HTTPS tunnel to that port, configure the provider webhook URL, and inspect events in your local logs.
Why does a stable webhook URL matter?
Stable URLs prevent provider dashboards from needing manual callback updates every time you restart a tunnel.
Data Science und Machine Learning-Entwicklung findet hauptsächlich auf lokalen Maschinen oder dedizierten GPU-Workstations statt. Ob Sie explorative Analysen in einem Jupyter-Notebook durchführen, einen Prototyp mit Streamlit bauen oder Vorhersagen via FastAPI bereitstellen — Ihre lokale Umgebung ist die primäre Arbeitsplattform.
Ein wiederkehrendes Problem tritt auf, sobald Sie diese Arbeit teilen möchten. Ein interaktives Modell einem entfernten Stakeholder zu demonstrieren, einen eingehenden Webhook von einem Zahlungsanbieter zu testen oder eine mobile App auf einen Endpoint auf Ihrem Laptop zugreifen zu lassen, erfordert meist das Deployment auf einem entfernten Server — und Cloud-Deployment bringt Hürden mit sich: Container-Overhead, Kosten, Deployment-Verzögerungen und Konfigurationsabweichungen zwischen Umgebungen.
Hier schließt ein localhost-Tunnel Lücken. Während ngrok im allgemeinen Web-Development dominiert, ist Pagekite ein deutlich älteres, noch gepflegtes Projekt, das es wert ist, kennengelernt zu werden, weil sein Referenz-Client ein einzelnes, dependency-light Python-Skript ist, kein Binary — eine Eigenschaft, die in regulierten oder sicherheitsbewussten Umgebungen wichtiger ist, als es auf den ersten Blick scheint.
Die lokale Entwicklungs-Hürde in modernen Data Science-Projekten
+-----------------------------------------------------------------------+
| Lokale Workstation |
| |
| +-------------------+ +--------------------+ +--------------+ |
| | JupyterLab / Notebook | | Streamlit / Gradio | | FastAPI / ML | |
| | (Port 8888) | | (Port 8501) | | (Port 8000) | |
| +---------+---------+ +---------+----------+ +-------+------+ |
| | | | |
+------------+------------------------+-------------------+-------------+
|
( Blocked by NAT / Firewall )
|
x
[ Öffentliches Internet / Clients ]
Drei Engpässe beim Teilen treten ständig auf:
- Interaktive Notebooks demonstrieren. Eine
.ipynb-Datei, die per E-Mail oder GitHub geteilt wird, zeigt nur statisches Output. Eine Live-Session für Kunden oder Projektmanager bedeutet, den laufenden Jupyter-Server offenzulegen. - Webhooks und externe Callbacks testen. Slack-Bots, GitHub-Trigger und Stripe/Twilio-Integrationen benötigen eine öffentliche URL, die eingehende POST-Anfragen direkt an Ihren Rechner routet.
- Remote API-Integration. Frontend-Entwickler, die gegen einen lokal gehosteten Model-Endpoint bauen, brauchen eine erreichbare URL, bevor das Modell irgendwo gestaged ist.
Manuelles Provisionieren eines EC2-Servers, das Hand-rollen eines SSH-Reverse-Tunnels oder das Installieren eines Binarys, das die Application-Whitelisting-Regeln verletzt, sind echte Hürden, die ein Tunnel entfernen soll.
Was ist Pagekite? Architektur eines Python-basierten Tunnels
Pagekite ist ein Open-Source-Tunneling-Projekt, ursprünglich geschrieben von Bjarni Rúnar Einarsson und gepflegt unter The Beanstalks Project ehf., einer isländischen Firma — das Projekt läuft seit etwa 2010, was es zu einem der älteren Tools im localhost-Tunneling-Bereich macht, noch vor ngroks öffentlichem Start. Es erstellt einen Tunnel von einem öffentlichen Relay-Server (ein “Front-End”, meist bei pagekite.net gehostet) zu einem lokalen Dienst hinter NAT oder einer restriktiven Firewall.
PAGEKITE ARCHITEKTUR
+------------------------+ +------------------------+
| Lokale Maschine | | Pagekite Public Relay |
| | | (Front-End / Cloud) |
| +--------------------+ | | |
| | Lokale App | | | |
| | (Jupyter/FastAPI) | | | |
| +---------+----------+ | | |
| | Local HTTP | | |
| +---------v----------+ | Verschlüsselt | |
| | Pagekite Client |==============| Öffentlicher HTTP/HTTPS |
| | (pagekite.py) | | Tunnel | Front-End Listener |
| +--------------------+ | +-----------+------------+
+------------------------+ |
|
+--------v--------+
| Remote Client / |
| Webbrowser |
+-----------------+
Zentrale Architekturmerkmale
- Referenz-Client ist reines Python.
pagekite.pyist ein einzelnes Python-Skript ohne kompilierte C-Erweiterungen, Rust oder Go-Laufzeit, notwendig für den Back-End/Client-Rolle. Ein Nuance: Wenn Sie Ihren eigenen Front-End-Relay laufen lassen, anstatt den gehostetenpagekite.net-Dienst zu nutzen, braucht das TLS-Handling OpenSSL und entweder Python 3 oder daspyOpenSSL-Modul — “zero dependencies” bedeutet hier wirklich “keine Abhängigkeiten” für den gängigen Client. - Python 3 wird heute unterstützt. Die aktuelle
pagekite.net-Startseite dokumentiert die Installation mitpython3 pagekite.py 80 yourname.pagekite.me. Ältere Wiki-Seiten (z.B. “QuickStart” für 0.3.x/0.4.x) empfehlen noch Python 2.x — das ist veraltete Dokumentation, die aus den frühen Jahren stammt, nicht ein Hinweis, dass das Tool nur Python 2 unterstützt; Python 3 wurde vor Jahren explizit mit einem PyPagekite-Release integriert. - Protokoll-Vielseitigkeit. Neben HTTP/HTTPS tunnelt Pagekite auch rohes TCP, SSH und andere TCP-basierte Dienste.
- Eigenhosting ist real und nativ. Sie können den gehosteten Relay bei
pagekite.netnutzen oder Ihren eigenen Front-End (pagekitefront) in Ihrer Infrastruktur betreiben — der Relay-Code ist freie Software, kein kostenpflichtiges Feature hinter einer Lizenz. - Integrierter dynamischer DNS. Der Client unterstützt native Updates für dynamische DNS-Anbieter (dyndns.org, no-ip.com oder eigene HTTP(S)-Endpunkte), sodass ein öffentlicher Name stets auf die aktuelle IP zeigt.
- Ein größeres Ökosystem als nur das Python-Skript. Neben
pagekite.pypflegt das Projekt auch libpagekite, eine C-Implementierung für Hochleistungs- oder Embedded-Anwendungen, sowie upagekite, eine MicroPython-Portierung für ESP32-Controller — relevant, wenn Ihr “lokaler Dienst” eher Sensor als Laptop ist.
Korrektur der Lizenz: Es ist die AGPL, nicht GPLv2/Apache
pagekite.py ist unter der GNU Affero General Public License (AGPL) veröffentlicht, Urheberrecht bei Bjarni Rúnar Einarsson und The Beanstalks Project ehf. Dokumentation ist CC BY-SA 3.0 lizenziert, Beispiel-Konfigurationsdateien sind Public Domain. Die duale Lizenz Apache-2.0-oder-AGPL, die manchmal erwähnt wird, gehört zu libpagekite, der separaten C-Bibliothek — nicht zum Python-Client. Für Sicherheitsprüfungen ist diese Unterscheidung wichtig: Die AGPL enthält eine Netzwerk-Nutzungs-Klausel, die strenger ist als eine permissive Lizenz wie Apache, und sie gilt für das Skript, das auf Ihrem Rechner läuft.
Vorteile des Python-nativen Stacks
| Feature | Vorteil für ML / Data Teams |
|---|---|
| Kein kompilierter Laufzeit-Client | Das Client-Skript ist eine .py-Datei — einfach in venv, Docker oder neben den Trainingsscripts platzieren, ohne Binary |
| Code-Auditfähigkeit | Klarer, unkompilierter Python-Source-Code ermöglicht Security-Reviews vor Freigabe |
| Subprozess-Integration | Tunnel starten und steuern aus einem Trainings- oder Serving-Skript mit Standard-Python-Process-APIs |
| Virtual-Environment-kompatibel | Das Skript braucht kein eigenes Paketmanagement, läuft in jeder venv/conda mit Python 3 |
Eine Korrektur, die man anmerken sollte: Es gibt kein pip install pagekite
Der ursprüngliche Entwurf empfiehlt pip install pagekite. Aktuell gibt es kein aktiv gepflegtes PyPI-Paket für dieses Tool — der nächstgelegene Name auf PyPI ist ein unrelated static-site-Paket namens pagekit. Die offizielle Dokumentation verweist stattdessen auf:
# Direktes Herunterladen des Skripts (offiziell empfohlene Methode)
curl -O https://pagekite.net/pk/pagekite.py
chmod +x pagekite.py
# Oder, auf Debian/Ubuntu, via eigenem apt-Repository
echo "deb http://pagekite.net/pk/deb/ pagekite main" | sudo tee -a /etc/apt/sources.list
sudo apt-get update && sudo apt-get install pagekite
Debian und Ubuntu bieten pagekite auch in den offiziellen Repositories an (sudo apt install pagekite), wobei das Projekt angibt, dass die Repo-Version meist neuere Releases enthält als die Distribution.
So exponieren Sie ein Jupyter Notebook mit Pagekite
Ein interaktives Jupyter-Environment für entfernte Kollaborateure zu öffnen, erfordert Konnektivität und Zugriffskontrolle — eine ungesicherte Jupyter-Session mit öffentlicher URL gibt jedem, der sie findet, volle Code-Ausführungsrechte auf Ihrem Rechner.
SICHERER JUPYTER-TUNNEL-WORKFLOW
+----------------------+ +----------------------+ +----------------------+
| 1. Jupyter konfigurieren | | 2. Lokalen Server starten | | 3. Pagekite erstellen |
| Token oder Passwort setzen | | Binden an 127.0.0.1 | | Verschlüsselter Tunnel |
+----------------------+ | Port 8888 | | https://... |
+----------------------+ +----------------------+
Schritt 1: Pagekite-Client holen
curl -O https://pagekite.net/pk/pagekite.py
chmod +x pagekite.py
Schritt 2: Jupyter sichern, bevor Sie tunneln
jupyter notebook --generate-config
jupyter notebook password
Oder mit explizitem Token starten und nur Loopback binden:
jupyter lab --ip=127.0.0.1 --port=8888 --NotebookApp.token='ein_ziemlich_langer_sicherer_token_12345'
Schritt 3: Tunnel starten
python3 pagekite.py 8888 mynotebook.pagekite.me
Beim ersten Start führt Sie der Assistent durch die Erstellung eines kostenlosen Accounts (oder Anmeldung) und speichert einen Authentifizierungsschlüssel lokal in ~/.pagekite.rc. Bei Erfolg erscheint eine Terminal-Ausgabe, die bestätigt, dass der lokale Port jetzt erreichbar ist unter https://mynotebook.pagekite.me/.
Schritt 4: Tunnel weiter absichern
Die frühere Version dieses Guides verwendete Flags wie --allow=<ip> und --opt/basicauth=user:pass. Diese sind keine echten Pagekite-Optionen. Das tatsächliche, dokumentierte Zugriffskontroll-Mechanismus sind +-Flags, die an die Kite-Definition angehängt werden:
# Nur eine bestimmte IP (oder /24-Netz) zulassen
python3 pagekite.py 8888 mynotebook.pagekite.me +ip/203.0.113.45=ok
# HTTP Basic Auth zusätzlich zu Jupyter-Token erzwingen
python3 pagekite.py 8888 mynotebook.pagekite.me +password/admin=ComplexPassword123!
Mehrere +ip/ oder +password/-Flags können gestapelt werden, um mehrere Adressen oder Anmeldedaten zu erlauben. Das pagekite.py-Skript hat seit Version 0.5 eine eingebaute Request-Firewall, die gängige Angriffspfade (z.B. /wp-admin/) standardmäßig blockiert; kann mit --insecure global oder +insecure pro Kite deaktiviert werden. Sie schaltet sich automatisch ab, sobald +password/ oder +ip/ Zugriffskontrolle eingerichtet ist.
Exponieren von FastAPI & Streamlit Model-Endpunkten
Szenario A: Ein Streamlit-Dashboard
streamlit run app.py --server.port 8501 --server.address 127.0.0.1
Um HTTPS auf der öffentlichen Seite zu erzwingen, prefixen Sie das Protokoll beim Kite-Namen — es gibt kein separates --service=https-Flag:
python3 pagekite.py 8501 https:meine-analytics.pagekite.me
Szenario B: Ein FastAPI-Inferenz-Endpoint, programmatisch gestartet
Statt zwei Terminal-Fenster zu öffnen, können Sie den Tunnel als Subprozess neben Ihrem ASGI-Server starten:
import subprocess
import time
import uvicorn
from fastapi import FastAPI
app = FastAPI(title="Lokale Machine Learning Inference API")
@app.get("/")
def read_root():
return {"status": "online", "model": "RandomForestClassifier_v2"}
@app.post("/predict")
def predict(features: dict):
processed_val = sum(features.values()) if features else 0
return {"prediction": processed_val * 1.5, "confidence": 0.94}
def start_pagekite_tunnel(port: int, subdomain: str):
"""Startet pagekite.py als Hintergrundprozess, verbunden mit dem lokalen Port."""
cmd = ["python3", "pagekite.py", str(port), f"https:{subdomain}.pagekite.me"]
print(f"[*] Starte Pagekite-Tunnel auf Port {port}...")
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
time.sleep(2) # Zeit für den Aufbau des Tunnels
print(f"[+] Tunnel online: https://{subdomain}.pagekite.me")
return process
if __name__ == "__main__":
PORT = 8000
SUBDOMAIN = "mein-ml-model-api"
tunnel_process = start_pagekite_tunnel(port=PORT, subdomain=SUBDOMAIN)
try:
uvicorn.run(app, host="127.0.0.1", port=PORT)
finally:
print("[*] Beende Pagekite-Prozess...")
tunnel_process.terminate()
Wichtig: Das ist Prozessmanagement, kein offizielles SDK — Pagekite liefert keine eigenständige Python-Client-Bibliothek, sondern nur das CLI. “Programmgesteuerte Integration” bedeutet hier, den gleichen Skriptprozess zu starten und zu überwachen, nicht eine API aufzurufen.
Pagekite vs ngrok: Ein Vergleich für Data Science
| Kennzahl | Pagekite | ngrok |
|---|---|---|
| Client-Sprache | Reines Python (Client-Rolle) | Go |
| Lizenz | GNU AGPL (pagekite.py); libpagekite C-Bibliothek dual lizenziert (Apache-2.0/AGPL) |
Closed-Source SaaS |
| Installation | curl-Download oder apt/rpm-Paket — kein offizielles PyPI-Paket |
Ein Binary |
| Eigenhosting | Native — eigenen Front-End laufen lassen, Code ist frei | Nicht in Standardplänen enthalten |
| Domains | CNAME-basierte Domains direkt unterstützt; echte apex/root-Domains nicht eindeutig dokumentiert | Subdomain-CNAME auf bezahltem Plan; apex/root-Domains nicht unterstützt |
| Protokolle | HTTP, HTTPS, rohes TCP, SSH | HTTP, HTTPS, TCP, TLS |
| Preis | Pay-what-you-want (empfohlen $3/Monat), kostenlos für FOSS, ab $5.99/Monat, White-Label ab $199.95/Monat | Kostenlos (limitiert), Hobby ab $10/Monat, skalierende Tiers |
Die Punkte, die wirklich relevant sind
Binary vs. Script. ngrok liefert ein kompilierte Go-Binary; Pagekite’s Client ist ein prüfbarer Python-Skript. In Umgebungen, in denen Application-Whitelisting unsigned Executables blockiert, ist das ein praktischer Unterschied, abgesehen von Lizenzfragen.
Eigenhosting. Wenn Ihre Daten PII oder regulierte Gesundheits-/Finanzdaten enthalten, ist die Fähigkeit von Pagekite, den eigenen Relay vollständig in Ihrer Infrastruktur zu betreiben, real und dokumentiert — kein kostenpflichtiges Add-on, sondern der gleiche offene Relay-Code.
Preismodell. ngrok’s kostenlose und Hobby-Tiers sind nach Bandbreite und Endpunkten abgerechnet. Pagekite basiert auf “Pay what you want” mit Mindestbetrag, plus monatlichen Flat-Tiers, nicht nach GB-Overage. Das ist eine andere Preispolitik, die man kennen sollte, bevor man “billiger” oder “teurer” annimmt.
Sicherheitstipps für einen Pagekite-basierten Reverse Proxy
+-------------------------------------------------------------------+
| TUNNEL-SICHERHEITS-STRATEGIE |
| |
| [ Öffentliches Internet ] |
| | |
| v |
| +-------------------------------------------------------------+ |
| | Schicht 1: Transportverschlüsselung (mit https:) | |
| +------------------------------+------------------------------+ |
| | |
| v |
| +-------------------------------------------------------------+ |
| | Schicht 2: Zugriffskontrolle (+ip/ und +password/) Flags | |
| +------------------------------+------------------------------+ |
| | |
| v |
| +-------------------------------------------------------------+ |
| | Schicht 3: Anwendungsauthentifizierung (Jupyter Token / API Keys) | |
| +------------------------------+------------------------------+ |
| | |
| v |
| [ Lokale Anwendung / Notebook / FastAPI ] |
- HTTPS erzwingen. Prefixen Sie den Kite-Namen:
python3 pagekite.py 8888 https:mynotebook.pagekite.me. - Nach IP einschränken.
+ip/203.0.113.45=ok(einzelne Adresse) oder+ip/203.0.113=ok(/24-Netz). - HTTP Basic Auth beim Tunnel hinzufügen.
+password/admin=ComplexPassword123!— nützlich als zweiter Faktor vor einer App mit schwacher oder keiner Authentifizierung. - Lokalen Service unprivilegiert laufen lassen. Jupyter/FastAPI-Prozesse nicht als root, keine
.env-Dateien oder SSH-Schlüssel im selben Verzeichnis. Pagekite leitet alles weiter, was am lokalen Port läuft; Prozesshygiene bleibt wichtig.
Große Datenmengen handhaben
Wenn FastAPI große JSON- oder Bildpayloads zurückgibt, aktivieren Sie Response-Kompression, bevor die Daten durch den Tunnel gehen:
from fastapi import FastAPI
from fastapi.middleware.gzip import GZipMiddleware
app = FastAPI()
# Beachten Sie die Großschreibung: GZipMiddleware, nicht GzipMiddleware
app.add_middleware(GZipMiddleware, minimum_size=500)
Persistente Hintergrundtunnel aufrechterhalten
nohup python3 pagekite.py --logfile=/var/log/pagekite.log 8888 mynotebook.pagekite.me &
Für Rebootsicheres in systemd-Units packen, statt nur nohup zu verwenden.
Häufige Verbindungsprobleme beheben
| Symptom | Mögliche Ursache | Lösung |
|---|---|---|
| “Verbindung abgelehnt” | Lokaler Dienst hört nicht auf den angegebenen Port | Mit curl http://127.0.0.1:PORT oder netstat prüfen, bevor man den Tunnel verantwortlich macht |
| “Subdomain nicht verfügbar” | Der gewünschte name.pagekite.me ist bereits vergeben |
Anderen Präfix wählen oder prüfen, ob die bestehenden Kite-Credentials in ~/.pagekite.rc sind |
| Langsame Antworten | Payload-Größe oder NAT/MTU-Probleme | Response-Kompression aktivieren oder Payload verkleinern |
Pagekite in MLOps-Pipelines integrieren
MLOps INTEGRATIONSPROZESS
+-------------------+ +--------------------+ +---------------------+
| GitHub Actions / | | Ephemere Modelle | | Pagekite-Tunnel starten |
| Lokaler CI-Runner |----| Container |----| Webhook exponieren |
+-------------------+ +--------------------+ +----------+----------+
|
v
+-------------------+ +--------------------+ +---------------------+
| Tunnel abbauen | | Webhook prüfen |<---| Externen Service ansprechen |
| & Ergebnisse berichten | | Trigger | | Payload liefern |
+-------------------+ +--------------------+ +---------------------+
In End-to-End-Tests, bei denen ein externer Service einen internen Webhook erreichen soll, ist es sinnvoll, einen kurzlebigen, eindeutig benannten Kite (test-run-$GITHUB_RUN_ID.pagekite.me) im Test-Runner zu starten, den externen Aufruf auszulösen, den Eingang des Payloads zu prüfen und den Tunnel wieder zu schließen. Das vermeidet, nur für Webhook-Tests eine dauerhafte Staging-Umgebung zu benötigen.
Über den Python-Client hinaus: libpagekite und upagekite
Zwei weniger bekannte Komponenten des Pagekite-Projekts sind relevant, wenn Ihre Arbeit über Notebooks und APIs hinausgeht in Embedded- oder ressourcenbeschränkte Geräte:
- libpagekite ist eine von Grund auf in C geschriebene Implementierung des gleichen Protokolls, für Hochleistungs- oder Embedded-Deployments, bei denen eine Python-Interpreter-Umgebung nicht praktikabel ist.
- upagekite ist eine MicroPython-Portierung für ESP32-Controller, die es Sensoren oder IoT-Geräten ermöglicht, ihre eigene Kite zu fliegen, ohne ein vollwertiges Betriebssystem.
Wenn Sie bereits Pagekite für eine Data-Science-API nutzen und später Telemetrie von einem ESP32 aus auslesen wollen, ist das dieselbe zugrunde liegende Infrastruktur, kein anderer Anbieter.
Ist Pagekite noch 2026 eine gute Wahl?
Ehrlich sein, um nicht zu übertreiben: Der Blog von pagekite.net ist seit Oktober 2021 nicht mehr öffentlich aktualisiert worden, und das GitHub-Repo für den Python-Client trägt den Hinweis, “under active development” zu sein und “may at times be somewhat unstable”. Das ist eine langsamere Entwicklung als bei ngrok oder neueren Tools wie zrok oder Pinggy, die regelmäßig Changelogs veröffentlichen.
Dennoch: Der Dienst ist aktuell noch live, Download und Anmeldung funktionieren, Python 3 ist dokumentiert, und die Preis-/FAQ-Seiten sind aktuell — es wirkt weniger wie ein verwaistes Projekt, sondern wie eine ausgereifte, wenig wechselnde Infrastruktur, die von einem kleinen Team gepflegt wird. Für Unternehmen, die ein auditierbares, selbsthostbares, skriptbasiertes Tunnel benötigen, kann diese Stabilität ein akzeptabler Kompromiss sein. Für Teams, die aktiven Support, ein Dashboard oder häufige Feature-Releases wollen, sind die neueren Tools, die in dieser Serie bereits erwähnt wurden, wahrscheinlich besser geeignet.
Optimierung des Python-Tunneling-Stacks
Ein localhost-Tunnel löst einen echten Engpass: die Verbindung zwischen lokaler Entwicklung und öffentlichem Web, ohne eine Cloud-Infrastruktur aufbauen zu müssen. Pagekite bietet mit seinem scriptbasierten, selbsthostbaren, unter einer AGPL stehenden Client — betrieben von einem isländischen Anbieter seit 2010 — eine echte Alternative zu ngrok, die sich durch offene Lizenz und Unabhängigkeit abhebt. Ob es das richtige Werkzeug ist, hängt mehr von Ihrer Priorität auf Auditierbarkeit und Selbsthosting oder auf Feature-Velocity und Politur ab.
Redaktionsänderungen (Stand Sept 6, 2026)
Korrekturen am Originalentwurf:
- Lizenz: von “GPLv2/Apache” auf die tatsächliche GNU AGPL korrigiert (Apache-2.0/AGPL dual-licensing gilt nur für die separate C-Bibliothek libpagekite, nicht für den Python-Client).
- Installation: die erfundene
pip install pagekite-Anweisung entfernt — es gibt kein aktives PyPI-Paket, stattdessen die tatsächlichen Installationswege (direktes Herunterladen per curl, das eigene apt-Repository, oder Distribution-Pakete). - Python 2 vs. 3: die Nuance ergänzt, dass einige ältere Wiki-Seiten noch Python 2.x empfehlen, die aktuelle Homepage und PyPagekite-Release-Notes aber Python 3 support bestätigen.
- CLI-Syntax für HTTPS: das erfundene
--service=https-Flag entfernt, stattdessen Prefix mithttps:beim Kite-Namen (z.B.https:name.pagekite.me). - CLI-Syntax für Sicherheit: die erfundenen Flags
--allow=<ip>und--opt/basicauth=user:passentfernt, durch die dokumentierten+ip/und+password/Flags ersetzt, inklusive Hinweis auf die eingebaute Request-Firewall seit Version 0.5 und die Optionen--insecurebzw.+insecure. - Code-Korrektur:
GzipMiddlewareauf den korrekten NamenGZipMiddlewarekorrigiert. - Preise: die ursprüngliche Version enthielt keine Preisinformationen; Pagekite’s tatsächliches Pay-What-You-Want-Modell, Abonnementstufen und White-Label-Bulk-Preise wurden ergänzt, sowie die Vergleichstabelle zu ngrok präzisiert.
- Unternehmens-/Urheberangabe: Bjarni Rúnar Einarsson und The Beanstalks Project ehf. (Island) als Projektursprung genannt.
- Ökosystem-Kontext: libpagekite © und upagekite (MicroPython/ESP32) wurden ergänzt.
- Wartungsstatus: Hinweis, dass der Blog seit Oktober 2021 ruhig ist, das GitHub-Repo eine Disclaimer hat, der Dienst aber weiterhin aktiv ist und Downloads aktuell sind.
- Unbestätigte Behauptung abgeschwächt: die Tabelle wurde auf “nicht eindeutig dokumentiert” bei Apex/Root-Domain-Support korrigiert.
- Meta-Description: wurde entfernt, da dies in dieser Serie nicht vorgesehen ist.**
Related InstaTunnel pages
Continue from this article into the most relevant product guides and workflows.
Related Topics
Keep building with InstaTunnel
Read the docs for implementation details or compare plans before you ship.