Static Publisher is an automated deployment server for static site generators, such as Jekyll. It provides endpoints that can be called by webhooks from git hosting sites such as GitHub or BitBucket everytime a project is updated. It has an easy to use admin panel for managing multiple projects deployment, it can run plugins without security restrictions and it can publish to an S3 bucket or git repository.
The easiest way to deploy is to use this "deploy to heroku" button:
For other platforms, Static Publisher is a sinatra app, so instructions for deploying a sinatra app on your chosen platform should work. It also requires a mongodb database, with the environment variable
MONGODB_URI set to the database's url.
Once deployed, the admin panel can be found at:
The inital username and password are set to
To change the username and password, click the small user icon in the top right corner. Type your new credentials in the small form for that appears, click the "Change" submit button and log back in again.
Each generate-publish sequence is triggered by an endpoint, a URL that responds to a HTTP POST request, to be used as a callback for a webhook. The content of the request is completely ignored to avoid relying on any specific webhook's format.
Static Publisher will still return a
200 status indiscriminately, even if a no matching endpoint is found or an error occurs during the generate-publish sequence. Therefore, it is wise to test that an endpoint is working by either checking that it has published successfully or by consulting the STDOUT logs.
The path for the endpoint. It must always start with a preceeding forward slash. For example, a route of
/update-my-awesome-jekyll will make the URL
https://your-fancy-domain.com/update-my-awesome-jekyll trigger the generate-publish sequence.
The following routes cannot be used as they are used for the admin panel:
The location and branch of the git repository for the project you wish to publish.
Currently, the follow static site generators are supported:
These are the methods of publishing that are currently supported:
Click on any of the subsection's labels to reveal their fields. If all the relevent fields are filled in, then that publish method will be attempted.
To get your access key, follow these instructions.
bucket does not exist it will be created.
To publish to a git repository that is password protected use the following form:
- Fork it
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create a new Pull Request