This repo demonstrates deployment of the Ghost blogging software to Now, using Ghost as an npm module.
Additionally, it sets up a google cloud storage adapter (easy to swap out for another adapter), and a remote MySQL database (again, easy to swap out).
There are a few pre-steps to deploying this to now, due to technical constraints:
config.development.json
to be the directory where you checked this project out, plus /content
, for example /home/beyonk/Projects/ghost-example/content
. This path must be absolute due to a bug in ghost v2.gcloud-storage-account.json
.First, download now
.
Then, clone this
repository and run now
:
$ git clone git://github.com/beyonk-adventures/now-ghost-v2
$ cd ghost
$ npm install
# Run the app first before the initial deployment, as the migrations can exceed now's timeout and cause a deployment error.
$ now
Example: https://now-examples-ghost.now.sh/
You can tweak the config.*
JSON files and content
directory to your liking,
and then re-deploy by running now
again.
sqlite3
The file system on Now deployments is immutable. So knowing this, if you're
going to stick with the default sqlite3
backend (which is file system
based) then you should follow the typical Now-deployment paradigm. That is:
NODE_ENV=development npm start
This paradigm requires a new deployment for any new blog posts or changes, and when upgrading Ghost.
mysql
and postgres
If you want to use a mysql
or postgres
database service, then you'll have
to update the config JSON files to point to an externally hosted database.
If you go this route then your Now deployment is more "live" such that you can
edit and publish posts without creating a new Now deployment, so the workflow
looks more like:
This paradigm requires a new deployment only when upgrading Ghost, or tweaking database settings. However, you end up losing some of the inherent features of unique Now deployments, like being able to easily roll back a change or preview changes before aliasing.