Find a file
2023-12-27 00:01:23 -06:00
config.ru Simple single file app. 2023-12-26 17:57:27 -06:00
Gemfile Gemfile and README 2023-12-26 23:08:55 -06:00
LICENSE Initial commit 2023-12-26 15:45:04 -06:00
myapp.service Added systemd 2023-12-26 23:57:02 -06:00
README.md Update README.md 2023-12-27 00:01:23 -06:00

roda-templates

For the single file app template, really the only file you need is the config.ru and run it with puma.

Setup

Prereq installs

Will need ruby; install it via package manager or a ruby manager like rbenv/ruby-build. Will need the roda gem, and then an application server such as puma (recommended), gunicorn, or passenger. My examples will use system ruby and puma.

Option 1: System wide packages

With this example, will basically just ignore the project's Gemfile. Debian 12 has a pretty current ruby version so just using it.

sudo apt install ruby ruby-rack puma
sudo gem install roda

Option 2: Bundler

Run the bundle command from the project's root directory

sudo apt install ruby ruby-bundler
bundle config set --local path 'vendor/bundle'
bundle install

Run it

In the project root directory:

puma

This default to development mode. Run it in production mode with:

RACK_ENV=production puma

For development, just run it like that. For production, probably want to set up a systemd service.

Run it with systemd in production

Copy the example myapp.service file to /etc/systemd/system/ and edit accordingly. The example assumes a user named "myapp" with a group name "myapp", the application files are in /opt/myapp/, and puma is the system puma.