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:
docker compose pull && docker compose up -dHast 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.