https://d226lax1qjow5r.cloudfront.net/blog/blogposts/using-ngrok-in-rails-in-2022/ngrok_rails.png

Verwendung von ngrok in Rails im Jahr 2025

Zuletzt aktualisiert am August 24, 2023

Lesedauer: 3 Minuten

Dieser Artikel wurde im März 2025 aktualisiert.

In der Entwicklung gibt es viele Situationen, in denen ein lokaler Server nicht ausreicht. In solchen Fällen können wir ein raffiniertes Werkzeug namens ngrok. ngrok erstellt Tunnel. Diese Tunnel verbinden Ihre lokale Codebasis mit einer öffentlichen Site, ohne dass Sie eine lästige Konfiguration vornehmen müssen. Der Hauptanwendungsfall für Vonage-Entwickler ist die Verwendung einer API, die auf Webhooks angewiesen ist, um automatisierte Informationen zu senden. Sie können mehr darüber lesen in Testen mit ngrok in unseren Entwicklerportal-Tools.

Der Anwendungsfall, der uns in diesem Artikel interessiert, ist die Verwendung von ngrok mit Ruby on Rails bei der Erstellung eines Projekts, auf das andere Benutzer über ihren Browser zugreifen können. Dies ermöglicht eine möglichst realistische Simulation. Außerdem ist es ziemlich cool, etwas mit Freunden zu teilen, auch wenn man es nie öffentlich einsetzt.

Haftungsausschluss: ngrok ist für die nicht-kommerzielle Nutzung kostenlos, erfordert aber ein kostenpflichtiges Konto, wenn Ihr Produkt kommerziell ist. Eine Alternative zu ngrok ist LocalTunnel das Open Source ist und unter der MIT-Lizenz steht. Das Vonage Developer Relations Tooling Team verwendet LocalTunnel für die Arbeit mit den Vonage Client SDKs. Verwenden Sie das, was für Ihre Bedürfnisse am besten geeignet ist.

Installation von ngrok

Aus der ngrok-Dokumentation geht hervor, dass die vollständige Installation von ngrok aus drei Schritten besteht: Installation des ngrok-Agenten, Erstellen eines Kontos und anschließendes Verbinden des Agenten mit dem Konto. Und für Rails gibt es einen zusätzlichen Schritt, das Hinzufügen von ngrok zu Ihrer Entwicklungsumgebung.

Installation des Agenten

Für MacOS verwenden Sie HomeBrew:

brew install ngrok

Für Linux verwenden Sie Apt:

curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
  | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
  && echo "deb https://ngrok-agent.s3.amazonaws.com buster main" \
  | sudo tee /etc/apt/sources.list.d/ngrok.list \
  && sudo apt update \
  && sudo apt install ngrok

Für Windows, verwenden Sie Schokoladig:

choco install ngrok

Extrahieren Sie den Wirkstoff

Unter Linux oder Mac OS X können Sie ngrok mit dem folgenden Befehl von einem Terminal aus entpacken. Unter Windows doppelklicken Sie einfach auf ngrok.zip, um es zu entpacken.

unzip /path/to/ngrok.zip

Ein Konto erstellen

Wenn Sie noch kein Konto haben, können Sie sich auf dem ngrok-Dashboard. Wenn Sie ein Konto haben, melden Sie sich an. In jedem Fall müssen Sie mit Ihrem kostenlosen Konto Ihren Authtoken für den Netzschritt abrufen. Gehen Sie einfach hier.

Verbinden Sie Ihren Agenten mit Ihrem Konto:

Hier benötigen wir das Authtoken aus dem letzten Schritt. Mit dem Authotoken meldet sich der Agent bei Ihrem Konto an, wenn er einen Tunnel erstellt.

Führen Sie die folgende Zeile in der Befehlszeile aus. Vergessen Sie nicht, TOKEN durch Ihren aktuellen Authtoken zu ersetzen.

ngrok config add-authtoken TOKEN

Laufender Ngrok

Das Beste an ngrok ist, dass es den einfachsten Befehl überhaupt hat. Nur eine einzige Zeile, um ihm mitzuteilen, welchen Port es abhören und ausliefern soll. In einer Rails-Anwendung wissen wir, dass Puma Port 3000 liebt!

ngrok http 3000

Hinzufügen von ngrok zu Ihrer Rails-Entwicklungsumgebung

In Ihrer Anwendung haben Sie eine Datei config/environments/development.rb. Diese Datei teilt Rails mit, wie es die Entwicklungsumgebung konfigurieren soll.

Hier müssen wir eine Zeile hinzufügen:


config.hosts << "\[ngrok url]"

Screenshot of an ngrok session showing forwarding from localhost:3000 to a public ngrok URL, with session details such as version, region, and latency."ngrok terminal output showing active tunnel forwarding localhost:3000 to a public ngrok URL.

Zum Beispiel würde ich in dem obigen Beispiel der Ausführung von ngrok hinzufügen:


Rails.application.configure do
  config.hosts << "XXXX.ngrok.app"

Es ist wichtig, dass diese Zeile innerhalb des Rails.application.configure do Blocks hinzugefügt wird.

Jetzt können wir unseren Rails-Server starten:

rails s

Und jetzt ist unsere App einsatzbereit und Sie können Freunde einladen, sie auszuprobieren, indem Sie ihnen die ngrok-URL schicken.

Fortgeschrittene: Regex zum Umgang mit dynamischen ngrok-URLs

Wenn Sie ein kostenloses ngrok-Konto verwenden, wird sich die URL häufig ändern. Sie können die folgende Regex verwenden, um die Hostkonfiguration einmal festzulegen und müssen sie nie aktualisieren.

Rails.application.configure do
  config.hosts << /.*\.ngrok-free\.app$/

Häufige Fehler

Dies sind einige häufige Fehler, die ich immer wieder mache, egal wie oft ich sie wiederholen muss.

  • Hinterlassen von https in der confg.hosts

  • Hinterlassen eines Leerzeichens in der config.hosts

  • Vergessen des Neustarts des Rails-Servers nach dem Hinzufügen oder Aktualisieren der config.hosts in der Entwicklung

  • Hinzufügen der config.hosts außerhalb von "Rails.application.configure do"

Beteiligen Sie sich an der Konversation

Verwenden Sie gerne ngrok oder haben Sie eine bevorzugte Alternative? Teilen Sie uns Ihre Gedanken zum Thema Werkzeugbau mit! Beteiligen Sie sich an der Diskussion auf unserem Vonage Community Slack oder senden Sie uns eine Nachricht auf Twitter.

Teilen Sie:

https://a.storyblok.com/f/270183/384x384/e4e7d1452e/benjamin-aronov.png
Benjamin AronovAdvokat für Entwickler

Benjamin Aronov ist ein Entwickler-Befürworter bei Vonage. Er ist ein bewährter Community Builder mit einem Hintergrund in Ruby on Rails. Benjamin genießt die Strände von Tel Aviv, das er sein Zuhause nennt. Von Tel Aviv aus kann er einige der besten Startup-Gründer der Welt treffen und von ihnen lernen. Außerhalb der Tech-Branche reist Benjamin gerne um die Welt auf der Suche nach dem perfekten Pain au Chocolat.