I’m really trying to get on board with using Render as I really enjoy using it, but I have to keep deleting my account because:
- I cannot use wicked_pdf due to missing graphics libraries on the server
- I cannot run puma and sidekiq simultaneously on the same server
On Heroku we can use the Procfile to run two processes at the same time on the same server. How can we do this on Render?
Thanks for reaching out.
I’m guessing your Heroku
Procfile looks something like:
web: bundle exec puma -C config/puma.rb
worker: bundle exec sidekiq -C config/sidekiq.yml
This denotes your apps processes to run on separate Heroku dynos, Puma on a
web dyno, Sidekiq on a
worker dyno. Dynos are isolated containers, not “servers” as such, they likely won’t even be running on the same underlying machine.
To translate that to Render nomenclature, those dynos would become a Web Service for Puma & a Background Worker for Sidekiq.
We have examples to run Rails & Sidekiq in the docs:
- Getting Started with Ruby on Rails on Render
- Deploy a Sidekiq Worker
Multi-service deployments (including Postgres & Redis services, which you’d probably also need) can be configured in a
render.yaml blueprint, so that your infrastructure can be defined in your code, more on this here: Infrastructure as Code (IaC)
With regards to
wicked_pdf, as far as I’m aware the only dependency is
wkhtmltopdf, which is easiest installed with the
gem 'wkhtmltopdf-binary', '~> 0.12.6.5'
gem 'wicked_pdf', '~> 2.1'
…to the Rails 6 example repo, deployed to a Render Web Service and I was able to generate PDFs successfully.
Please let us know if we can assist any further.