All Projects → eduardoboucas → Staticman

eduardoboucas / Staticman

Licence: mit
💪 User-generated content for Git-powered websites

Programming Languages

javascript
184084 projects - #8 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to Staticman

Awesome Docs With Static Site Generators
Pointers to all templates and implementations based on static site generators
Stars: ✭ 44 (-97.9%)
Mutual labels:  jekyll, static-site-generator, hugo, middleman
Pendulum
A simple markdown editor for static files (Hugo, Nexo, Jekyll, MkDocs, ...)
Stars: ✭ 157 (-92.52%)
Mutual labels:  jekyll, static-site-generator, hugo
Vanilla Back To Top
Simple and smooth Back To Top button
Stars: ✭ 179 (-91.47%)
Mutual labels:  jekyll, static-site-generator, hugo
Post Scheduler
Schedule posts & content updates for static websites (Jekyll, Hugo, Gatsby, Phenomic etc)
Stars: ✭ 184 (-91.23%)
Mutual labels:  jekyll, static-site-generator, hugo
Hugo Theme Basic
Basic site theme styled with minimal tachyons, syntax highlighting, and blog series configuration. 📦
Stars: ✭ 89 (-95.76%)
Mutual labels:  static-site-generator, hugo
Actions Gh Pages
GitHub Actions for GitHub Pages 🚀 Deploy static files and publish your site easily. Static-Site-Generators-friendly.
Stars: ✭ 2,576 (+22.78%)
Mutual labels:  static-site-generator, hugo
Hugo Theme Nix
Nix is a simple, minimal theme for Hugo
Stars: ✭ 101 (-95.19%)
Mutual labels:  static-site-generator, hugo
Tableless
O site do Tableless em Hugo. Mais leve, impossível.
Stars: ✭ 107 (-94.9%)
Mutual labels:  static-site-generator, hugo
Notfoundbot
fix & archive outgoing links on your website
Stars: ✭ 74 (-96.47%)
Mutual labels:  jekyll, hugo
Hugo Coder
A minimalist blog theme for hugo.
Stars: ✭ 1,374 (-34.51%)
Mutual labels:  static-site-generator, hugo
Jekyll Serve
Jekyll in a Docker Container For Easy SSG Development
Stars: ✭ 164 (-92.18%)
Mutual labels:  jekyll, static-site-generator
Heckle
✒️ Jekyll in Haskell (feat. LaTeX)
Stars: ✭ 80 (-96.19%)
Mutual labels:  jekyll, static-site-generator
Awesome Blogdown
An awesome curated list of blogs built using blogdown
Stars: ✭ 80 (-96.19%)
Mutual labels:  static-site-generator, hugo
Harbor
Simple and minimal personal blog theme.
Stars: ✭ 120 (-94.28%)
Mutual labels:  static-site-generator, hugo
Glim
Static site generator which is semi-compatible with Jekyll
Stars: ✭ 76 (-96.38%)
Mutual labels:  jekyll, static-site-generator
Startjekyll
An example and guide to getting started with Jekyll and static site generators.
Stars: ✭ 106 (-94.95%)
Mutual labels:  jekyll, static-site-generator
Hugothemes
A curated directory of Hugo themes
Stars: ✭ 1,571 (-25.12%)
Mutual labels:  static-site-generator, hugo
Hugs
🤗 A super simple starting point for Hugo websites.
Stars: ✭ 162 (-92.28%)
Mutual labels:  static-site-generator, hugo
Hugo Agency Theme
Port of Startbootstrap's Agency theme to Hugo
Stars: ✭ 155 (-92.61%)
Mutual labels:  static-site-generator, hugo
Jekyll Vue Template
A starter template for Jekyll projects with Vue.js and Vue Single File Components, complete with webpack.
Stars: ✭ 65 (-96.9%)
Mutual labels:  jekyll, static-site-generator

Staticman coverage Build Status JavaScript Style Guide

Static sites with superpowers

Introduction

Staticman is a Node.js application that receives user-generated content and uploads it as data files to a GitHub and/or GitLab repository. In practice, this allows you to have dynamic content (e.g. blog post comments) as part of a fully static website, as long as your site automatically deploys on every push to GitHub and/or GitLab, as seen on GitHub Pages, GitLab Pages, Netlify and others.

It consists of a small web service that handles the POST requests from your forms, runs various forms of validation and manipulation defined by you and finally pushes them to your repository as data files. You can choose to enable moderation, which means files will be pushed to a separate branch and a pull request will be created for your approval, or disable it completely, meaning that files will be pushed to the main branch automatically.

You can download and run the Staticman API on your own infrastructure. The easiest way to get a personal Staticman API instance up and running is to use the free tier of Heroku. If deploying to Heroku you can simply click the button below and enter your config variables directly into Heroku as environment variables.

Deploy

Requirements

  • Node.js 8.11.3+
  • npm
  • A personal access token for the GitHub and/or GitLab account you want to run Staticman with
  • An RSA key in PEM format

Setting up the server on your own infrastructure

NOTE: The below steps are not required if deploying to Heroku. To deploy to Heroku, click the above deploy button and enter your configuration variables in the Heroku Dashboard.

  • Clone the repository and install the dependencies via npm.

    git clone [email protected]:eduardoboucas/staticman.git
    cd staticman
    npm install
    
  • Create a development config file from the sample file.

    cp config.sample.json config.development.json
    
  • Edit the newly-created config file with your GitHub and/or GitLab access token, SSH private key and the port to run the server. Click here for the list of available configuration parameters.

  • Start the server.

    npm start
    

Each environment, determined by the NODE_ENV environment variable, requires its own configuration file. When you're ready to push your Staticman API live, create a config.production.json file before deploying.

Check this guide if you're using Docker.

Setting up a repository

Staticman runs as a bot using a GitHub and/or GitLab account, as opposed to accessing your account using the traditional OAuth flow. This means that you can give it access to just the repositories you're planning on using it on, instead of exposing all your repositories.

To add Staticman to a repository, you need to add the bot as a collaborator with write access to the repository and ask the bot to accept the invite by firing a GET request to this URL:

http://your-staticman-url/v2/connect/GITHUB-USERNAME/GITHUB-REPOSITORY

Site configuration

Staticman will look for a config file. For the deprecated v1 endpoints, this is a _config.yml with a staticman property inside; for v2 endpoints, Staticman looks for a staticman.yml file at the root of the repository.

For a list of available configuration parameters, please refer to the documentation page.

Development

Would you like to contribute to Staticman? That's great! Here's how:

  1. Read the contributing guidelines
  2. Pull the repository and start hacking
  3. Make sure tests are passing by running npm test
  4. Send a pull request and celebrate

Useful links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].