Kementerian/Lembaga/Daerah
Document Ver.1.0
Oktober 2021
1 Persiapan Environment
2 Instalasi Docker
Outline
Instalasi CKAN Menggunakan
3
Docker
PERSIAPAN ENVIRONMENT
Portal Satu Data di KLD (Solution Proposed)
* Penggunaan framework disesuaikan dengan kebutuhan terhadap fungsionalitas dan fitur di masing-masing portal.
Persyaratan Server
Persyaratan minimal server di bawah ini berdasarkan pada pedoman hosting CKAN
(https://github.com/ckan/ckan/wiki/CKAN-hosting-guidelines),
dokumen terakhir diperbarui tanggal 20 Desember 2017
Catatan:
● Web Server dan DB dapat berada di server yang sama tetapi kami menyarankan pemisahan untuk alasan
keamanan.
● Selain server produksi di atas, kami juga merekomendasikan untuk membuat lingkungan staging (development
server) tersendiri sehingga setiap pekerjaan pengembangan baru dapat diuji sebelum diterapkan ke server
production. Server development ini dapat menggunakan perangkat keras dengan spesifikasi lebih rendah tetapi
konfigurasinya harus mencerminkan lingkungan produksi.
Persyaratan Software
Software Jenis
Cache Redis
Microservice Docker
2
INSTALASI DOCKER
Instal Docker Engine
● Setup Repository:
a. Update APT package index dan install packages untuk mengijinkan APT menggunakan
repository diatas HTTPS:
$ sudo apt-get update
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
a. Pastikan bahwa Docker Engine telah terinstal secara benar dengan menjalankan perintah
hello-world image:
$ sudo docker run hello-world
Instal Docker Compose
a. Jalankan perintah di bawah ini untuk mengunduh rilis versi terbaru dari Docker Compose:
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-
$(uname -m)" -o /usr/local/bin/docker-compose
a. Pastikan bahwa Docker Compose telah terinstal secara benar dengan menjalankan perintah:
$ sudo docker-compose --version
3
● Lakukan konfigurasi environment CKAN dengan memodifikasi file .env dan file .ckan-env serta file
docker-compose.yml
● Masuk ke dalam folder /compose:
$ cd compose
● Ubah password DB dan lakukan penyesuaian CKAN_SITE_URL dengan URL portal data:
Modifikasi ENV File
● Ubah user id, password, dan email CKAN SYSADMIN dan lakukan penyesuaian CKAN_SITE_URL
dengan URL portal data:
Modifikasi docker-compose.yml
● Setelah file .env, .ckan-env, dan docker-compose.yml telah dimodifikasi, langkah selanjutnya adalah
membuat docker images dari file docker-compose.yml serta menjalankan container dari docker
images tersebut:
● Pada terminal, jalankan perintah:
$ sudo docker-compose build && docker-compose up -d
● Pastikan container berjalan dan tidak ada error, cek dengan perintah:
$ sudo docker ps
● Sebelum anda dapat melakukan konfigurasi firewall menggunakan ufw, anda harus memastikan
service ufw telah berjalan di server anda dengan perintah:
$ sudo systemctl status ufw
● Bila status service ufw inactive (dead), maka anda harus mengaktifkannya dengan cara:
$ sudo systemctl start ufw
● Firewall rule merupakan instruksi yang membentuk cara kerja Firewall. Rule menentukan koneksi
mana yang diterima atau ditolak. Langkah selanjutnya, konfigurasi beberapa Firewall rule
menggunakan UFW:
$ sudo ufw allow ssh
● Perintah diatas akan mengijinkan Port 22 (ssh), Port 80 (http), dan Port 443 (https) dapat diakses
Instal NGINX
● Nginx merupakan salah satu aplikasi web server yang populer saat ini dengan performa tinggi.
● Untuk menginstal NGINX pada web server, lakukan perintah berikut ini:
$ sudo apt install nginx
location / {
proxy_pass http://localhost:5000; #alamat IP Address aplikasi CKAN
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
● Cek konfigurasi file NGINX yang sudah dilakukan, lalu restart NGINX:
$ sudo nginx -t
● Let’s Encrypt adalah organisasi non-profit dari Linux Foundation yang menyediakan SSL gratis
dengan enkripsi standar untuk seluruh pemilik website.
● Untuk menambah SSL Let’s Encrypt, jalankan perintah berikut pada terminal:
$ sudo add-apt-repository ppa:certbot/certbot
@data.go.id
@datagoid
www.facebook.com/datagoidofficial