Skip to content

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:

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

If 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.

← All posts