Turn your audience into a business. Publishing, memberships, subscriptions and newsletters.
Go to file
Fabien O'Carroll d246a4761e Implemented externally verifiable identity tokens
no-issue

This adds two new endpoints, one at /ghost/.well-known/jwks.json for exposing
a public key, and one on the canary api /identities, which allows the
Owner user to fetch a JWT.

This token can then be used by external services to verify the domain

* Added ghost_{public,private}_key settings

    This key can be used for generating tokens for communicating with
    external services on behalf of Ghost

* Added .well-known directory to /ghost/.well-known

    We add a jwks.json file to the .well-known directory which exposes a
    public JWK which can be used to verify the signatures of JWT's created
    by Ghost

    This is added to the /ghost/ path so that it can live on the admin
    domain, rather than the frontend. This is because most of its
    uses/functions will be in relation to the admin domain.

* Improved settings model tests

    This removes hardcoded positions in favour of testing that a particular
    event wasn't emitted which is less brittle and more precise about what's
    being tested

* Fixed parent app unit tests for well-known

    This updates the parent app unit tests to check that the well-known
    route is mounted. We all change proxyquire to use `noCallThru` which
    ensures that the ubderlying modules are not required. This stops the
    initialisation logic in ./well-known erroring in tests

https://github.com/thlorenz/proxyquire/issues/215

* Moved jwt signature to a separate 'token' propery

    This structure corresponds to other resources and allows to exptend with
    additional properties in future if needed
2020-03-16 13:22:04 +01:00
.github Fixed MySQL port mapping in CI 2020-03-16 08:59:07 +00:00
content Updated Casper to 3.0.9 2020-03-09 10:49:09 +00:00
core Implemented externally verifiable identity tokens 2020-03-16 13:22:04 +01:00
.editorconfig Removed Makefile settings from .editorconfig 2019-07-31 17:21:16 +08:00
.eslintignore Moved grunt-eslint to npm script executing eslint (#10474) 2019-02-11 13:26:06 +01:00
.eslintrc.json Switched to eslint-plugin-ghost (#9835) 2018-09-17 20:49:30 +02:00
.gitattributes Enforced unix line endings (#9871) 2018-10-23 10:59:09 +02:00
.gitignore Removed vim specific ignores 2019-04-08 18:23:17 +02:00
.gitmodules Switched to using relative urls for submodules 2018-12-10 16:56:35 +00:00
.npmignore Excluded dotfiles and SECURITY.md via .npmignore (#10700) 2019-04-22 13:37:26 +02:00
config.development.json Removed local setting fron config.dev.json 2019-07-22 13:21:02 +08:00
Gruntfile.js Switched tests to GitHub Actions 2020-03-05 09:50:14 +00:00
index.js Integrated Sentry error tracking 2020-02-03 13:43:43 +00:00
LICENSE 2020 2020-01-06 10:51:18 +01:00
MigratorConfig.js Moved ghost-version to lib 2017-12-14 22:14:55 +01:00
package.json Implemented externally verifiable identity tokens 2020-03-16 13:22:04 +01:00
PRIVACY.md Updated links to docs (#10941) 2019-07-22 18:17:50 +08:00
README.md Updated README with GitHub Actions badge 2020-03-05 10:03:13 +00:00
renovate.json Updated ignored dependencies in Renovate 2020-02-25 16:43:04 +00:00
SECURITY.md Updated links to docs (#10941) 2019-07-22 18:17:50 +08:00
yarn.lock Implemented externally verifiable identity tokens 2020-03-16 13:22:04 +01:00

Ghost

Ghost.org | Features | Showcase | Forum | Documentation | Contributing | Twitter

Downloads Latest release Build status Contributors OpenCollective

 

Fiercely independent, professional publishing. Ghost is the most popular open source, headless Node.js CMS which already works with all the tools you know and love.

Ghost(Pro)

The easiest way to deploy Ghost is with our official Ghost(Pro) managed service. You can have a fresh instance up and running in a couple of clicks with a worldwide CDN, backups, security and maintenance all done for you.

Not only will it save you hours of maintenance per month, but all revenue goes to the Ghost Foundation, which funds the maintenance and further development of Ghost itself. So youll be supporting open source software and getting a great service! Alternatively if you'd like to support us, we're very grateful to all our backers on Open Collective ❤️

If you prefer to run on your own infrastructure, we also provide 1-off installs and managed support and maintenance plans via Ghost(Valet) - which can save a substantial amount of developer time and resources.

 

Quickstart Install

If you want to run your own instance of Ghost, in most cases the best way is to use our CLI tool

$ npm install ghost-cli -g

 

Then, if installing locally add the local flag to get up and running in under a minute - Local install docs

$ ghost install local

 

or on a server run the full install, including automatic SSL setup using LetsEncrypt - Production install docs

$ ghost install

 

Check out our official documentation for more information about our recommended hosting stack & properly upgrading Ghost, plus everything you need to develop your own Ghost themes or work with our API.

 

Getting Help

You can find answers to a huge variety of questions, along with a large community of helpful developers over on the Ghost forum - replies are generally very quick. Ghost(Pro) customers also have access to 24/7 email support.

To stay up to date with all the latest news and product updates, make sure you subscribe to our blog — or you can always follow us on Twitter, if you prefer your updates bite-sized and facetious. 🎷🐢

 

Contributors & Advanced Developers

For anyone wishing to contribute to Ghost or to hack/customise core files we recommend following our full development setup guides: General Contributor Guide | Developer Setup Instructions | Admin Client development guide

 

Copyright & License

Copyright (c) 2013-2020 Ghost Foundation - Released under the MIT license. Ghost and the Ghost Logo are trademarks of Ghost Foundation Ltd. Please see our trademark policy for info on acceptable usage.