Server

Panduan Lengkap Install CKAN di ubuntu 20.04

Comprehensive Knowledge Archive Network (CKAN) adalah perangkat lunak open source untuk portal open data, CMS yang dapat membantu kita dalam mengelola dan menerbitkan sekumpulan data. CKAN digunakan oleh pemerintah pusat dan daerah, lembaga penelitian, dan organisasi lain untuk mempublikasikan data.

Contoh pemakaian di Indonesia yaitu Satu Data Indonesia (SDI) yang merupakan kebijakan tata kelola data pemerintah dengan tujuan untuk menciptakan data berkualitas, mudah diakses, dan dapat dibagi pakaikan antar instansi pusat dan daerah. Kebijakan SDI ini tertuang dalam Peraturan Presiden No. 39 Tahun 2019 tentang Satu Data Indonesia. Melalu SDI, seluruh data pemerintah dan data instansi lain yang terkait dapat bermuara di Portal Satu Data Indonesia (data.go.id). Contoh pemerintah daerah yang memiliki portal open data yaitu Open Data Jakarta, Open Data Bandung, atau Open Data Kalimantan Barat.

Tech Stack

CKAN dikembangkan dengan menggunakan bahasa pemrograman Python sebagai backend, JavaScript sebagai frontend, database PostgreSQL dan search engine Solr. CKAN memungkinkan untuk ditambahkan ekstensi atau fitur tambahan karena memakai arsitektur modular. Selain itu CKAN juga memiliki fitur API.

System Requirements

1. Hardware Requirements

Untuk portal dengan skala nasional dengan trafik tinggi :

  • 2 server dengan RAM 8GB. Satu server untuk web dan satunya lagi untuk database/Solr.
  • Storage 160GB. Web server bisa saja lebih besar, sesuai kebutuhan, seberapa banyak data yang ingin disimpan.
  • Quad core processor. Lebih cepat lebih baik.

Untuk portal level daerah dengan trafik lebih rendah :

  • 2 server dengan RAM 2GB.
  • Storage 80GB.
  • Dual core processor.

Web dan database dapat digabungkan dalam satu server yang sama, tetapi CKAN merekomendasikan memisahkannya demi alasan keamanan.

2. Software Requirements

Operating system

Direkomendasikan menggunakan Ubuntu 16.04 64bit, CKAN tersedia dalam paket .deb. CKAN juga sudah diuji di CentOS dan distribusi Linux utama lainnya.

Web server

  • Apache
  • Nginx, untuk https dan caching
  • Python 2.7.x

Database server

  • Postgres 9.3+
  • Redis
  • Tomcat/Jetty + Solr

System requirements di atas berdasarkan hosting guidelines CKAN, update terakhir 20-12-2017.

Perangkat Tutorial

Berikut ini merupakan perangkat yang digunakan di tutorial ini, yaitu :

  • VPS 1CPU, RAM 2GB, Disk 50GB
  • Ubuntu 20.04
  • Nginx 1.18
  • Python 3.8.5
  • Supervisor 4.1.0
  • PostgreSQL 12.4
  • Redis 5.0.7
  • Solr 3.6.2
  • CKAN package 2.9.1

Port yang digunakan :

Service Port Used for
Nginx 80 Proxy
uWSGI 8080 Web server
uWSGI 8800 Data Pusher
Solr/Jetty 8983 Search
PostgreSQL 5432 Database
Redis 6379 Search

1. Install CKAN package

Update Ubuntu.

sudo apt update
sudo apt upgrade -y

Install package dependencies.

sudo apt install -y libpq5 redis-server nginx supervisor

Download CKAN package.

wget http://packaging.ckan.org/python-ckan_2.9-py3-focal_amd64.deb

Install CKAN package.

sudo dpkg -i python-ckan_2.9-py3-focal_amd64.deb

2. Install PostgreSQL

Install PostgreSQL database.

sudo apt install postgresql -y

Cek apakah PostgresSQL terinstall dengan baik dengan cara menampilkan database yang ada.

sudo -u postgres psql -l

Membuat user PostgreSQL dengan nama ckan_default.

sudo -u postgres createuser -S -D -R -P ckan_default

Membuat database PostgreSQL dengan nama ckan_default.

sudo -u postgres createdb -O ckan_default ckan_default -E utf-8

Cek apakah database ckan_default berhasil dibuat.

sudo -u postgres psql -l

Hasilnya.

3. Install Solr

Install Solr engine.

sudo apt install solr-tomcat -y

Buka file konfigurasi Tomcat.

sudo nano /etc/tomcat9/server.xml

Ubah default port Tomcat dari 8080 ke nomor 8983.

Connector port="8983" protocol="HTTP/1.1"

Ganti file default schema.xml dengan symlink ke file CKAN schema yang disertakan di dalam sources.

sudo mv /etc/solr/conf/schema.xml /etc/solr/conf/schema.xml.bak
sudo ln -s /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml /etc/solr/conf/schema.xml

Restart Solr dengan merestart tomcat.

sudo systemctl restart tomcat9

4. Konfigurasi CKAN

Buka file konfigurasi CKAN.

sudo nano /etc/ckan/default/ckan.ini

Aktifkan opsi solr_url dengan menghapus hashtag (#).

solr_url=http://127.0.0.1:8983/solr 

URL untuk CKAN site, misalnya memakai subdomain data.defnex.com.

ckan.site_url = http://data.defnex.com

Opsi untuk koneksi ke database PostgreSQL, misalnya username = ckan_default, password = secretpassword, dan database = ckan_default.

sqlalchemy.url = postgresql://ckan_default:secretpassword@localhost/ckan_default

Inisialisasi database CKAN.

sudo ckan db init

Hasilnya.

2020-11-13 07:12:12,813 INFO [ckan.cli.db] Initialize the Database
2020-11-13 07:12:15,420 INFO [ckan.model] CKAN database version upgraded: base -> ccd38ad5fced (head)
2020-11-13 07:12:15,420 INFO [ckan.model] Database initialised
Initialising DB: SUCCESS

Restart Supervisor dan cek statusnya.

sudo supervisorctl reload
sudo supervisorctl status

Hasilnya

ckan-datapusher:ckan-datapusher-00 RUNNING pid 2711, uptime 0:00:21
ckan-uwsgi:ckan-uwsgi-00 RUNNING pid 2712, uptime 0:00:21
ckan-worker:ckan-worker-00 RUNNING pid 2713, uptime 0:00:21

Restart Nginx.

sudo systemctl restart nginx

5. Pengujian

Uji dengan browser http://localhost atau http://data.defnex.com.

6. Install SSL

Backup file default konfigurasi server block ckan.

cd /etc/nginx/sites-available/
sudo cp ckan ckan.bak

Buka file konfigurasi ckan.

sudo nano ckan

Masukkan opsi server_name dan log.

proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache:30m max_size=250m;
proxy_temp_path /tmp/nginx_proxy 1 2;

server {
    listen 80;
    server_name data.defnex.com;

    client_max_body_size 100M;
    location / {
        proxy_pass http://127.0.0.1:8080/;
        proxy_set_header Host $host;
        proxy_cache cache;
        proxy_cache_bypass $cookie_auth_tkt;
        proxy_no_cache $cookie_auth_tkt;
        proxy_cache_valid 30m;
        proxy_cache_key $host$scheme$proxy_host$request_uri;
        # In emergency comment out line to force caching
        # proxy_ignore_headers X-Accel-Expires Expires Cache-Control;
    }

    access_log /var/log/nginx/data.defnex.com_access.log;
    error_log /var/log/nginx/data.defnex.com_error.log warn;    
}

Tes konfigurasi Nginx.

sudo nginx -t

Restart Nginx.

sudo systemctl restart nginx 
sudo systemctl status nginx

Uji kembali mengakses http://data.defnex.com, apakah tidak ada masalah setelah konfigurasi Nginx diubah.

Install certbot untuk Let’s Encrypt SSL

sudo snap install --classic certbot 
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Request SSL untuk data.defnex.com.

sudo certbot --nginx -d data.defnex.com

Uji browser https://data.defnex.com.

7. Membuat sysadmin user

Gunakan CKAN command line interface untuk membuat sysadmin user pertama kali dan bisa juga untuk membuat test data.

Mengaktifkan virtualenv.

. /usr/lib/ckan/default/bin/activate
cd /usr/lib/ckan/default/src/ckan

Membuat user baru dengan nama musa dan menjadikannya sebagai sysadmin.

ckan -c /etc/ckan/default/ckan.ini sysadmin add musa email=trial@musaamin.web.id name=musa

Hasilnya.

User "musa" not found
Create new user: musa? [Y/n]: y
Password : 
Repeat for confirmation: 
Successfully created user: musa
Added musa as sysadmin

Atau jika ingin menjadikan user yang sudah ada sebagai sysadmin.

ckan -c /etc/ckan/default/ckan.ini sysadmin add musa

Uji sysadmin user yang baru dibuat dengan login di web CKAN.

8. Pemakaian Resources

Mengecek pemakaian resources VPS yang terpakai dengan menggunakan htop.

sudo apt install htop -y
htop

5/5 - (1 vote)
Risa Y

Recent Posts

Cara Redirect Domain/ Subdomain di Cpanel

Kamu dapat membuat pengalihan (redirect) untuk domain kamu di cPanel. Untuk melakukannya, lakukan langkah berikut:…

1 month ago

Setting Default Address di Cpanel

1. Masuk ke cPanel. 2. Di bagian Email, klik Default Address. 3. Secara default, cPanel…

1 month ago

Cara Setting Autoresponder di Cpanel

1. Masuk ke cPanel. 2. Klik ikon Autoresponders. Bagian ini adalah tempat untuk membuat email…

1 month ago

Perpedaan Antara Cpanel dan WHM

WHM (WebHost Manager) ialah pemberi kontrol administratif atas server khusus atau VPS Anda. Hal ini…

1 month ago

Cara Mengubah Bahasa di Cpanel

1. Masuk ke cPanel. 2. Klik nama pengguna di pojok kanan atas untuk melihat menu…

1 month ago

Cara Setting Email Filter di Cpanel

1. Masuk ke cPanel. 2. Di bawah bagian Email, klik Email Filter. 3. Klik Manage…

1 month ago