มาเล่น CKAN กัน

CKAN เป็นระบบ data portal ​platform สำหรับการเก็บและเผยแพร่ข้อมูลแบบ opendata ซึ่งมีคุณสมบัติพื้นฐาน เช่น การค้นหาข้อมูล การใช้ข้อมูลผ่าน API การแชร์ข้อมูล ตลอกจนยังสามารถเพิ่มคุณสมบัติใหม่ๆ ได้อีก ผ่าน extension ซึ่งมี extension ที่น่าสนใจมากมาย สำหรับท่านที่สนใจเรื่อง OpenData อยู่สามารถใช้ CKAN ทำ portal ได้ครับ สำหรับข้อมูลที่สามารถแผยแพร่บน CKAN ได้มีหลายรูปแบบ ทั้ง csv, json, xml, rdf หรือแม้ระทั่ง url ธรรมดาๆ ทั้งนี้ขึ้นอยู่กับการประยุกต์ใช้ การติดตั้ง CKAN ทำได้หลายวิธี

  • ติดตั้งจาก source code
  • ติดตั้งจาก package
  • ติดตั้งโดยใช้ Docker

สำหรับผมเลือกวิธีการติดตั้ง CKAN ผ่าน binary package บน Ubuntu 12.04 วิธีการติดตั้งก็ง่ายมากๆ เริ่มจากติดตั้ง package ที่จำเป็นกันก่อน

sudo apt-get install -y nginx apache2 libapache2-mod-wsgi libpq5 python-pastescript python-pip python-dev
ดาวน์โหลด CKAN debian package มา
wget http://packaging.ckan.org/python-ckan_2.2_amd64.deb
จากนั้น enable mod wsgi ให้ apache
sudo a2enmod wsgi
sudo service apache2 restart
สั่งติดตั้ง python-ckan
sudo dpkg -i python-ckan_2.2_amd64.deb
จากนั้น ติดตั้ง postgresql กับ solr-jetty
sudo apt-get install -y postgresql solr-jetty
แก้ไข config ของ jetty ในไฟล์ /etc/default/jetty เพิ่มข้อมูลเข้าไปดังนี้
NO_START=0
JETTY_HOST=127.0.0.1
JETTY_PORT=8983
JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64/
สั่ง start jetty อีกรอบ
sudo service jetty start
สร้าง user ใน postgresql และสร้างฐานข้อมูลให้ CKAN
sudo -u postgres createuser -S -D -R -P ckan_default
sudo -u postgres createdb -O ckan_default ckan_default -E utf-8
ติดตั้ง python module เพิ่ม
cd /usr/lib/ckan/default/src/ckan
pip install -r requirements.txt
แก้ไขไฟล์ /etc/ckan/default/production.ini ตรง sqlalchemy.url กำหนด username, password ของ postgresql ให้ถูกต้อง
sudo ckan db init
เพิ่ม user sysadmin ให้ CKAN ดังนี้
ckan sysadmin add admin
สั่ง restart apache และ enginx ดังนี้
sudo service apache2 restart
sudo service nginx restart
เปิด browser แล้ว browse ไปที่เซิร์ฟเวอร์ของคุณกันได้เลย คุณจะได้หน้าตาของ CKAN แบบนี้

ลองเพิ่ม organization กับ dataset เข้าไปสักหน่อย




เพิ่มเติมอีกหน่อย หากต้องการให้สามารถอัพโหลดข้อมูลไปยัง CKAN ได้ สร้างไดเรคทอรีสำหรับเก็บข้อมูล
sudo mkdir -p /var/lib/ckan/default
sudo chown www-data /var/lib/ckan/default
sudo chmod u+rwx /var/lib/ckan/default
แก้ไข ckan.storage_path ใน /etc/ckan/default/production.ini ให้ถูกต้อง
ckan.storage_path = /var/lib/ckan/default
สั่ง reload apache2 แค่นี้ก็ใช้งานได้แล้ว
sudo service apache2 reload
สำหรับ extension ต่างๆ ที่คุณสามารถเพิ่มความสามารถให้ CKAN ตามไปดูต่อกันได้ที่ extensions.ckan.org ครับ