- RESTful API for manipulating Git repositories and executing Makefiles
- Bootstrap publishing projects on GitHub
- Automatic generation of output files whenever the user pushes to GitHub
- Custom Makefiles, CSS styles and scripts on a per-project basis
- Various templates to choose from, as well as the possibility to continuously incorporate updates from them (using git rebase)
- Lightweight frontend
- Caching and automatic cleanup of repositories in the backend
- PHP with cURL module
- (Many templates will also require Python to be installed)
Installation on server
contentdirectory and make it writable to the webserver process
mkdir content && chmod a+rwx contentin the current directory
Make sure you have the latest version of Pandoc installed
user-config.inc.phpfile to hold your custom configuration.
touch user-config.inc.phpin the current directory
Use this file to modify (overwrite) the values of any configuration settings from
config.inc.php. Using a separate file prevents your changes to be undone by future updates to this file.
Setting configuration variables in
user-config.inc.phpworks like this:
<?php $config['key1'] = 'value1'; $config['key2'] = 'value2';
For integration with GitHub, register a new application with them:
point the Authorization callback URL to
github.php?pushin the current directory (e.g.
https://hpt.publishinglab.nl/github.php?push, except on using own domain)
copy the Client ID that is displayed after creating the application and set it as the configuration variable
copy the Client Secret and set is as the configuration variable
set the configuration variables
github_useragentto your GitHub username
Using a web browser, navigate to
Make sure all checks pass.
Copy the displayed SSH public key associated with your server, and add it to your GitHub user
This does not necessarily need to be the user the the application is registered to, but the software needs to be able to push to GitHub as the user defined by the configuration variable
Adding custom templates
Create a publicly accessible Git repository to hold your template
Make sure your template contains a Makefile, at least with a target "all"
Certain aspects of the Sausage Machine operation, e.g. where uploaded files end up relative to the template root, are governed by heuristics. Those will be described in detail in the future. In the mean time, please consult hybrid.inc.php.
Add the the repository's clone URL and description to the
Limitations / Future work
- see TODO