All Projects → benbalter → Jekyll Auth

benbalter / Jekyll Auth

A simple way to use GitHub OAuth to serve a protected Jekyll site to your GitHub organization

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Jekyll Auth

Portfolio Generator
HoxNox - Portfolios Made Easy, Generate portfolios in 3 easy steps
Stars: ✭ 166 (-78.66%)
Mutual labels:  heroku, oauth
Soqlbuilder
Node.js and AngularJs based Query Builder for Salesforce using OAuth2 and REST API
Stars: ✭ 37 (-95.24%)
Mutual labels:  heroku, oauth
sinatras-skeleton
Basic Sinatra Skeleton MVC CRUD App with Sprockets, Warden, ActiveRecord and PostgresQL
Stars: ✭ 13 (-98.33%)
Mutual labels:  heroku, sinatra
Trebekbot
An addictive Jeopardy! bot for Slack. Fun fact, after I added this to my work Slack I was told to limit it to a single channel because productivity ground to a halt. (Five years later, the #jeopardy channel is still going strong.)
Stars: ✭ 147 (-81.11%)
Mutual labels:  heroku, sinatra
Core Nestjs
A simple application demonstrating the basic usage of permissions with NestJS (JWT, Passport, Facebook, Google+, User, Group, Permission)
Stars: ✭ 347 (-55.4%)
Mutual labels:  heroku, oauth
Forty Jekyll Theme
A Jekyll version of the "Forty" theme by HTML5 UP.
Stars: ✭ 695 (-10.67%)
Mutual labels:  jekyll
Python O365
A simple python library to interact with Microsoft Graph and Office 365 API
Stars: ✭ 742 (-4.63%)
Mutual labels:  oauth
Cli
Heroku CLI
Stars: ✭ 685 (-11.95%)
Mutual labels:  heroku
Mod auth openidc
OpenID Connect Relying Party implementation for Apache HTTP Server 2.x
Stars: ✭ 677 (-12.98%)
Mutual labels:  oauth
Memo
📓 Memo Life For You
Stars: ✭ 771 (-0.9%)
Mutual labels:  jekyll
Cpprestsdk
The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.
Stars: ✭ 6,631 (+752.31%)
Mutual labels:  oauth
Ghost On Heroku
One-button Heroku deploy for the Ghost blogging platform.
Stars: ✭ 731 (-6.04%)
Mutual labels:  heroku
Moving
A clean and minimalist theme for Jekyll.
Stars: ✭ 701 (-9.9%)
Mutual labels:  jekyll
Particle
A simple portfolio Jekyll theme:
Stars: ✭ 747 (-3.98%)
Mutual labels:  jekyll
Sleek Dashboard
Sleek Dashboard - Free Bootstrap 4 Admin Template and UI Kit
Stars: ✭ 690 (-11.31%)
Mutual labels:  jekyll
Rails Template
Application template for Rails 6 projects; preloaded with best practices for TDD, security, deployment, and developer productivity.
Stars: ✭ 763 (-1.93%)
Mutual labels:  heroku
Simplicity
A simple way to implement Facebook and Google login in your iOS apps.
Stars: ✭ 683 (-12.21%)
Mutual labels:  oauth
Markdown Cv
a simple template to write your CV in a readable markdown file and use CSS to publish/print it.
Stars: ✭ 721 (-7.33%)
Mutual labels:  jekyll
Minimal
Minimal is a Jekyll theme for GitHub Pages
Stars: ✭ 753 (-3.21%)
Mutual labels:  jekyll
Cayman
Cayman is a Jekyll theme for GitHub Pages
Stars: ✭ 719 (-7.58%)
Mutual labels:  jekyll

Jekyll Auth

A simple way to use GitHub OAuth to serve a protected Jekyll site to your GitHub organization

Gem Version Build Status PRs Welcome

The problem

Jekyll and GitHub Pages are awesome, right? Static site, lightning fast, everything versioned in Git. What else could you ask for?

But what if you only want to share that site with a select number of people? Before, you were SOL. Now, simply host the site on a free, Heroku Dyno, and whenever someone tries to access it, it will Oauth them against GitHub, and make sure they're a member of your Organization. Pretty cool, huh?

Requirements

  1. A GitHub account (one per user)
  2. A GitHub Organization (of which members will have access to the Jekyll site)
  3. A GitHub Application (you can register one for free)
  4. A Heroku account (you can technically use this elsewhere, but the instructions are for Heroku)

Under the hood

Every time you push to Heroku, we take advantage of the fact that Heroku automatically runs the rake assets:precompile command (normally used for Rails sites) to build our Jekyll site and store it statically, just like GitHub pages would.

Anytime a request comes in for a page, we run it through Sinatra (using the _site folder as the static file folder, just as public would be normally), and authenticate it using sinatra_auth_github.

If they're in the org, they get the page. Otherwise, all they ever get is the bouncer.

Further reading

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].