GitHub storage adapter for Ghost. Recommended as a completely free storage solution for blogs being hosted on platforms with ephemeral filesystems, like Heroku.
cd /path/to/your/ghost/installation
npm install ghost-storage-github
mkdir -p content/adapters/storage
cp -r node_modules/ghost-storage-github content/adapters/storage/ghost-storage-github
Add the following to your configuration file and modify it accordingly.
"storage": {
"active": "ghost-storage-github",
"ghost-storage-github": {
"token": "<your token here>",
"owner": "<your username here>",
"repo": "ghost-assets",
"branch": "master",
"destination": "my/subdirectory",
"baseUrl": "https://cdn.example.com",
"useRelativeUrls": false
}
}
Here's a comprehensive list of configurations:
Name | Required? | Description | Environment variable (prefixed with GHOST_GITHUB_ ) |
---|---|---|---|
baseUrl |
no | Base URL of newly saved images. Uses raw.githubusercontent.com by default | BASE_URL |
branch |
no | Branch to push assets to. Defaults to master |
BRANCH |
destination |
no | Directory to push assets to. Defaults to / |
DESTINATION |
owner |
yes | Username of the user/organization the repo is under | OWNER |
repo |
yes | Name of the repo | REPO |
token |
yes | Your personal access token | TOKEN |
useRelativeUrls |
no | Whether or not to return relative URLs (i.e. under /content/images ) instead of absolute URLs. Might be of use to people who generate and serve a static version of their Ghost blog. |
USE_RELATIVE_URLS |
- Create a new personal token here.
- Select 'repo' (which will select everything under
repo
), as ghost-storage-github will need access to your repository. - Copy the token that shows up upon successful creation, and paste that into the
token
field of ghost-storage-github's configuration.
Your token or password might be incorrect. You should double-check your configuration.
Make sure the repository you specified exists. Also, check to make sure the branch (if specified) exists in the repo.