Ruby on Rails

Cara deploy Ruby on Rails di Web Hosting AwanCerah

Jalankan aplikasi Rails di Web Hosting AwanCerah dengan Setup Ruby App. Unggah kode, jalankan bundle install, isi SECRET_KEY_BASE, siapkan database dan aset, lalu aplikasi berjalan dengan Puma dan SSL.

Diperbarui 13 November 2026 · ±4 menit baca

Lewat Setup Ruby App, aplikasi Ruby on Rails berjalan terus di Web Hosting AwanCerah dengan Puma. Gem dipasang di folder aplikasi, lalu domain atau path diarahkan ke aplikasi Anda lengkap dengan SSL.

Kami mencoba langkah di panduan ini dengan aplikasi Rails 8.1 yang dibuat di komputer lain lalu diunggah, sampai halaman scaffold dan asetnya tampil lewat HTTPS.

Kartu aplikasi Rails di halaman Setup Ruby App
Kartu aplikasi Rails di halaman Setup Ruby App

Yang Anda perlukan

  • Web Hosting paket Sedang atau lebih tinggi. Paket Sedang memuat 3 aplikasi dan Besar 5, dihitung gabungan untuk Node.js, Python, dan Ruby. Di paket Mikro dan Kecil, Setup Ruby App tampil terkunci.
  • Domain yang sudah mengarah ke hosting dengan SSL aktif. Caranya ada di panduan Web Hosting.
  • Aplikasi Rails yang berjalan dengan Ruby 3.2. Rails 7 dan Rails 8 mendukung versi ini. Bila Gemfile berisi baris ruby, pastikan versinya mengizinkan 3.2.

Siapkan aplikasi sebelum diunggah

Path database production. Aplikasi Rails 8 yang dibuat tanpa Kamal menyisakan path database production sebagai komentar. Isi path-nya di config/database.yml supaya database tersimpan di folder storage:

production:
  primary:
    <<: *default
    database: storage/production.sqlite3
  cache:
    <<: *default
    database: storage/production_cache.sqlite3
    migrations_paths: db/cache_migrate
  queue:
    <<: *default
    database: storage/production_queue.sqlite3
    migrations_paths: db/queue_migrate
  cable:
    <<: *default
    database: storage/production_cable.sqlite3
    migrations_paths: db/cable_migrate

Aplikasi di path selain /. Bila Path URL nanti diisi, misalnya /blog, ubah config.ru seperti ini. Untuk Path URL /, config.ru bawaan sudah cukup.

require_relative "config/environment"

map ENV.fetch("RAILS_RELATIVE_URL_ROOT", "/") do
  run Rails.application
end
Rails.application.load_server

Yang tidak perlu diunggah: vendor/bundle, node_modules, tmp, log, dan config/master.key. Gem dipasang ulang di server, dan secret diisi lewat environment variables.

Masukkan kode aplikasi

  • Dari Git. Buka Terminal di kelompok Advanced, isi Folder kerja dengan apps, lalu jalankan git clone https://github.com/akun-anda/blog.git blog.
  • Upload dari komputer. Kompres proyek menjadi .zip. Di File Manager, buka folder apps, buat folder blog, upload file .zip ke dalamnya, lalu ekstrak.

Masukkan kode lebih dulu, baru buat aplikasinya. Folder yang masih kosong saat aplikasi dibuat akan diisi contoh aplikasi Rack.

Buat aplikasi

  1. Di dasbor hosting, buka Setup Ruby App di kelompok Software.
  2. Klik Buat aplikasi, lalu pilih Versi Ruby.
  3. Isi Folder aplikasi dengan nama folder kode Anda, misalnya blog.
  4. Pilih Domain dan isi Path URL.
  5. Biarkan Rackup file berisi config.ru.
  6. Klik Buat aplikasi.

Aplikasi belum bisa berjalan karena gem-nya belum terpasang. Kartu aplikasi bisa menampilkan Gagal berjalan sampai langkah berikutnya selesai.

Pasang gem, database, dan aset

Jalankan perintah berikut satu per satu di kotak Jalankan perintah di folder aplikasi pada kartu aplikasi.

  1. Klik bundle install. Gem dipasang di vendor/bundle di folder aplikasi. Di uji kami, aplikasi Rails 8.1 baru selesai dalam sekitar 4 menit karena beberapa gem dikompilasi.
  2. Jalankan rails secret, lalu salin teks panjang yang muncul.
  3. Klik ikon Ubah di kartu aplikasi. Di Environment variables, tambahkan SECRET_KEY_BASE berisi teks tadi, lalu simpan.
  4. Jalankan rails db:prepare untuk membuat database dan menjalankan migration.
  5. Jalankan rails assets:precompile.
  6. Klik ikon Restart, lalu Buka.

Perintah rails dan rake otomatis dijalankan lewat bundle exec. Perintah lain yang bisa dijalankan: bundle, ruby, gem, dan git. Perintah berjalan tanpa input interaktif dan berhenti otomatis setelah 15 menit.

Pesan "Using vips to process variants requires the libvips library" hanya peringatan. Abaikan bila aplikasi tidak membuat varian gambar dengan Active Storage.

Environment variables

Server sudah mengisi RAILS_ENV=production, RAILS_LOG_TO_STDOUT, dan RAILS_SERVE_STATIC_FILES. Tambahkan nilai milik aplikasi Anda lewat ikon Ubah, misalnya SECRET_KEY_BASE, atau RAILS_MASTER_KEY bila aplikasi memakai credentials Rails. Environment variables juga berlaku untuk perintah di kotak perintah, jadi rails db:migrate membaca nilai yang sama dengan aplikasi.

Database MariaDB

SQLite di folder storage cukup untuk banyak aplikasi dan ikut backup harian. Untuk MariaDB, buat database di Databases, tambahkan gem "mysql2" di Gemfile, jalankan bundle install, lalu pakai adapter mysql2 dengan host localhost dan port 3306 di bagian production config/database.yml.

Log dan performa

  • Klik Lihat log di kartu aplikasi. Log Rails tampil di sana karena aplikasi menulis log ke STDOUT.
  • Aplikasi yang crash dinyalakan ulang otomatis. Bila terus gagal, kartu menampilkan Gagal berjalan. Perbaiki penyebabnya dari log, lalu klik Restart.
  • Puma berjalan dengan 1 sampai 5 thread. Pengaturan di config/puma.rb tidak dipakai.

Memperbarui aplikasi

Jalankan git pull, lalu bundle install bila Gemfile.lock berubah, rails db:migrate bila ada migration baru, dan rails assets:precompile. Setelah itu klik Restart.

Tips

  • Job Active Job tidak diproses oleh proses terpisah. Untuk job ringan, isi config.active_job.queue_adapter = :async di config/environments/production.rb supaya job berjalan di dalam proses aplikasi.
  • Aplikasi Rack lain seperti Sinatra juga bisa dijalankan selama punya config.ru.
  • Bila aplikasi dihapus dari console, file di foldernya tidak ikut terhapus.
  • Butuh Sidekiq, Redis, atau akses root? Pakai Cloud VPS.

Jalankan aplikasi Rails Anda

Setup Ruby App tersedia mulai paket Sedang Rp59.000 per bulan dengan 3 aplikasi, sudah termasuk SSL, email, dan backup harian.

Buat Web Hosting

Masih ada pertanyaan?

Tim kami siap membantu lewat live chat, email, atau WhatsApp.

Chat WhatsApp support@awancerah.cloud