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:
| Komponen | Minimum | Rekomendasi Produksi |
|---|---|---|
| CPU | 2 Core | 4+ Core |
| RAM | 4 GB | 8 GB atau lebih |
| Disk | 60 GB | 100 GB+ SSD (NVMe lebih baik) |
| Network | 1 Gbps | 1 Gbps dengan IP publik statis |
| Arsitektur | x86_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
| Layanan | Port | Fungsi |
|---|---|---|
| NGINX | 80 (HTTP), 443 (HTTPS) | Reverse proxy menghadap internet |
| uWSGI (CKAN) | 8080 | Aplikasi web CKAN (internal) |
| uWSGI (DataPusher) | 8800 | Layanan import data otomatis (internal) |
| Solr | 8983 | Mesin pencari (internal, jangan expose) |
| PostgreSQL | 5432 | Database (internal) |
| Redis | 6379 | Cache 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 -yLangkah 2: Install dependensi OS yang dibutuhkan CKAN (termasuk redis-server, nginx, supervisor, dan postgresql):
sudo apt install libpq5 redis-server nginx supervisor postgresql -yLangkah 3: Download paket CKAN sesuai versi Ubuntu:
wget https://packaging.ckan.org/python-ckan_2.11-jammy_amd64.debLangkah 4: Install paket CKAN dengan dpkg:
sudo dpkg -i python-ckan_2.11-jammy_amd64.debProses 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_defaultCatat 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-8Langkah 3: Verifikasi pembuatan user dan database:
sudo -u postgres psql -lContoh 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 -yLangkah 2: Download Solr 9.x dari halaman resmi Apache Solr:
wget https://downloads.apache.org/solr/solr/9.10.1/solr-9.10.1.tgzLangkah 3: Ekstrak skrip instalasi:
tar xzf solr-9.10.1.tgz solr-9.10.1/bin/install_solr_service.sh --strip-components=2Langkah 4: Jalankan skrip instalasi sebagai root:
sudo bash ./install_solr_service.sh solr-9.10.1.tgzContoh 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: 27msLangkah 5: Buat Solr core baru khusus untuk CKAN:
sudo -u solr /opt/solr/bin/solr create -c ckanLangkah 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.xmlLangkah 7: Restart Solr:
sudo systemctl restart solrPeringatan 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_urldickan.inijika 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.iniCari dan ubah baris berikut:
## Site Settings
ckan.site_url = http://data.example.com
## Database Settings
sqlalchemy.url = postgresql://ckan_default:PASSWORD_ANDA@localhost/ckan_defaultGanti 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/defaultKonfigurasi 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 initContoh output jika inisialisasi database berhasil:
Upgrading DB: SUCCESS3. Jalankan Web Server dan Restart NGINX
Seluruh proses CKAN, dikelola oleh Supervisor. Muat ulang Supervisor agar membaca konfigurasi proses terbaru:
sudo supervisorctl reloadTunggu beberapa detik, lalu periksa status semua proses. Tiga proses berikut harus berstatus RUNNING:
sudo supervisorctl statusContoh 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:12Jika 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 restartNGINX 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/ckanJalankan perintah berikut dan ganti nama_admin sesuai kebutuhan:
ckan -c /etc/ckan/default/ckan.ini sysadmin add nama_admin [email protected] name=nama_adminLanjutkan 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 sysadminUntuk mempromosikan user yang sudah ada menjadi sysadmin, gunakan perintah berikut:
ckan -c /etc/ckan/default/ckan.ini sysadmin add username_yang_sudah_ada3. 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.icoSetelah melakukan perubahan pada ckan.ini, restart uWSGI agar konfigurasi diterapkan:
sudo supervisorctl restart ckan-uwsgi:ckan-uwsgi-00Tips Tambahan dan Troubleshooting
1. Konfigurasi HTTPS
Buka file konfigurasi Nginx untuk CKAN:
sudo nano /etc/nginx/sites-available/ckanTambahkan 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 nginxUntuk 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 \
--redirectSetelah 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 statusPort 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.log4. 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 jsMasalah: Proses Supervisor berstatus FATAL.
Periksa log proses terkait:
sudo supervisorctl tail nama_proses stderrGanti 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_defaultPastikan 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 rebuildMasalah: 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/default5. 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).sqlTambahkan 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-backup6. 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 initPerintah ini menghapus seluruh data dan tidak dapat dibatalkan.
7. Panduan Sysadmin Lanjutan
Setelah portal berjalan, pelajari fitur lanjutan melalui dokumentasi resmi:
- Organizations and Authorization: pengaturan hak akses dan peran pengguna
- DataStore Extension: query data melalui API JSON
- Data Preview and Visualization: tampilan chart, peta, dan tabel di browser
- CKAN API Guide: integrasi menggunakan REST API
- Configuration Options: referensi lengkap konfigurasi CKAN
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.




