Cara Install CKAN Portal Open Data

Cara Install CKAN Portal Open Data

Bitnesia Software Apr 10, 2026 82 EN

CKAN (Comprehensive Knowledge Archive Network) adalah platform open data management yang paling banyak digunakan di dunia. Open Knowledge Foundation menciptakan platform ini dan mengembangkannya secara kolaboratif bersama komunitas global; CKAN menjadi tulang punggung portal data pemerintah di berbagai negara, seperti data.gov (Amerika Serikat), data.gov.uk (Inggris), hingga ribuan instansi regional termasuk Indonesia melalui program Satu Data.

Secara teknis, CKAN adalah aplikasi web berbasis Python yang menyediakan antarmuka untuk mempublikasikan, mencari, dan mengunduh dataset. Platform ini dilengkapi dengan REST API yang terstandarisasi, mesin pencari berbasis Solr, penyimpanan metadata di PostgreSQL, dan arsitektur plugin yang sangat extensible. Organisasi dapat menambahkan ratusan dataset, mengelompokkannya ke dalam organisasi, mengatur hak akses, dan memvisualisasikan data langsung dari browser menggunakan DataStore extension bawaan.

Tutorial ini membahas instalasi CKAN menggunakan metode Package Install. Metode ini merupakan cara termudah dan paling stabil untuk deployment produksi. Akhir tutorial ini akan membantu Anda memiliki portal open data yang berjalan di server sendiri (self-hosted). Portal tersebut dilengkapi dengan komponen berikut:

  • Aplikasi CKAN yang dikelola oleh Supervisor (uWSGI + DataPusher + Worker)
  • NGINX sebagai reverse proxy yang menghadap internet
  • PostgreSQL sebagai database utama untuk metadata dan dataset
  • Solr sebagai mesin pencari full-text internal
  • Redis sebagai cache dan message broker untuk background jobs

System Requirements

1. Spesifikasi Hardware

CKAN bukan aplikasi ringan karena menjalankan beberapa layanan sekaligus seperti uWSGI, Solr, PostgreSQL, dan Redis. Berikut adalah spesifikasi yang direkomendasikan berdasarkan panduan resmi hardware requirements CKAN:

KomponenMinimumRekomendasi Produksi
CPU2 Core4+ Core
RAM4 GB8 GB atau lebih
Disk60 GB100 GB+ SSD (NVMe lebih baik)
Network1 Gbps1 Gbps dengan IP publik statis
Arsitekturx86_64 (amd64)x86_64 (amd64)

Catatan: Jumlahkan spesifikasi minimum CKAN dan layanan pendukung (PostgreSQL, Solr) jika diinstal pada satu server yang sama. Untuk skalabilitas yang lebih baik, Anda dapat memisahkan database dan Solr ke server yang berbeda.

2. Sistem Operasi

Metode Package Install tersedia untuk Ubuntu 22.04 LTS (Jammy Jellyfish) 64-bit.

Catatan: Gunakan fresh install Ubuntu atau server yang belum terinstal paket lain untuk memastikan kompatibilitas.

3. Port yang Diperlukan

LayananPortFungsi
NGINX80 (HTTP), 443 (HTTPS)Reverse proxy menghadap internet
uWSGI (CKAN)8080Aplikasi web CKAN (internal)
uWSGI (DataPusher)8800Layanan import data otomatis (internal)
Solr8983Mesin pencari (internal, jangan expose)
PostgreSQL5432Database (internal)
Redis6379Cache dan message broker (internal)

4. Software Prerequisites

Pastikan server memiliki koneksi internet aktif dan sudo access. Semua paket lain akan diinstal secara otomatis selama proses instalasi. Versi Python minimum yang dibutuhkan adalah Python 3.9.

Langkah-Langkah Instalasi CKAN via Package

Proses instalasi terdiri dari tiga komponen utama yang harus dilakukan secara berurutan: paket CKAN, database PostgreSQL, dan mesin pencari Solr. Jangan melompati langkah karena setiap komponen bergantung pada komponen sebelumnya.

1. Install Paket CKAN

Langkah 1: Update indeks paket Ubuntu:

sudo apt update
sudo apt upgrade -y

Langkah 2: Install dependensi OS yang dibutuhkan CKAN (termasuk redis-server, nginx, supervisor, dan postgresql):

sudo apt install libpq5 redis-server nginx supervisor postgresql -y

Langkah 3: Download paket CKAN sesuai versi Ubuntu:

wget https://packaging.ckan.org/python-ckan_2.11-jammy_amd64.deb

Langkah 4: Install paket CKAN dengan dpkg:

sudo dpkg -i python-ckan_2.11-jammy_amd64.deb

Proses ini menginstal CKAN beserta environment Python ke dalam /usr/lib/ckan/default/ dan menempatkan berkas konfigurasi di /etc/ckan/default/ckan.ini.

2. Konfigurasi PostgreSQL

CKAN menggunakan PostgreSQL sebagai database utama untuk menyimpan semua metadata dataset, organisasi, pengguna, dan resource.

Langkah 1: Buat database user CKAN:

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

Catat password yang Anda masukkan karena akan digunakan saat mengonfigurasi ckan.ini.

Langkah 2: Buat database CKAN dengan encoding UTF-8:

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

Langkah 3: Verifikasi pembuatan user dan database:

sudo -u postgres psql -l

Contoh output:

                                 List of databases
     Name     |    Owner     | Encoding | Collate |  Ctype  |   Access privileges   
--------------+--------------+----------+---------+---------+-----------------------
 ckan_default | ckan_default | UTF8     | C.UTF-8 | C.UTF-8 | 
 postgres     | postgres     | UTF8     | C.UTF-8 | C.UTF-8 | 
 template0    | postgres     | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
              |              |          |         |         | postgres=CTc/postgres
 template1    | postgres     | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
              |              |          |         |         | postgres=CTc/postgres
(4 rows)

3. Install dan Konfigurasi Solr

CKAN menggunakan Apache Solr sebagai mesin pencari. CKAN 2.11 memerlukan Solr 9.x. 

Langkah 1: Install Java (JDK):

sudo apt install default-jdk -y

Langkah 2: Download Solr 9.x dari halaman resmi Apache Solr:

wget https://downloads.apache.org/solr/solr/9.10.1/solr-9.10.1.tgz

Langkah 3: Ekstrak skrip instalasi:

tar xzf solr-9.10.1.tgz solr-9.10.1/bin/install_solr_service.sh --strip-components=2

Langkah 4: Jalankan skrip instalasi sebagai root:

sudo bash ./install_solr_service.sh solr-9.10.1.tgz

Contoh output:

id: ‘solr’: no such user
Creating new user: solr
Adding system user `solr' (UID 115) ...
Adding new group `solr' (GID 124) ...
Adding new user `solr' (UID 115) with group `solr' ...
Creating home directory `/var/solr' ...

Extracting solr-9.10.1.tgz to /opt
Installing symlink /opt/solr -> /opt/solr-9.10.1 ...
Installing /etc/init.d/solr script ...
Installing /etc/default/solr.in.sh ...

Service solr installed.
Customize Solr startup configuration in /etc/default/solr.in.sh
● solr.service - LSB: Controls Apache Solr as a Service
     Loaded: loaded (/etc/init.d/solr; generated)
     Active: active (exited) since Tue 2026-04-07 20:59:00 WIB; 5s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 6713 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)
        CPU: 27ms

Langkah 5: Buat Solr core baru khusus untuk CKAN:

sudo -u solr /opt/solr/bin/solr create -c ckan

Langkah 6: Ganti schema default dengan schema khusus CKAN:

sudo -u solr wget -O /var/solr/data/ckan/conf/managed-schema \
  https://raw.githubusercontent.com/ckan/ckan/2.11/ckan/config/solr/schema.xml

Langkah 7: Restart Solr:

sudo systemctl restart solr

Peringatan Keamanan: Jangan pernah expose port 8983 ke internet publik karena Solr tidak memiliki mekanisme autentikasi bawaan yang kuat. Gunakan firewall untuk memastikan Solr hanya bisa diakses dari localhost atau jaringan internal. Perbarui nilai solr_url di ckan.ini jika Anda menggunakan URL atau port berbeda: solr_url = http://localhost:8983/solr/ckan.

Inisialisasi Database dan Web Server

1. Edit File Konfigurasi CKAN

File konfigurasi utama CKAN berada di /etc/ckan/default/ckan.ini. Buka file tersebut dan pastikan minimal dua opsi berikut sudah dikonfigurasi:

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

Cari dan ubah baris berikut:

## Site Settings
ckan.site_url = http://data.example.com

## Database Settings
sqlalchemy.url = postgresql://ckan_default:PASSWORD_ANDA@localhost/ckan_default

Ganti http://data.example.com dengan domain Anda. Nilai ini digunakan oleh CKAN untuk membangun URL yang benar pada metadata dataset dan tautan resource.

Agar pengguna dapat mengunggah file dataset, tambahkan konfigurasi FileStore pada ckan.ini di bawah baris [app:main]:

ckan.uploads_enabled = true
ckan.storage_path = /var/lib/ckan/default

Konfigurasi ini memungkinkan unggah file CSV, JSON, PDF, dan format lainnya langsung ke storage lokal server.

2. Inisialisasi Database

Setelah konfigurasi selesai, jalankan perintah berikut untuk membuat seluruh tabel database yang dibutuhkan CKAN:

sudo ckan db init

Contoh output jika inisialisasi database berhasil:

Upgrading DB: SUCCESS

3. Jalankan Web Server dan Restart NGINX

Seluruh proses CKAN, dikelola oleh Supervisor. Muat ulang Supervisor agar membaca konfigurasi proses terbaru:

sudo supervisorctl reload

Tunggu beberapa detik, lalu periksa status semua proses. Tiga proses berikut harus berstatus RUNNING:

sudo supervisorctl status

Contoh output:

ckan-datapusher:ckan-datapusher-00   RUNNING   pid 1963, uptime 0:00:12
ckan-uwsgi:ckan-uwsgi-00             RUNNING   pid 1964, uptime 0:00:12
ckan-worker:ckan-worker-00           RUNNING   pid 1965, uptime 0:00:12

Jika terdapat proses dengan status FATAL atau STOPPED, periksa log pada /var/log/ckan/ untuk mengetahui detail error.

Langkah terakhir, lakukan restart NGINX:

sudo service nginx restart

NGINX berfungsi sebagai reverse proxy yang meneruskan request dari port 80 ke uWSGI di port 8080. Konfigurasi default NGINX sudah disertakan dalam paket CKAN dan siap digunakan.

Verifikasi dan Akses Dashboard

1. Akses Portal CKAN

Buka browser lalu akses http://data.example.com. Jika instalasi berhasil, halaman depan CKAN akan tampil menyerupai portal open data pada umumnya, lengkap dengan kolom pencarian dataset, navigasi organisasi, serta daftar dataset. Portal masih kosong karena belum ada data yang ditambahkan.

2. Buat Akun Sysadmin

Akun administrator pertama harus dibuat melalui command line. Mekanisme ini merupakan bagian dari desain keamanan sehingga tidak tersedia akun admin default yang berpotensi dieksploitasi.

Mengaktifkan virtual environment:

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

Jalankan perintah berikut dan ganti nama_admin sesuai kebutuhan:

ckan -c /etc/ckan/default/ckan.ini sysadmin add nama_admin [email protected] name=nama_admin

Lanjutkan dengan membuat user:

User "nama_admin" not found
Create new user: nama_admin? [Y/n]: y
Password : 
Repeat for confirmation: 
2026-04-10 15:02:30,902 DEBUG [ckanext.activity.logic.action] Created 'new user' activity
Successfully created user: nama_admin
Added admin as sysadmin

Untuk mempromosikan user yang sudah ada menjadi sysadmin, gunakan perintah berikut:

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

3. Konfigurasi Site Dasar

Setelah login sebagai sysadmin, buka menu Admin > Config untuk mengatur beberapa parameter berikut:

  • Site Title: nama portal, misalnya "Portal Open Data Kota XYZ"
  • Site Description: deskripsi singkat portal yang ditampilkan pada header
  • Site Logo: upload logo organisasi
  • Homepage: pilihan layout halaman depan seperti featured datasets atau activity stream

Pengaturan tersebut juga dapat dilakukan langsung melalui ckan.ini untuk kontrol yang lebih permanen.

Contoh konfigurasi:

## Site Settings
ckan.site_title = Portal Open Data Kota XTZ
ckan.site_description = Portal resmi data terbuka Pemerintah Kota XYZ
ckan.site_logo = /base/images/ckan-logo.png
ckan.favicon = /base/images/ckan.ico

Setelah melakukan perubahan pada ckan.ini, restart uWSGI agar konfigurasi diterapkan:

sudo supervisorctl restart ckan-uwsgi:ckan-uwsgi-00

Tips Tambahan dan Troubleshooting

1. Konfigurasi HTTPS

Buka file konfigurasi Nginx untuk CKAN:

sudo nano /etc/nginx/sites-available/ckan

Tambahkan listen dan server_name:

proxy_temp_path /tmp/nginx_proxy 1 2;

server {
    listen 80;
    server_name data.example.com;
    client_max_body_size 100M;
    location / {
        proxy_pass http://127.0.0.1:8080/;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
    }
}

Restart service nginx:

sudo systemctl restart nginx

Untuk deployment produksi, gunakan HTTPS. Salah satu cara paling praktis adalah memakai Certbot dengan Let's Encrypt:

# Install Certbot dan plugin NGINX
sudo apt install certbot python3-certbot-nginx -y

# Dapatkan dan pasang sertifikat SSL
sudo certbot --non-interactive \
-m [email protected] \
--agree-tos \
--no-eff-email \
--nginx -d data.example.com \
--redirect

Setelah SSL aktif, perbarui ckan.site_url di ckan.ini menjadi https://data.example.com, lalu restart uWSGI.

2. Mengamankan Solr dari Akses Publik

Solr tidak boleh dapat diakses dari internet. Gunakan UFW untuk membatasi akses:

# Aktifkan UFW jika belum aktif
sudo ufw enable

# Izinkan SSH, HTTP, dan HTTPS
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Blokir akses ke port internal
sudo ufw deny 8983/tcp
sudo ufw deny 5432/tcp
sudo ufw deny 6379/tcp

# Periksa status firewall
sudo ufw status

Port Solr, PostgreSQL, dan Redis harus hanya dapat diakses dari localhost.

3. Melihat Log untuk Debugging

Seluruh log CKAN tersimpan di direktori /var/log/ckan/. Beberapa file log penting:

  • /var/log/ckan/ckan-uwsgi.stderr.log: error dan exception dari aplikasi utama
  • /var/log/ckan/ckan-datapusher.stderr.log: log proses DataPusher
  • /var/log/ckan/ckan-worker.stderr.log: log background job seperti email dan indexing
  • /var/log/nginx/access.log: seluruh HTTP request ke NGINX
  • /var/log/nginx/error.log: error pada NGINX

Untuk memantau log secara real-time:

sudo tail -f /var/log/ckan/ckan-uwsgi.stderr.log

4. Masalah Umum dan Solusi

Masalah: PermissionError: [Errno 13] Permission denied saat pertama kali akses.

Direktori i18n belum dapat ditulis oleh user web server.

Solusi:

sudo chmod -R o+rx /usr/lib/ckan/default/src/ckan/ckan/public/base/i18n/

Atau jalankan:

sudo ckan -c /etc/ckan/default/ckan.ini translation js

Masalah: Proses Supervisor berstatus FATAL.

Periksa log proses terkait:

sudo supervisorctl tail nama_proses stderr

Ganti nama_proses dengan ckan-uwsgi, ckan-datapusher, atau ckan-worker.

Masalah: CKAN tidak dapat terhubung ke database.

Verifikasi koneksi database secara manual:

psql -U ckan_default -h localhost -d ckan_default

Pastikan konfigurasi pada sqlalchemy.url sudah benar.

Masalah: Pencarian dataset tidak berfungsi.

Index Solr perlu dibangun ulang:

sudo ckan -c /etc/ckan/default/ckan.ini search-index rebuild

Masalah: Upload file gagal.

Periksa konfigurasi FileStore dan permission direktori storage:

# Periksa ownership
ls -la /var/lib/ckan/

# Perbaiki jika diperlukan
sudo chown -R www-data:www-data /var/lib/ckan/default
sudo chmod u+rwx /var/lib/ckan/default

5. Maintenance Rutin: Backup Database

Lakukan backup database PostgreSQL secara berkala menggunakan pg_dump.

# Backup manual
sudo -u postgres pg_dump ckan_default > /root/backup-ckan-$(date +%Y%m%d).sql

Tambahkan cron job untuk backup otomatis:

echo "0 2 * * * postgres pg_dump ckan_default > /var/backups/ckan-\$(date +\%Y\%m\%d).sql" \
  | sudo tee -a /etc/cron.d/ckan-backup

6. Membersihkan Database untuk Development

Untuk menghapus seluruh data dan memulai ulang:

# Hapus semua data
sudo ckan -c /etc/ckan/default/ckan.ini db clean

# Inisialisasi ulang database
sudo ckan db init

Perintah ini menghapus seluruh data dan tidak dapat dibatalkan.

7. Panduan Sysadmin Lanjutan

Setelah portal berjalan, pelajari fitur lanjutan melalui dokumentasi resmi:

Kesimpulan

Instalasi CKAN 2.11 melalui metode Package Install di Ubuntu memberikan pendekatan yang terstruktur dan relatif cepat untuk membangun portal open data. Proses mencakup pemasangan dependensi utama seperti PostgreSQL dan Solr, konfigurasi ckan.ini, inisialisasi database, serta pengaktifan layanan melalui Supervisor dan NGINX sebagai reverse proxy. Setelah sistem berjalan, pembuatan akun sysadmin dan konfigurasi awal portal menjadi tahap akhir sebelum digunakan. Metode ini cocok untuk deployment yang stabil karena sebagian besar komponen telah dikemas dan dioptimalkan dalam paket resmi CKAN.

Berhasil konfigurasi dalam hitungan menit? Kirimkan apresiasi Anda untuk riset dan waktu yang kami dedikasikan di sini.

Beri Apresiasi

Related Posts