Save time managing and deploying your node.js app

Nodejitsu has joined GoDaddy

We are excited to join GoDaddy to help spearhead their largest Node.js product: Website Builder. Please read our blog post to learn more about customer transition plans and our continued support for Open Source within the node community.

Want to know all the details?
Read the full blog post or read the GoDaddy Announcement.

Persistent Ghost blogging platform

About the author

nodejitsu nodejitsu

Other popular posts

- Scaling Isomorphic Javascript Code - Keep a node.js server up with Forever - Package.json dependencies done right
- npm cheat sheet - 6 Must Have Node.js Modules

Two weeks ago the Ghost blogging platform launched its first public
release, one week later version 0.3.3 was released. By now the project has
over 5k stargazers on Github, showing increasing popularity.

Several of our developers backed the project on kickstarter and we fully support
the idea behind the platform. Ghost runs on our service. However, files are not
persisted between deploys. This post explains how we solved that problem for

What is Ghost?

Ghost is a platform dedicated to one thing: Publishing. It's beautifully designed, completely customizable and completely Open Source. Ghost allows
you to write and publish your own blog, giving you the tools to make it easy and
even fun to do. It's simple, elegant, and designed so that you can spend less time
messing with making your blog work - and more time blogging.


Ghost, by default, uses a sqlite database and stores images in the content
directory. Redeploying on our platform would destroy those files, undoing all
your hard work. To combat this problem we released a wrapper called

The wrapper persists all files in the content directory to MongoDB GridFS.
Each change to watched files will trigger an upload to GridFS. On deploying
those uploaded files will be fetched before Ghost is started, thereby persisting
state between redeploys. True, this is not an optimal solution, however it was
our quickest solution. Our goal was to allow you to try Ghost as quickly as
possible without having to go through details.

I've already transferred my personal blog from Octopress to Ghost. During
the development of this wrapper. I redeployed my blog multiple times without

Try it

Getting started with Ghost on our platform just requires three very short steps.

Make sure you have the latest version of jitsu, v0.13.3

  1. Fetch the wrapper jitsu install ghost and setup via prompt.
  2. Run jitsu deploy and acknowledge (if any) changes to package.json.
  3. Check the Ghost documentation to finalize ghost setup.

Note: These steps assume you already installed jitsu [sudo] npm install jitsu -g and that you signed up to our service via browser or command line
jitsu signup. For future reference also see the of persistent-ghost.

Future development

Obviously persisting files to dedicated services like Amazon S3 and storing
database documents directly to MongoDB or similar would be preferred. Ghost will
provide a plugin API soon, it's in active development/discussion. That plugin
system could perhaps open doors for a persisting plugin for files. An
integration with our pkgcloud comes to mind. Likewise database
storage in MongoDB, abstracted through knex would be a big plus.

We'll try to contribute as much as possible! However your welcome to join our
efforts in spreading the love called Ghost.