Deploying The Latest Ghost on Openshift

For you who want to deploy the latest Ghost on Openshift, this is the alternative Ghost Quickstart you can use as a source code. Here you go https://github.com/norsasono/openshift-ghost-starter.

I seperated it from their original repository for my personal purpose. I can’t promise you to always stay up-to-date, but you can make a contribution to make the repository stay alive.

The Problem

Openshift doesn’t provide you neither the recommended Node.js nor the required version to install latest stable Ghost on their server and it will cause problems if you update your recent Ghost app. The last known version you can is Ghost 0.11.7. You can read the comments from potatoefist on this post.

What did I actually do?

Luckily, even they don’t provide you the Node.js version that is required to deploy the app, you can still deploy the specific Node.js version you want to use to build your apps.

I don’t use their default Ghost quickstart repository, I use the specific Node.js version to run on their server first and deploy Ghost manually.


https://github.com/norsasono/openshift-ghost-starter


Inside The Package

  • Nodejs v.6.9.5 (Recomended from Ghost)
  • Ghost 0.11.10 (Latest stable version)

How To?

  1. Make a new Application using Ghost 0.7.5 Quickstart
  2. Use this repository as a source.
  3. Done.

Don’t worry, I actually use Node v.6.9.5 as the default cartridge because the default Node.js version from Openshift-Ghost-Quickstart is 0.10.** and no longger suppported for the recent Ghost version.

Is it possible to be used to deploy Ghost v 1.0.-Beta?

Possiblly yes, but I haven’t tried. You know that Openshift provides you both Mysql (5.1 and 5.5) and Postgree (8.4 and 9.2), since Ghost doesn’t require the higher version of mysql, it is still possible. But remember, Ghost folks have dropped the support for PostgreSQL. Be wise.

Memindahkan Situs Utama dan Blog ke Firebase

TL;DR: Tutorial deploy Jekyll ke Firebase menggunakan CI (Travis-CI) dengan repository Github.


Setelah saya menimbang dengan segala kelebihan dan kekurangan, saya putuskan membangun kembali halaman utama https://sasono.web.id menggunakan Jekyll setelah sebelumnya saya menggunakan satu halaman sedarhana dengan HTML dan CSS murni.

Sedangkan untuk blog ini, saya sempat beberapa kali memindahkan tempat, kalian bisa baca di sini dan di sini. Bagi saya rasanya perlu sekali membedakan antara halaman utama dengan blog, karena blog lebih bersifat dinamis dan kan lebih sering mengalami perubahan. Oleh karena itu, meskipun saat ini terlihat sama, halaman utama dan blog ini sebenarnya memiliki domain yang terpisah. sasono.web.id dan blog.sasono.web.id. Platform blog ini juga tercatat telah tiga kali mengalami perubahan, dari mulai Blogger, Jekyll, Ghost, WordPress. Dan saat ini kembali menggunakan Jekyll dengan Firebase untuk tempat hosting.

Mengapa Firebase?

Firebase sejatinya milik Google. Dan jika berbicara soal kelebihan dan kekurangan, saya akan memberi batasan pada beberapa fitur yang berhubungan dengan hosting.

Kelebihan

  1. Support custom domain + SSL secara default.
  2. Support Custom rules. Saya gunakan untuk cache browser.
  3. Google CDN. You know lah, mereka salah satu yang terbaik.

Kekurangan

  1. Space 1GB dengan Bandwidth 10GB
  2. Hanya file statis.

Source

Skema yang saya gunakan adalah dengan menempatkan source code pada repository Github dan menghubungkannya dengan Continuous Integration (CI), lebih spesifiknya saya menggunakan Travis-CI. Kira-kira seperti inilah alur yang digunakan.

Jekyll di kompeter lokal > Push ke Github > CI (Travis-CI) > Firebase


Setup

Silahkan buka Firebase Console dan buat proyek baru dan lakukan pemasangan Firebase CLI.

Firebase menggunakan tool Firebase CLI yang membutuhkan Node (tutorial pemasangan dapat dibaca di sini) untuk dapat digunakan.

npm install -g firebase-tools

lalu lakukan login menggunakan

firebase login

Masuk pada direktori jekyll dan lakukan

cd lokasi/jekyll/berada

lalu

firebase init

pilih hosting dan proyek yang telah dibuat di awal.

Akan terdapat tiga file yang muncul firebase.json, .firebaserc, dan database.rules.json.

Hosting

Secara umum terdapat dua langkah yang dapat digunakan untuk menggunakan hosting pada Firebase.

Pertama

Deploy secara langsung file hasil generate dari Jekyll ( _site ).

firebase deploy

Ini merupakan cara termudah yang dapat dilakukan karena kita hanya perlu deploy file pada folder _site (untuk Jekyll) atau public (untuk default setup). Folder dapat dirubah dengan setting file firebase.json seperti di bawah.

{
  "hosting": {
    "public": "_site",
    "ignore": [
      "**/.*",
      "firebase.json"
    ],
  }
}

Kedua

Menggunakan skema Continuous Integration dengan menempatkan source code ada repository semisal Github, Gitlab, Bitbucket atau yag lainnya.

Jekyll di kompeter lokal > Push ke Github > CI (Travis-CI) > Firebase

  • Buat akun Travis-CI menggunakan ID Github/Gitlab dan pilih repository yang akan dihubungkan dengan Travis-CI.
  • Hubungkan Firebase dengan CI menggunakan firebase login:ci untuk mendapatkan Firebase token.
  • Masukkan token pada Travis-CI setting dan beri nama FIREBASE_TOKEN

  • Buat file .travis.yml pada direktori root Jekyll. Berikut adalah konfigurasi yang saya gunakan.
language: node_js
node_js: '7.9.0'

before_install:
  - rvm install 2.3.1
  - rvm use 2.3.1
  - . $HOME/.nvm/nvm.sh && nvm install 6.1 && nvm use 6.1
  - gem install bundler
  - bundle check || bundle install

install:
  - npm install -g firebase-tools

before_script:
  - chmod +x ./script/cibuild

script: ./script/cibuild

after_success:
  - firebase deploy --token $FIREBASE_TOKEN

branches:
  only:
  - master

env:
  global:
  - NOKOGIRI_USE_SYSTEM_LIBRARIES=true 

sudo: false
  • Buat folder script dan buat file bernama cibuild. Berikut configurasi milik saya.
#!/usr/bin/env bash
set -e # halt script on error

bundle exec jekyll build

# script/cibuild

Test Deploy

Lakukan perubahan atau buat postingan baru lalu push ke repository Github/Gitlab dan tunggu beberapa menit sampai proses selesai. Lalu buka halaman


Saya menggunakan skema kedua karena cara ini lebih menghemat kuota. Bayangkan jika kita harus mengoreksi beberapa tulisan/posting dan mendeploy ulang seluruh file hasil generate, tentunya akan lebih besar daripada mem-push hasil koreksi ke repository Github/Gitlab dan biarkan Travis-CI melakukan build dan deploy ke Firebase.

Cheers .. 🙂

Mau, Blog dan Domain .my.id Gratis dari PANDI?

Sudahkan tahukan Anda dengan program PANDI (Pengelola Nama Domain Indonesia) terbaru yang satu ini? Bersyukurlah karena dengan adanya program ini kita akan mendapatkan satu domain gratis dengan ekstensi .my.id beserta satu blog gratis pula dengan platform WordPress Multiuser. Atau anggap saja kalian akan mendapatkan satu blog WordPress beserta domain my.id gratis tis tis. Contohnya http://sasono.my.id Uhuk ..

How Does It Work?

Seperti yang tertulis di halaman awal demo.e.id.

Mari bergabung di revolusi Identitas Digital Indonesia.
Cukup gunakan Nomor Induk Kependudukan (NIK) dari KTP anda, dan nikmati kemudahan beraktifitas digital.

Continue reading “Mau, Blog dan Domain .my.id Gratis dari PANDI?”

Update Ghost 0.11.3 [Openshift]

First. Let me tell you that it is just another update and I wouldn’t explain the new features as they have been explained here in every developer blog post. Just go and read it.

Second. I will also try to explain it briefly as I assume that you have read the other posts I wrote before here and here.

Note

Someone confirmed that this tutorial also worked for updating to the version 0.11.7. Read his comments (potatoefist) below.

Backup

Remember to always do a backup first before doing an upgrade.

  1. Go to your blog dashboard > Labs > then hit the Export button. This will export your settings and your content to a json file that you can import whenever you need it.
  2. Make a snapshot of your cartridge by using this command in your terminal rhc snapshot save . You can read about this here.

Continue reading “Update Ghost 0.11.3 [Openshift]”

Update Ghost 0.9.0 Using Openshift Quickstart

Ghost recently released a new version of the CMS, and again, here are the steps or tutorial on how to update your Ghost to the version 0.9.0 for the users of Openshift Quickstart. This is the easier way to update your Ghost rather than this one I wrote before.

I assume that you already have a clone of your application (blog) in your local machine.

At first, I suggest you to take a look at the ‘update’ section below before doing the upgrade. Please 1.

Backup

Remember to always do a backup first before doing an upgrade. I suggest you to make a backup from your blog and your whole openshift gear (your application).

  1. Go to your blog dashboard > Labs > then hit the Export button. This will export your settings and your content to a json file that you can import whenever you need it.
  2. Make a snapshot of your cartridge by using this command in your terminal rhc snapshot save <app_name>. You can read about this in here.

Continue reading “Update Ghost 0.9.0 Using Openshift Quickstart”

Ukuran Itu Penting

Yes, size does matter. Meskipun tidak dalam semua hal, tetapi ukuran sering kali bisa menjadi awal dari sebuah permasalahan.

FYI, saya baru saja merubah background image blog ini, saya tetap memutuskan menggunakan warna hitam sebagai warna dominan dengan sedikit aksen bunga Dandelion di sisi kiri disertai protolannya (tolong, saya lupa bahasa Indonesianya).

Continue reading “Ukuran Itu Penting”

Google Noto Fonts

Bagi kalian yang belum pernah dengar proyek Google yang satu ini mungkin akan bertanya-tanya tentang maksud atau tujuan dari adanya proyek tersebut. Google Noto Fonts adalah proyek lain milik Google disamping Google Fonts.

Seperti kutipan yang ada pada halaman resmi, proyek ini bertujuan untuk menyelaraskan tampilan visual seluruh bahasa di dunia. Jadi tidak perlu banyak jenis font yang digunakan untuk setiap penulisan sebuah bahasa.

Untuk Indonesia sendiri, Noto sudah memiliki beberapa bahasa daerah di Indonesia; Achi, Bali, Banjar, Batak Toga, Betawi, Bugis, Gorontalo, Jawa, Kerinci, Komering, Lampung Api, Madura, Makasar, Malay (Arab), Mandar, Mentawai, Minangkabau, Ngaju, Rejang, Sangir, Sasak, Selayar, Sunda, Tae’, Tolaki, Cina Tradisional, Uab Meto, dan bahasa Indonesia sendiri.

Noto menyediakan dua jenis font yang dapat digunakan dalam penulisan, yaitu Sans dan Serif.

Tertarik? silahkan kunjungi halaman resmi Google Noto Fonts untuk mengunduhnya.