staticman breaks free from servers
Simple wrapper around Staticman that allows it to be hosted as a netlify function. I wrote this to overcome the frequent outages the public instance of staticman was facing due to its increased usage by the static site community.
- Create/edit a
netlify.tomlfile at the root of your project with the following content. The important thing to note here is thefunctionsfield which tells netlify where your functions are kept in the project
[build] command = "yarn build" functions = "functions" publish = "build"
-
Clone / download this repository and copy the
functionsfolder to your project -
Add a
postinstallscript to your project's package.json like so
// package.json { "scripts": { // existing scripts "postinstall": "cd functions/staticman && yarn --production" } }
- Commit and push the changes
Netlify should now automatically detect and deploy the function. Now to configure staticman.
Staticman needs a Github token with repo permissions and a RSA private key (On Mac this can be generated with ssh-keygen -t rsa -m pem) As documented here, this should be set under GITHUB_TOKEN and RSA_PRIVATE_KEY in Settings > Build & deploy > Environment > Environment variables (Environment variables in netlify)
Now you can continue past Step 2 in the guide and instead of calling https://api.staticman.net/v2/entry/{GITHUB USERNAME}/{GITHUB REPOSITORY}/{BRANCH}/{PROPERTY} in the examples, call https://{YOUR SITE}/.netlify/functions/staticman/{GITHUB USERNAME}/{GITHUB REPOSITORY}/{BRANCH}/{PROPERTY}
18.09.2020
Added support for options[redirect] and options[redirectError]
(eduardoboucas/staticman#11 (comment))
(eduardoboucas/staticman#89 (comment))
01.03.2020
Fixed issue with trailing slashes in URL
17.11.2019
Initial release