Envoryx 0.12: Go and Ruby
Until now, Envoryx spoke PHP, Python and Node.js. With 0.12 it learns two more languages: Go and Ruby. When you create a project, the first step now offers a Go application and a Ruby application - and if you have a project already, you can add either one on the Runtime tab.
Go
I wanted Go to feel as quick as go run on your laptop, only on your server and with a proper
domain. So when you turn on Build and run the server, Envoryx builds your main package and
starts it on $PORT. In development mode, air watches your
.go files and rebuilds on every save; in production mode it builds once and runs the binary.
If the project has no PHP, the project URL goes straight to your server.
You can start from a template - plain net/http, Gin or Echo - or clone your own repository.
The Tests tab runs go test ./... and shows you which tests failed, and the module and build
caches are shared between all projects, so the second project doesn’t download the world again.
Need a debugger? Debug with Delve runs the server under a headless Delve. The IDE tab tells GoLand or VS Code where to connect.
Ruby
For Ruby there are two ways to run a server. Rails uses bin/rails server while you develop
and Puma in production mode. Rack runs Puma on your config.ru, which covers Sinatra, Roda,
Hanami and everything else that speaks Rack.
The part I like most: before the server starts, Envoryx checks whether all gems are installed
and runs bundle install if not. Clone a Rails app, press start, and it comes up. Rails also
accepts the project’s host names in development, and DATABASE_URL arrives in the format
Active Record expects.
There are templates for Rails, Rails (API only) and Sinatra, one-click actions for
Bundler and the usual rails db: tasks, and workers for Solid Queue, GoodJob and Sidekiq. The
test runner handles RSpec and rails test - and it always runs against a separate
<database>_test, so your fixtures never wipe your development data.
For debugging, Debug with rdbg starts the server under rdbg --open, which VS Code attaches
to. RubyMine goes a different way: add the container as an SSH remote interpreter, and RubyMine
debugs with its own debugger.
Updating
With Compose it’s the usual two commands:
docker compose pull && docker compose up -dIf you started Envoryx with docker run, pull the image, remove the container and start it
again with your command. Both are on the installation page,
and everything else that changed is in the changelog.