Click here for English version.
Repo ini berisi kode untuk website Kontes Terbuka Olimpiade Matematika yang bisa diakses di https://ktom-tomi.or.id. Website ini dibuat oleh dua anggota KTO Matematika:
- Herbert Ilhan Tanujaya (@donjar)
- Jonathan Mulyawan Woenardi (@woenardi)
Website ini awalnya dibuat dengan tujuan pembelajaran. Namun, website ini terus berkembang hingga menjadi cukup besar.
Catatan: panduan di bawah ini dibuat untuk Ubuntu 20.04 LTS. Untuk sistem operasi lainnya, pengaturan awal akan sedikit berbeda. VirtualBox bisa digunakan untuk menajalankan Ubuntu di dalam sistem operasi lain.
Mohon unduh dan install paket-paket di bawah ini sebelum memulai:
software-properties-common
, paket ini dipakai oleh beberapa paket di bawahpostgresql
untuk databasetexlive
untuk menjalankan berbagai fungsi LaTeX yang diperlukan. Kami menyarankan untuk memasangtexlive-full
yang mencakup keseluruhan texlive; kalau ruang disk Anda terbatas,texlive-base
cukup memadai untuk sebagian besar pengolahan LaTeX yang diperlukan
Anda bisa menggunakan apt
untuk memasang paket-paket di atas dengan perintah
sudo apt install <nama paket>
- Pastikan bahwa paket-paket di atas telah di-install
- Unduh semua file dalam repositori ini, menggunakan
git clone
atau dengan cara lainnya - Website ini menggunakan
ruby
, dan untuk memudahkan manajemen versiruby
yang digunakan, Anda boleh memakairvm
ataurbenv
. Kami akan menunjukkan cara setuprvm
dalam panduan ini, diadaptasi dari panduan instalasi untuk Ubuntu:- Tambah PPA ke dalam komputer, dan install
rvm
:sudo apt-add-repository -y ppa:rael-gc/rvm sudo apt-get update sudo apt-get install rvm
- Masukkan user Anda ke dalam grup rvm (ganti
<username>
dengan nama user Anda):sudo usermod -a -G rvm <username>
- Ubah terminal untuk menjalankan perintah sebagai login shell. Untuk
mengubah aturan ini secara manual, jalankan perintah
/bin/bash --login
; jika Anda menggunakan terminal GNOME, Anda bisa mengubah peraturan ini dari setting terminal:- Klik menu hamburger (3 garis horizontal) dalam terminal.
- Klik Preferences
- Cari profil Anda di sidebar, di bawah Profile
- Pilih tab Command
- Centang Run command as login shell
- Reboot komputer Anda.
- Nyalakan gemset lokal dengan perintah
rvm user gemsets
- Sekarang Anda bisa meng-install
ruby
. Website KTOM sekarang menggunakan ruby versi 2.5.0 (cek file Gemfile jika kurang yakin - versi ruby yang digunakan akan tertulis dalam file tersebut), dan untuk meng-install versi 2.5.0, gunakan perintahJikarvm install 2.5.0
ruby
sudah tersedia dalam komputer Anda sebelum instalasi ini, Anda dapat mengubah versi default dengan perintahdiikuti dengan menutup dan membuka kembali terminal.rvm --default use 2.5.0
- Tambah PPA ke dalam komputer, dan install
- Cek bahwa versi
ruby
yang telah di-install benar (versi 2.5.0) denganruby --version
- Pasang
bundler
danrails
. Website KTOM sekarang berjalan dengan bundler bersi 1.17.3 dan rails versi 4.2.11.1, dan versi mutakhir dapat dilihat di file Gemfile dan Gemfile.lock.gem install rails -v 4.2.11.1 gem install bundler -v 1.17.3
- Dari dalam direktori repositori yang telah diunduh, jalankan
untuk meng-install gem-gem yang dibutuhkan.
bundle install
- Setelah gem-gem yang diperlukan tersedia, Anda harus membuat dan memodifikasi
database untuk website ini:
- Buat file bernama
database.yml
dalam folderconfig
. Anda bisa melihat filedatabase.yml.default
sebagai contoh. - Buat user di postgres dengan username dan kata sandi yang tertera di
database.yml
. Untuk petunjuk di bawah, username yang digunakan adalahubuntu
, dan kata sandi yang digunakan adalahpassword
- Jalankan perintah
sudo -u postgres psql
untuk masuk kedalam shell postgres. - Buat user baru:
create user ubuntu with encrypted password 'password';
- Jadikan user tersebut sebagai superuser:
alter user "ubuntu" with superuser;
- Jalankan perintah
- Buat databse dengan perintah
bundle exec rake db:setup
- Jalankan semua migrasi dengan
bundle exec rake db:migrate
- Buat file bernama
- Buat
.env
file di root directory dan pindahkan isi dari.env.default
kedalam.env
. Setiap variabel di dalam.env
diisi sesuai dengan yang dibutuhkan. - Setup awal untuk menjalankan server selesai. Untuk menjalankan server lokal, gunakan
bundle exec rails s
- Sekarang, Anda bisa membuat admin di dalam website yang telah dibuat:
- Dalam browser, buka alamat website versi lokal (default:
0.0.0.0:3000
) - Buat akun seperti biasa
- Anda tidak akan mendapat email, dan harus mengaktivasi akun secara manual.
Buka konsol rails (perintah:
bundle exec rails c
) dan jalankanUser.first.enable
- Untuk membuat akun tersebut sebagai admin, jalankan dua perintah di bawah ini:
User.first.add_role :panitia User.first.add_role :admin
- Dalam browser, buka alamat website versi lokal (default:
Selamat, Anda telah selesai melakukan setup awal.
Ayok fork :D