Drupal Deployment dan Backup dengan Capistrano

19 01 2008

Setelah bermain2 dengan drupal untuk project web collaboration, gw selalu melakukan kegiatan yang sifatnya administratif dan berulang2. Parahnya lagi ini ga bisa gw lakukan lewat administrator interface. Beberapa hal tsb misalnya,

  • Karena project disimpan di subversion maka untuk memulai project, gw dan anggota tim harus,
    • Checkout project dari repository
    • Memindahkan hasil checkout ke direktori /var/www/
    • Setelah kerjaan selesai, tinggal commit hasilnya
  • Deployment ke server
    • SSH ke server
    • Export project (last stable) dari repository
    • Backup project sebelumnya dengan me-rename namanya menjadi project-backup. Misalnya dari /var/www/project ke /var/www/project-backup
    • Memindahkan hasil export project ke direktori /var/www
  • Backup data
    • SSH ke server
    • Copy project ke direktori backup. Misalnya, copy dari direktori /var/www/project ke /backup/project-[tanggal_hari_ini]
    • Dump database dan simpan di dalam direktori backup (/backup/project-[tanggal_hari_ini])

Kegiatan tsb kalo dilakukan terus menerus akan sangat membosankan. Nah maka itu gw pgn semua proses di atas bisa diotomasi. Maka gw ketemu sama yang namanya Capistrano, tools yang dibuat di atas ruby dan bertugas untuk melakukan otomasi kegiatan2 yang sifatnya repetitif seperti, instalasi, deployment, mengatur konfigurasi2, backup, dsb. Karena dibuat dengan ruby maka capistrano ini mudah di-extend dengan menambah ruby module. Capistrano ini bisa melakukan otomasi project yang dibangun selain ruby (walaupun awalnya ditujukan khusus ruby).

Maka dari itu gw mau share script capistrano untuk melakukan deployment dan backup pada projek drupal. Dengan asumsi OS yang digunakan adalah Ubuntu. Read the rest of this entry »





Membuat Web Collaboration dengan Drupal

26 10 2007

Dua minggu ini saya sedang dapet kerjaan untuk membuat web collaboration antar project manager dan Improvement team. Beberapa fitur yang harus tersedia kurang lebih adalah access control, forum, event, dan berbagai jenis content lain seperti announcement, best practice project, dan lain lain. Akhirnya saya memutuskan untuk menggunakan Drupal. Flexibility adalah alasan utama kenapa memilih Drupal. Kalo search di google juga akan ketemu beberapa alasan memilih drupal.

Beberapa solusi diatas bisa diatasi dengan menggunakan module yang ada, beberapa top module pilihan bisa dilihat disini dan disini.

Salah satu fitur adalah setiap user yang terdaftar dalam web ini harus mendapatkan notifikasi imel jika terdapat content terbaru. Dan juga sebaliknya, user harus bisa melakukan posting melalui email untuk masuk sebagai content di web. Hal ini penting jika server down atau malah user lebih suka interaksi melalui email. Hal ini bisa dilakukan dengan module workflow dan actions. Atau video tutorialnya yang detail bisa dilihat disini. Untuk bisa mengirim imel module smtp harus diaktifkan terlebih dahulu. Dan untuk menerima posting dari email bisa menggunakan module mailhandler. Tutorial mailhandler bisa dilihat disini.
Read the rest of this entry »