Gemfile com o bundle install e roda o arquivo com o ruby. As gems ficam guardadas no projeto, e o ruby app.rb já acha as gems, sem o bundle exec.
app.rb
Gemfile
cube.json
Gemfile e sem cube.json é recusado com missing_config, dizendo que o projeto é Ruby.
Como funciona
- Gems:
bundle installquando oGemfileou oGemfile.lockmudam, sem os gruposdevelopmentetest. As gems ficam na pasta do projeto, fora do código: um envio novo não reinstala nada se oGemfilenão mudou. O compilador vem junto, então gems nativas comopuma,pg,mysql2ebcryptinstalam. - Início: o comando que sai do arquivo principal é
ruby <arquivo>;bundle exectambém funciona. - Produção: a variável
RACK_ENVvem comoproduction(uma sua vale no lugar). O Sinatra em produção ouve em0.0.0.0e na porta da variávelPORT, que é a do site. - Build: o
builddocube.jsonroda depois dobundle install, antes de iniciar (no Rails, oassets:precompile).
Sites
- Sinatra
- Rails
- Rack (puma)
cube.json
config.ru. Sem ele, o ruby app.rb do Sinatra clássico também serve.Versões e memória
- Ruby 3.4 (a padrão) e Ruby 4.0. Um
ruby "3.3.0"fixo noGemfilenão instala: troque pararuby "~> 3.4"ou tire a linha. - A memória segue o mínimo do tipo no plano (bot 256 MB nos pagos e 100 MB no Free; site 512 MB). O Rails costuma pedir mais: comece com 1 GB.
Problemas comuns
Your Ruby version is 3.4.x, but your Gemfile specified 3.3.0: oGemfilefixa outra versão. Mude a linharubyou escolha a versão em Configurações › Geral.cannot load such file -- rackup: o Sinatra 4 precisa das gemsrackupepuma(ouwebrick) noGemfile.Blocked hosts: meu-site.cubehost.dev(Rails): falta o endereço noconfig.hosts.

