Zum Inhalt springen

Envoryx 0.12: Go und Ruby

Bisher konnte Envoryx PHP, Python und Node.js. Mit 0.12 kommen zwei Sprachen dazu: Go und Ruby. Beim Anlegen eines Projekts bietet dir der erste Schritt jetzt auch eine Go-Anwendung und eine Ruby-Anwendung an - und hast du schon ein Projekt, fügst du beides im Tab Laufzeit hinzu.

Go

Go sollte sich so schnell anfühlen wie go run auf dem Laptop, nur eben auf deinem Server und mit einer richtigen Domain. Schaltest du Server bauen und starten ein, baut Envoryx dein Main-Package und startet es auf $PORT. Im Entwicklungsmodus beobachtet air deine .go-Dateien und baut bei jedem Speichern neu; im Produktionsmodus wird einmal gebaut und dann das Binary gestartet. Hat das Projekt kein PHP, geht die Projekt-URL direkt zu deinem Server.

Du kannst mit einem Template anfangen - reines net/http, Gin oder Echo - oder dein eigenes Repository klonen. Der Tests-Tab führt go test ./... aus und zeigt dir, welche Tests fehlgeschlagen sind, und Modul- und Build-Cache teilen sich alle Projekte. Das zweite Projekt lädt also nicht noch einmal die halbe Welt herunter.

Brauchst du einen Debugger? Mit Delve debuggen startet den Server unter einem Headless-Delve. Im IDE-Tab steht, wohin sich GoLand oder VS Code verbinden.

Ruby

Für Ruby gibt es zwei Arten, den Server zu starten. Rails nimmt beim Entwickeln bin/rails server und im Produktionsmodus Puma. Rack startet Puma auf deiner config.ru - damit laufen Sinatra, Roda, Hanami und alles andere, was Rack spricht.

Mein Lieblingsteil: Bevor der Server startet, schaut Envoryx nach, ob alle Gems installiert sind, und führt sonst bundle install aus. Rails-App klonen, starten, läuft. Außerdem akzeptiert Rails im Entwicklungsmodus die Hostnamen des Projekts, und DATABASE_URL kommt so an, wie Active Record es erwartet.

Es gibt Templates für Rails, Rails (API only) und Sinatra, Aktionen für Bundler und die üblichen rails db:-Tasks und Worker für Solid Queue, GoodJob und Sidekiq. Der Testrunner kann RSpec und rails test - und er läuft immer gegen eine eigene <datenbank>_test, damit deine Fixtures nie deine Entwicklungsdaten wegräumen.

Zum Debuggen startet Mit rdbg debuggen den Server unter rdbg --open; daran hängt sich VS Code. RubyMine geht einen anderen Weg: Du richtest den Container als SSH-Remote-Interpreter ein, und RubyMine debuggt mit seinem eigenen Debugger.

Aktualisieren

Mit Compose sind es die üblichen zwei Befehle:

Terminal window
docker compose pull && docker compose up -d

Hast du Envoryx mit docker run gestartet, holst du das Image, entfernst den Container und startest ihn mit deinem Befehl neu. Beides steht auf der Installationsseite, und alles, was sich sonst geändert hat, im Changelog.

← Alle Beiträge