Kisah ini bermula dari teman saya yang bilang kalau layanan continuous integration yang mereka gunakan untuk membuat rom sudah tidak bisa membuat rom secara bebas biaya. Tentu ini berdampak dengan nganggurnya layanan VPS yang ku gunakan, padahal sedang ku hemat saldonya agar bisa upload setiap saat. Daripada mubazir, akhirnya ku pakai saja untuk server userbot saja. Kali ini saya akan menggunakan teknologi kontainer untuk memasangnya dengan tujuan untuk mengurangi modifikasi pada sistem utama pada operasi sistem yang ada di server.
Pasang docker dulu, duh
Saya sendiri docker mengikuti petunjuk dari sini meskipun harus menambah repository lagi. Kalau semisal mau menggunakan compose sekalian ya sekalian pasang saja disini
Mencari Dockerfile dan Membuat Image
Untuk menambah kontainer pada sistem, kita membutuhkan image sebagai dasarnya. Untuk mendapatkan ini kita memperlukan dua cara. Pertama dengan mengunduh langsung image yang sudah jadi dengan perintah
docker pull anu
Kedua, membuat/mencari image dari Dockerfile yang sudah ada. Karena userbot yang saya akan pasang memerlukan untuk membuat sendiri. Sehingga kita perlu untuk membuatnya sendiri.
git clone https://github.com/BianSepang/WeebProject.git
cd WeebProject
docker build -t userbot .
Sebelum anda melakukan hal ini pastikan anda telah mengisi file config.env dengan konfigurasi yang ada pada repository tersebut
Kemudian atur Postgreesql
Kali ini setup postgreesql ku taruh di host, kenapa? Saya masih belom ingin untuk ribet dengan database di docker
sudo -i -u postgres
psql
kemudian ketik
CREATE DATABASE userbot;
CREATE USER userbot WITH ENCRYPTED PASSWORD 'passwordmu';
GRANT ALL PRIVILEGES ON DATABASE userbot TO userbot;
Kemudian atur userbot mu seperti biasa ikuti petunjuk di config.env, ubah lah sesuai petunjuk. Untuk bagian database
DATABASE_URL = "postgresql://(usermu):(passwordmu)@userbot:5432/weebproject
Kemudian jalankan deh
Lakukan
docker run --add-host=userbot:host-gateway -it userbot
Kalau semisal sudah berjalan dengan mulus, kita tinggal menjalankanya sebagai daemon alias proses yang berjalan di latar belakang
docker run --add-host=userbot:host-gateway -d userbot
Kemudian kalau semisal ingin menghentikanya, pertama kita cari proses userbotnya
ai@lab:~/userbot$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f4b3ff303df8 userbot_userbot "python3 -m userbot" 16 seconds ago Up 12 seconds 80/tcp, 443/tcp elated_satoshi
Kemudian kita tinggal kill dengan cara
docker stop (container ID)
Tambahan
Ternyata setelah ane coba, ternyata menjalankan dengan cara docker run cukup ribet. Alhasil ku putuskan untuk mengganti cara menjalankanya menggunakan docker-compose
Ganti file docker-compose.yml yang berada di folder userbot dengan ini
version: '3.4'
services:
userbot:
extra_hosts:
- userbot:host-gateway
build:
context: .
dockerfile: ./Dockerfile
restart: always
kemudian tinggal jalankan
docker-compose up -d
kalau mau menghentikan tinggal jalankan
docker-compose stop