ghost #20

  • By adam-stokes
  • Latest version (#20)
  • xenial, trusty
  • Stable

Description

Ghost is a simple, powerful publishing platform.


Overview

Ghost is an Open Source application which 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 making your blog work and
more time blogging.

This is an updated charm originally written by Jeff Pihach and ported over to
the charms.reactive framework.

Quick Start

After you have a Juju cloud environment running:

$ juju deploy ghost
$ juju expose ghost

To access your newly installed blog you'll need to get the IP of the instance.

$ juju status ghost

Visit <your URL>:2368/ghost/ to create your username and password.
Continue setting up Ghost by following the
usage documentation.

You will want to change the URL that Ghost uses to generate links internally to
the URL you will be using for your blog.

$ juju set ghost url=<your url>

Configuration

To view the configuration options for this charm open the config.yaml file or:

$ juju get ghost

To set a configuration option for this charm:

$ juju set ghost <key>=<value>

See the config.yaml file in the charm for a detailed list of all of the charms
configuration options.

Setting Up Email Service

Ghost needs the ability to send emails to users for things like new user
validation and password resets. To accomplish this Ghost supports using a
third party email service which it can communicate with to send these emails.
Ghost, and this charm, supports sending emails using Mailgun, Amazon SES, and
Gmail. Additional information about why Ghost needs this service and it's
supported platforms see Mail configuration.

To specify a supported email service to use you simply need to set the
configuration values in the charm and they will be generated for your Ghost
instance.

Mailgun & Gmail

$ juju set ghost mailserver_username=<your username>
$ juju set ghost mailserver_password=<your password>
Then
$ juju set ghost mail_service=Mailgun
-or-
$ juju set ghost mail_service=Gmail

Amazon SES

$ juju set ghost mailserver_username=<your username>
$ juju set ghost mailserver_password=<your password>
$ juju set ghost amazon_ses_host=<your ses host>
Then
$ juju set ghost mail_service=SES

After this has been completed your Ghost server will restart and Ghost will
now be able to send emails using that provider. It's recommended to test this
before you need it by creating a new user and pointing it to an email you
control and ensure that you get the validation email.

Connecting To MySQL

By default this charm uses Ghost's built in SQLite storage. If you would like to
horizontally scale your ghost instance you will need to use an external database
like MySQL.

If you already have blog posts in the SQLite database they will not be
deleted, but you will have to manually port them over to the MySQL database.

First you will need to deploy MySQL into your Juju environment:

$ juju deploy mysql

Additional details about the MySQL charm and configuration can be found in the
MySQL charm details page.

You'll then need to relate the Ghost blog service to the MySQL service.

$ juju add-relation ghost mysql

The charm will then handle setting up all configuration options necessary to use
the MySQL database instead of the internal SQLite database.

Load Balancing

$ juju deploy haproxy
$ juju expose haproxy
$ juju unexpose ghost
$ juju add-relation ghost haproxy

Contributing

Original charm

This charm is ported over from the original excellent charm @
ghost-charm repository

Current charm updated for latest LTS and using charms.reactive

juju-charm-ghost

Bug Reports

Please file bugs for the Ghost blogging engine in the
TryGhost Ghost repository and not in the
ghost-charm repository.

If you have found a bug with the ghost-charm itself they can be filed in the
juju-charm-ghost repository.
Please include exact steps to reproduce the issue and be as detailed as
possible, including what version of Ubuntu you're running on, the version of
this charm you have deployed, the cloud your environment is running on, any
other charms deployed to the environment.

Configuration

mailserver_username
(string) Username for the mail service chosen above. Information on where to find these credentials can be found here: http://support.ghost.org/mail/ .
from_address
(string) By default the `from` address for mail sent from Ghost will be set to "Blog Title <ghost@your-ghost-blog.com>" where 'Blog Title' is the title you have set in settings, and 'your-ghost-blog.com' is the value from the host configuration value above. You can override this value here. Supported formats are 'myemail@example.com' or 'Custom Name <myemail@example.com'.
amazon_ses_host
(string) The host value for your Amazon SES account. This is only necessary if you chose this option in the mail_service field above.
port
(int) Port to be passed to node's net.Server listen().
2368
url
(string) The URL to use when providing links to the site.
http://my-ghost-blog.com
host
(string) Host to be passed to node's net.Server listen().
0.0.0.0
package_status
(string) The status of service-affecting packages will be set to this value in the dpkg database. Valid values are "install" and "hold".
install
extra_packages
(string) Space separated list of extra deb packages to install.
mailserver_password
(string) Password for the mail service chosen above. Information on where to find these credentials can be found here: http://support.ghost.org/mail/ .
install_keys
(string) List of signing keys for install_sources package sources, per charmhelpers standard format (a yaml list of strings encoded as a string). The keys should be the full ASCII armoured GPG public keys. While GPG key ids are also supported and looked up on a keyserver, operators should be aware that this mechanism is insecure. null can be used if a standard package signing key is used that will already be installed on the machine, and for PPA sources where the package signing key is securely retrieved from Launchpad.
- '68576280'
install_sources
(string) List of extra apt sources, per charm-helpers standard format (a yaml list of strings encoded as a string). Each source may be either a line that can be added directly to sources.list(5), or in the form ppa:<user>/<ppa-name> for adding Personal Package Archives, or a distribution component to enable.
- "https://deb.nodesource.com/node_6.x main"
mail_service
(string) Pick one of the supported email services to allow Ghost to send emails for things like password recovery and new user acceptance. Valid options will require the corresponding username and password fields filled out below. The supported values are 'Mailgun', 'SES', and 'Gmail'. An empty value will remove the configuration from Ghost.