您的 Ruby on Rails 服务器上安装什么?
- 来自 Ubuntu 24.04 软件源的 Ruby 3.2
- Rails 8(8.1 或更高版本),示例项目位于 /home/app/uygulama
- Puma 监听 127.0.0.1:3000,作为名为 uygulama 的 systemd 服务运行
- 数据库用 SQLite,生产数据库文件位于 storage/production.sqlite3
- 通过 Caddy 提供 HTTPS,Rails 中开启 force_ssl,所以域名是可选的
- 环境设置保存在文件 /etc/seturack-rails.env 中,包含 RAILS_ENV=production 和自动生成的 SECRET_KEY_BASE
- 编译 gem 所需的 build-essential 和开发库,另有 2 GB 的交换文件
- 防火墙只开放 22、80 和 443 端口
Ruby on Rails 需要多大的配置?
Rails 文档没有给出 RAM 数值。内存取决于 Puma 的进程数和线程数、您的 gem 以及 assets:precompile。经验上,1 GB 适合试用和小项目,有真实访问量的项目可以从 2 到 4 GB 起步。最小配置是 1 GB RAM、1 个 CPU 和 15 GB 磁盘,安装时还会为构建增加 2 GB 的交换空间。如果不够,请在面板中升级配置,并用 WEB_CONCURRENCY 设置 Puma 进程数。
| 用途 | 配置 | 价格 | 选择 |
|---|---|---|---|
| 入门 | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/月 | |
| 中等 | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/月 | |
| 强劲 | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/月 |
适合谁?
- 想把 Rails 项目跑在自己服务器上的开发者
- 学习 Rails、或在一台服务器上做原型或小型产品的人
- 从 SQLite 起步、以后可能迁到 PostgreSQL 的项目
下单之后会发生什么?
- 设定配置并完成付款。
- 服务器启动后,Ruby 和 Rails 会自行安装。在我们的真实服务器测试中大约需要 5 分钟。
- 在“概览”标签页打开“网站地址”。示例页面会显示 Rails 版本。
- 通过 SSH 连接,输入 su - app,进入 ~/uygulama,并把 /etc/seturack-rails.env 中的设置加载到您的 shell 中。
- 修改代码以后,依次运行这三条命令:bundle install、bin/rails db:migrate 和 bin/rails assets:precompile。
- 以 root 身份运行 systemctl restart uygulama 来重启 Puma。
每台服务器都包含
- 价格含每日备份
- 不限流量
- 完整 root 权限
- 之后可升级或降配 RAM 和 CPU,并扩大磁盘
- 位置:Istanbul · IST-1。
须知
- 示例项目刻意保持精简:没有配置 Hotwire、Action Cable、Solid Queue 或 Kamal。放入您自己的项目后,bundle install 会安装您的 Gemfile 中列出的内容。
- 强制 HTTPS 的设置在 config/initializers/seturack.rb 中。放入您自己的项目时请保留这个文件,或者自行设置 assume_ssl 和 force_ssl。
- 如果您的项目使用 Rails credentials,请把 RAILS_MASTER_KEY 添加到 /etc/seturack-rails.env。
- 安装的是 Ruby 3.2。如果您的项目需要更新的 Ruby,请自行安装,并修改服务文件中的 PATH 行。
- 让 gem 和 Rails 保持最新由您自行负责。Ubuntu 的安全更新会自动安装。
Ruby on Rails 常见问题
如何把我自己的 Rails 项目放到服务器上?
通过 SSH 连接并输入 su - app。先把示例项目改名,用 git clone 把您的代码克隆到 ~/uygulama,再把 config/initializers/seturack.rb 复制过去。运行 bundle install、bin/rails db:prepare 和 bin/rails assets:precompile,然后以 root 身份运行 systemctl restart uygulama。
如何在服务器上运行 Rails 命令?
输入 su - app 和 cd ~/uygulama。用 set -a; . /etc/seturack-rails.env; set +a 加载设置,再用 export PATH=$GEM_HOME/bin:$PATH 添加 gem 路径。之后,bundle、bin/rails console 和 bin/rails db:migrate 都会使用您的生产环境设置。
Ruby on Rails 需要多少 RAM?
Rails 没有官方的 RAM 数值。经验上,1 GB 适合试用和小项目,有真实访问量时可以从 2 到 4 GB 起步。增加 Puma 进程比增加线程更占内存。
可以用 PostgreSQL 代替 SQLite 吗?
可以。以 root 身份运行 apt install postgresql libpq-dev,把 pg 加入 Gemfile,修改 config/database.yml 的 production 部分,然后运行 bin/rails db:prepare。您也可以把数据库放在另一台服务器上。
安装的是哪个版本的 Ruby 和 Rails?
您会得到来自 Ubuntu 24.04 的 Ruby 3.2,以及安装时最新的 Rails 8 版本(8.1 或更高)。Rails 指南说明,Rails 8.0 和 8.1 需要 Ruby 3.2.0 或更新版本。
有 Rails 健康检查地址吗?
有。Rails 自带的 /up 路径是开放的,应用运行时会返回 200。它不参与 HTTPS 重定向,所以您可以让监控工具直接访问它。