Anda di halaman 1dari 24

Panduan Instalasi Portal Data CKAN untuk

Kementerian/Lembaga/Daerah

Imam Arif Rahman ST.


(imam.rahman@support.bappenas.go.id)
Tenaga Ahli Bidang Aplikasi dan Teknologi
Sekretariat Satu Data Indonesia, Kementerian PPN/Bappenas

Document Ver.1.0
Oktober 2021
1 Persiapan Environment

2 Instalasi Docker
Outline
Instalasi CKAN Menggunakan
3
Docker

Instalasi NGINX dan SSL Let’s


4
Encrypt
1

PERSIAPAN ENVIRONMENT
Portal Satu Data di KLD (Solution Proposed)

Portal Open Data Satu Data Indonesia (SDI)


menggunakan framework CKAN (Comprehensive
Knowledge Archive Network) sebagai DMS (Data
Management System) untuk menyimpan seluruh
katalog data.

* 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

Jenis Jumlah Server CPU RAM Storage

Portal Nasional 2 (Web & DB/Solr) Quadcore 8 GB 160 GB

Portal Daerah 2 (Web & DB/Solr) Dualcore 2 GB 80 GB

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

OS Ubuntu Server 20.04 (latest version)

Web Server NGINX / Apache

Programming Python 3.8


Language

Database & PostgreSQL & SOLR


Indexing

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

$ sudo apt-get install \

apt-transport-https \
ca-certificates \

curl \

gnupg \
lsb-release

a. Tambahkan Docker’s official GPG key:


curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o
/usr/share/keyrings/docker-archive-keyring.gpg
Instal Docker Engine

● Instal Docker Engine:


a. Update APT package index, dan instal Docker Engine versi terbaru beserta containerd:
$ sudo apt-get update

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

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. Aplikasikan executable permissions ke dalam binary:


$ sudo chmod +x /usr/local/bin/docker-compose

a. Pastikan bahwa Docker Compose telah terinstal secara benar dengan menjalankan perintah:
$ sudo docker-compose --version
3

INSTALASI CKAN MENGGUNAKAN DOCKER


Kloning Repository

● Repositori docker-ckan dapat diakses melalui tautan https://github.com/keitaroinc/docker-ckan


● Repositori ini berisi base container images, contoh dockerfile dan docker-compose yang digunakan
untuk membangun dan menjalankan CKAN.
● Terdiri dari CKAN Docker Images & Datapusher Docker Images. Datapusher adalah standalone web
service yang secara otomatis mengunduh file data tabular CSV dari resource CKAN, lalu mem-
parsingnya untuk mengeluarkan data aktual, dan menggunakan API DataStore untuk memasukkan
data ke DB DataStore CKAN.
● Untuk melakukan kloning repo, jalankan perintah git clone pada terminal:
$ git clone https://github.com/keitaroinc/docker-ckan.git
Modifikasi ENV File

● Lakukan konfigurasi environment CKAN dengan memodifikasi file .env dan file .ckan-env serta file
docker-compose.yml
● Masuk ke dalam folder /compose:
$ cd compose

● Edit file .env dengan menggunakan editor seperti nano / vim:


$ sudo nano .env

● Ubah password DB dan lakukan penyesuaian CKAN_SITE_URL dengan URL portal data:
Modifikasi ENV File

● Edit file .ckan-env dengan menggunakan editor seperti nano / vim:


$ sudo nano .ckan-env

● Ubah user id, password, dan email CKAN SYSADMIN dan lakukan penyesuaian CKAN_SITE_URL
dengan URL portal data:
Modifikasi docker-compose.yml

● Edit file docker-compose dengan menggunakan editor seperti nano / vim:


$ sudo nano docker-compose.yml

● Ubah CKAN_SQLALCHEMY_URL, CKAN_DATASTORE_WRITE_URL, dan


CKAN_DATASTORE_READ_URL pada bagian “@db”, dan diubah dengan alamat IP address
database yang sudah terinstall postgreSQL:
● Misalkan menjadi “@10.1.0.11”
Modifikasi docker-compose.yml

● Edit file docker-compose dengan menggunakan editor seperti nano / vim:


$ sudo nano docker-compose.yml

● Ubah CKAN_SQLALCHEMY_URL, CKAN_DATASTORE_WRITE_URL, dan


CKAN_DATASTORE_READ_URL pada bagian “@db” misalkan menjadi “@10.1.0.11”, dan diubah
dengan alamat IP address database yang sudah terinstall postgreSQL (tahap ini tidak perlu
dilakukan jika PostgreSQL terinstall di lokasi server yang sama dengan CKAN):
Build Images dan Jalankan Container

● 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

● Tunggu beberapa saat hingga proses selesai


● Proses ini akan memakan waktu beberapa menit
Build Images dan Jalankan Container

● Pastikan container berjalan dan tidak ada error, cek dengan perintah:
$ sudo docker ps

● Cek http://localhost:5000 di browser


● Akan muncul tampilan home CKAN
4

INSTALASI NGINX DAN SSL LET’S ENCRYPT


Konfigurasi Firewall Menggunakan UFW

● 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

$ sudo systemctl enable 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

$ sudo ufw allow http

$ sudo ufw allow https

● 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

● Konfigurasi nginx file:


$ sudo nano /etc/nginx/sites-available/default

server_name namadomain.go.id www.namadomain.go.id;

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

$ sudo service nginx restart


SSL Certificate Let’s Encrypt

● 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

$ sudo apt-get update

$ sudo apt-get install python-certbot-nginx

$ sudo certbot --nginx -d namadomain.go.id -d www.namadomain.go.id


Referensi

● Overview — CKAN 2.9.4 documentation (https://docs.ckan.org/en/2.9/)


● keitaroinc/docker-ckan: CKAN docker images, docker-compose and examples
(https://github.com/keitaroinc/docker-ckan)
● Node app deploy with nginx & SSL
(https://gist.github.com/bradtraversy/cd90d1ed3c462fe3bddd11bf8953a896)
● Install Docker Engine on Ubuntu (https://docs.docker.com/engine/install/ubuntu/)
● https://github.com/ckan/ckan/wiki/CKAN-hosting-guidelines
● https://www.jogjahost.co.id/blog/apa-itu-nginx/
● https://github.com/ckan/datapusher
● https://medium.com/@dataq/konfigurasi-firewall-menggunakan-ufw-pada-ubuntu-16-04-
c05a1c37aee3
Terima Kasih
Salam Satu Data

@data.go.id

@datagoid

www.facebook.com/datagoidofficial

Anda mungkin juga menyukai