Protect private pages hosted on Heroku by authenticating with Github using Flask-Dance. Also, attack rabbits. https://pages.charlesreid1.com/github-heroku-attack-rabbits
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
3.4 KiB

# github-heroku-attack-rabbits
## What's this business all about, then?
This repository helps you put access control into place to protect your secret pages by (deep breath):
6 years ago
hosting your secret page of static and/or dynamic content by using a free Heroku app
running a Python Flask server that uses Flask-Dance to authenticate visitors
6 years ago
with Github using OAuth which allows you fine-grained access control for your pages
using user attributes like organization or team membership or even things like how many
vowels a user has in their username.
Also, did I mention the attack rabbits?
![warning: attack rabbits ahead](img/warning.png)
## Where is everything?
Final pages:
* The finished product (pages on Heroku protected by attack rabbits)
is at [github-heroku-attack-rabbits.herokuapp.com](https://github-heroku-attack-rabbits.herokuapp.com)
* The documentation is at [pages.charlesreid1.com/github-heroku-attack-rabbits](https://pages.charlesreid1.com/github-heroku-attack-rabbits)
Two branches in this repo compose the github-heroku-attack-rabbits documentation:
* (**YOU ARE HERE**) The [docs](https://git.charlesreid1.com/charlesreid1/github-heroku-attack-rabbits/src/branch/docs) branch
contains the files needed to generate the
[github-heroku-attack-rabbits documentation site](https://pages.charlesreid1.com/github-heroku-attack-rabbits).
* The [gh-pages](https://git.charlesreid1.com/charlesreid1/github-heroku-attack-rabbits/src/branch/gh-pages) branch
contains the static files generated from the documentation.
The contents of this branch compose the
[github-heroku-attack-rabbits documentation site](https://pages.charlesreid1.com/github-heroku-attack-rabbits).
Two branches illustrate github-heroku-attack-rabbits in practice:
* The [secret](https://git.charlesreid1.com/charlesreid1/github-heroku-attack-rabbits/src/branch/secret) branch contains the files needed to create the secret page.
This repository is public, so obviously these aren't *actually* secret,
but in practice this would be in a protected repository.
* The [heroku-pages](https://git.charlesreid1.com/charlesreid1/github-heroku-attack-rabbits/src/branch/heroku-pages) branch
contains the content that is actually pushed to Heroku - that is,
the final Flask app.
## Contents
An overview of the steps:
[Get Started with Heroku](heroku.md)
[Get Started with Github](github.md)
[Initialize Repository: Branches](repo.md)
[Create a Flask App using Flask-Dance](flask.md)
* [Authenticate users based on Github membership only](flask_auth_github.md)
* [Authenticate users based on organization or team membership](flask_auth_org.md)
* [Authenticate users based on some other criteria](flask_auth_other.md)
* [Protection portions of the site](flask_auth_portions.md)
[Test Flask App Locally](flask_local.md)
[Deploying Flask App to Heroku](flask_heroku.md)
[Custom Domains](custom_domains.md)
## Links
Python software used:
* [Flask](http://flask.pocoo.org/)
* [Flask-dance](https://github.com/singingwolfboy/flask-dance)
* [Flask-dance-github](https://github.com/singingwolfboy/flask-dance-github)
* [mkdocs-material (documentation theme)](https://github.com/squidfunk/mkdocs-material)
* [mkdocs (documentation)](http://www.mkdocs.org/)
Commercial services:
* [Heroku](https://heroku.com)
* [Github](https://github.com)
## License
This is released under the [WTFPL](https://git.charlesreid1.com/charlesreid1/github-heroku-attack-rabbits/src/branch/docs/LICENSE).