pagoda

pagoda

Zen-like blogging interface for Jekyll (login: admin/admin)

Pagoda

Zen like blog editor for your Jekyll blog, heavily inspired by Svbtle and Obtvse.

Screenshots

Dashboard

Editor

Fullscreen editing

Edit YAML Data

Mobile Dashboard and Editing

......

Install

Installing locally

Two commands, one for installing, another for running.

  gem install pagoda-jekyll
  pagoda .

Running it on Heroku

Requirements:

  1. Heroku
  2. Git
  3. Your Jekyll Repo
git clone https://github.com/alagu/pagoda
cd pagoda
heroku create
bundle exec rake heroku

Default YAML

Each post created with pagoda will have a default yaml data. To modify it, create a _default.yml in your jekyll repository and commit it.

Deploying on your own server

I use basic http authentication in real world use. I've deployed through nginx + unicorn. There could be easier deployment than this.

This is still not well organized, but the setup works.

Create sock and pid folders

mkdir -p tmp/pids
mkdir tmp/sock

Your unicorn configuration (unicorn.rb):

pid "./tmp/pids/blog-admin.pid"
listen "unix:./tmp/sock/blog-admin.sock"
ENV['blog'] = '/path/to/your/jekyll/blog'

Script to start Unicorn (start.sh):

cd /path/to/pagoda
rvm use 1.9.3
unicorn -c unicorn.rb  -D

Note: This should be run as bash --login start.sh

Create htpasswd file for authentication

htpasswd -c /path/to/httpasswd/file alagu
New password: <enterpasswd>
Re-type new password: <re-enterpasswd>
Adding password for user alagu

Nginx configuration

myblog.com shows the generated blog and myblog.com/admin pops up a http authentication for your admin.

upstream unicorn_server {
   server unix:/path/to/tmp/sock/blog-admin.sock;
}

server {
        server_name myblog.com;

        listen 80;

        location / {
           root  /path/to/your/jekyll/blog/_site/;
        }

        location /admin {
                auth_basic "Restricted";
                auth_basic_user_file /path/to/htpasswd/file;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                proxy_pass http://unicorn_server;
        }
}

FAQ/Bugs

I get ArgumentError - invalid byte sequence in US-ASCII

Set localte to UTF-8

export LC_ALL=en_US.UTF-8