Roda, Grape and Rack
How Gigadrive Network runs Roda, Grape and any other Rack application from its config.ru.
Any Ruby application with a config.ru runs on Gigadrive Network, whatever it is built with. Roda has its own preset, detected when your Gemfile.lock lists roda and a config.ru exists. Grape, plain Rack and every other Rack application are detected from a config.ru next to a Gemfile, after the framework presets have had their turn.
Defaults
| Setting | Value |
|---|---|
| Runtime | The Ruby version your project names, ruby-34 when it names none |
| Memory | 256 MB |
| Max duration | 30 seconds |
| Entrypoint | config.ru |
| Route | /* to the entrypoint |
| Assets | public, when the directory exists |
Both presets write RACK_ENV=production.
How requests are served
Your config.ru runs on Puma: the one in your Gemfile.lock when you added it, and otherwise a copy Gigadrive Network provides. Every request reaches your application unchanged, server-sent events (text/event-stream) reach the client as you write them, and a WebSocket upgrade is passed through to a Rack application that handles it. Runtimes describes the Ruby runtime in full.
The build
The build installs your gems with Bundler into vendor/bundle, leaving out the development and test groups, and runs a build script from package.json when there is one.
