Compare commits
No commits in common. "master" and "gh-pages" have entirely different histories.
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
site/
|
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -1,3 +0,0 @@
|
|||||||
[submodule "mkdocs-material"]
|
|
||||||
path = mkdocs-material
|
|
||||||
url = https://git.charlesreid1.com/charlesreid1/mkdocs-material.git
|
|
19
LICENSE
19
LICENSE
@ -1,19 +0,0 @@
|
|||||||
Copyright (c) 2018 Charles Reid
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
17
README.md
17
README.md
@ -1,17 +0,0 @@
|
|||||||
# how do I heroku
|
|
||||||
|
|
||||||
How do I use heroku? How do I deploy python apps? ruby apps? bots? How do I push to deploy with heroku? How do I set up custom domains with heroku?
|
|
||||||
|
|
||||||
A how-to guide for using heroku.
|
|
||||||
|
|
||||||
## Links
|
|
||||||
|
|
||||||
HTML pages for this tutorial: <https://pages.charlesreid1.com/how-do-i-heroku/>
|
|
||||||
|
|
||||||
Source code for this tutorial: <https://git.charlesreid1.com/charlesreid1/how-do-i-heroku>
|
|
||||||
|
|
||||||
Mirror on Github: <https://github.com/charlesreid1/how-do-i-heroku>
|
|
||||||
|
|
||||||
Get started at the web page [how do I heroku?](https://pages.charlesreid1.com/how-do-i-heroku)
|
|
||||||
or at [docs/index.md](docs/index.md).
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
.md-typeset h1 { font-weight: 600; }
|
|
||||||
.md-typeset h2 { font-weight: 600; }
|
|
||||||
.md-typeset h3 { font-weight: 600; }
|
|
||||||
.md-typeset h4 { font-weight: 600; }
|
|
||||||
|
|
||||||
body {
|
|
||||||
background-color: #FAFAFA;
|
|
||||||
}
|
|
||||||
div.body {
|
|
||||||
background-color: #FAFAFA;
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
# Deploying a Flask app to Heroku
|
|
||||||
|
|
||||||
[link](https://github.com/datademofun/heroku-basic-flask)
|
|
||||||
|
|
||||||
heroku requires us to put gunicorn in front of flask
|
|
||||||
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
|||||||
# Github OAuth with Flask-Dance
|
|
||||||
|
|
||||||
Brief guide to using OAuth Flask-Dance to
|
|
||||||
do authentication using Github API.
|
|
||||||
|
|
||||||
Also see [flask-dance-github](https://github.com/singingwolfboy/flask-dance-github.git)
|
|
||||||
|
|
132
docs/index.md
132
docs/index.md
@ -1,132 +0,0 @@
|
|||||||
# How Do I Heroku?
|
|
||||||
|
|
||||||
How do I use heroku? How do I deploy python apps? ruby apps? bots? How do I push to deploy with heroku? How do I set up custom domains with heroku?
|
|
||||||
|
|
||||||
A how-to guide for using heroku.
|
|
||||||
|
|
||||||
HTML pages for this tutorial (you are here): <https://pages.charlesreid1.com/how-do-i-heroku/>
|
|
||||||
|
|
||||||
Source code for this tutorial: <https://git.charlesreid1.com/charlesreid1/how-do-i-heroku>
|
|
||||||
|
|
||||||
Mirror on Github: <https://github.com/charlesreid1/how-do-i-heroku>
|
|
||||||
|
|
||||||
|
|
||||||
## Frequently Asked Questions
|
|
||||||
|
|
||||||
### Basics: What is heroku and how do I use it?
|
|
||||||
|
|
||||||
Heroku is a service that offers to run your code in the cloud.
|
|
||||||
|
|
||||||
In practice, this means that you can provide Heroku with a packaged
|
|
||||||
application, in your language of choice, and have Heroku deploy
|
|
||||||
and run the packaged application on their servers.
|
|
||||||
|
|
||||||
(This is similar to Google App Engine.)
|
|
||||||
|
|
||||||
The one catch is that your application is run as a stateless application,
|
|
||||||
meaning it cannot write to or read from disk dynamically; Heroku must
|
|
||||||
be able to tear it down and restart it from scratch.
|
|
||||||
|
|
||||||
### Basics: heroku paid vs free accounts
|
|
||||||
|
|
||||||
The paid tier gets you access to machines (dynamos) with more resources,
|
|
||||||
and prevents your apps from shutting off or "spinning down" after a period
|
|
||||||
of inactivity.
|
|
||||||
|
|
||||||
The difference is not that significant, but _is_ important for _some_ applications.
|
|
||||||
|
|
||||||
### Basics: installing heroku
|
|
||||||
|
|
||||||
Heroku offers a command line interface. To install it, see the page below:
|
|
||||||
|
|
||||||
[**Installing the heroku toolbelt**](toolbelt.md) - a guide to installing the
|
|
||||||
Heroku toolbelt and getting it set up.
|
|
||||||
|
|
||||||
### Python: how do I deploy python apps to heroku?
|
|
||||||
|
|
||||||
If you want to deploy a Python application to Heroku, it is recommended that you
|
|
||||||
write a Flask application as the backend service, and wrap it with Gunicorn
|
|
||||||
on the frontend.
|
|
||||||
|
|
||||||
Basically, Flask is a simple, single-threaded application that is intended
|
|
||||||
for prototyping but doesn't do very well as a production service. Gunicorn
|
|
||||||
acts as middleware, more gracefully handling connections from clients and
|
|
||||||
making requests to the Flask app on their behalf.
|
|
||||||
|
|
||||||
[**Deploying flask apps on heroku**](flask.md) - a customizable python server
|
|
||||||
|
|
||||||
### Python: how do I use OAuth from a flask application on heroku?
|
|
||||||
|
|
||||||
If you are using flask as your web server, there are many libraries
|
|
||||||
that plug in to flask and offer OAuth authentication with various
|
|
||||||
third-party API services.
|
|
||||||
|
|
||||||
One that provides authentication with a variety of services is
|
|
||||||
[flask-dance](https://github.com/singingwolfboy/flask-dance.git).
|
|
||||||
This adds a blueprint (basically, a set of routes at `/login`)
|
|
||||||
to the Flask app.
|
|
||||||
|
|
||||||
This enables your app to request permissions from the user,
|
|
||||||
have the user authenticate with Github, and gain access
|
|
||||||
to the information about the user that you requested.
|
|
||||||
|
|
||||||
[**Deploying Github OAuth flask app on heroku**](github_flaskdance.md) - authenticating users
|
|
||||||
and controlling access to web content via github-based means (i.e., organization/team membership).
|
|
||||||
|
|
||||||
### Push to Deploy: how does push-to-deploy work with heroku?
|
|
||||||
|
|
||||||
Before you begin, install the heroku toolbelt:
|
|
||||||
|
|
||||||
[**Installing the heroku toolbelt**](toolbelt.md) - a guide to installing the
|
|
||||||
Heroku toolbelt and getting it set up.
|
|
||||||
|
|
||||||
Make sure you are authenticated:
|
|
||||||
|
|
||||||
```
|
|
||||||
heroku login
|
|
||||||
```
|
|
||||||
|
|
||||||
Now from your git repository, add your Heroku project as a git remote:
|
|
||||||
|
|
||||||
```
|
|
||||||
heroku git:remote -a my-cool-heroku-project
|
|
||||||
```
|
|
||||||
|
|
||||||
The github repository will now have a remote named `heroku`.
|
|
||||||
|
|
||||||
Locally, the repository will have a branch named `heroku-pages`
|
|
||||||
that will store all of the actual content being deployed to Heroku.
|
|
||||||
(This is the only branch deployed to Heroku, all others are ignored.)
|
|
||||||
|
|
||||||
On Heroku, this branch is called `master`, so the heroku command above
|
|
||||||
keeps this from getting overly confusing. It sets up the branch
|
|
||||||
`heroku-pages` to track the branch `master` on the `heroku` remote.
|
|
||||||
|
|
||||||
Now, when you're ready to deploy, you add/commit changes to the
|
|
||||||
`heroku-pages` branch. Then you just push the `heroku-pages` branch
|
|
||||||
on your local machine to the `master` branch on the Heroku remote
|
|
||||||
with the command:
|
|
||||||
|
|
||||||
```
|
|
||||||
git push heroku heroku-pages:master
|
|
||||||
```
|
|
||||||
|
|
||||||
### Example: protecting a page with flask-oauth-dance
|
|
||||||
|
|
||||||
Also see the answer to the OAuth question above.
|
|
||||||
|
|
||||||
[**Deploying Github OAuth flask app on heroku**](github.flask.md) - authenticating users
|
|
||||||
and controlling access to web content via github-based means (i.e., organization/team membership).
|
|
||||||
|
|
||||||
### Databases: how do I use an SQL database with a heroku app?
|
|
||||||
|
|
||||||
(TODO)
|
|
||||||
|
|
||||||
### Custom Domains: how do I set up custom domains with heroku?
|
|
||||||
|
|
||||||
(TODO)
|
|
||||||
|
|
||||||
### Custom Domains + SSL: how do I set up https with a custom domain?
|
|
||||||
|
|
||||||
(TODO)
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
# Installing the Heroku Toolbelt
|
|
||||||
|
|
||||||
Also see
|
|
||||||
[heroku documentation: toolbelt installation instructions](https://devcenter.heroku.com/articles/heroku-cli)
|
|
||||||
|
|
||||||
## Mac
|
|
||||||
|
|
||||||
On a Mac, the Heroku toolbelt can be installed using Homebrew:
|
|
||||||
|
|
||||||
```
|
|
||||||
brew install heroku/brew/heroku
|
|
||||||
```
|
|
||||||
|
|
||||||
## Linux
|
|
||||||
|
|
||||||
On Ubuntu, the Heroku toolbelt is installable with a shell script:
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo snap install heroku --classic
|
|
||||||
```
|
|
||||||
|
|
||||||
## Set Up Credentials
|
|
||||||
|
|
||||||
Before using the toolbelt, you must authenticate with Heroku:
|
|
||||||
|
|
||||||
```
|
|
||||||
heroku login
|
|
||||||
```
|
|
||||||
|
|
||||||
The heroku tool saves your email and the API token generated by
|
|
||||||
the above command to the file `~/.netrc`.
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
Subproject commit b0c6890853aa9138baf5f9749862b927518ab656
|
|
39
mkdocs.yml
39
mkdocs.yml
@ -1,39 +0,0 @@
|
|||||||
site_name: how do I heroku?
|
|
||||||
site_url: https://pages.charlesreid1.com/how-do-i-heroku
|
|
||||||
repo_name: charlesreid1/how-do-i-heroku
|
|
||||||
repo_url: https://github.com/charlesreid1/how-do-i-heroku
|
|
||||||
edit_uri: ""
|
|
||||||
|
|
||||||
copyright: 'Copyright © 2018 <a href="https://charlesreid1.com">Charles Reid</a>, released under the <a href="https://opensource.org/licenses/MIT">MIT license</a>'
|
|
||||||
|
|
||||||
docs_dir: docs
|
|
||||||
site_dir: site
|
|
||||||
extra_css:
|
|
||||||
- css/custom.css
|
|
||||||
theme:
|
|
||||||
name: null
|
|
||||||
custom_dir: 'mkdocs-material/material'
|
|
||||||
palette:
|
|
||||||
primary: 'indigo'
|
|
||||||
accent: 'indigo'
|
|
||||||
logo:
|
|
||||||
icon: 'help'
|
|
||||||
font:
|
|
||||||
text: 'Bitter'
|
|
||||||
code: 'PT Mono'
|
|
||||||
nav:
|
|
||||||
- "Index" : "index.md"
|
|
||||||
- "Heroku and Flask" : "flask.md"
|
|
||||||
- "Heroku Toolbelt" : "toolbelt.md"
|
|
||||||
- "Github OAuth" : "github_flaskdance.md"
|
|
||||||
|
|
||||||
# Extensions
|
|
||||||
markdown_extensions:
|
|
||||||
- admonition
|
|
||||||
- codehilite:
|
|
||||||
guess_lang: false
|
|
||||||
- toc:
|
|
||||||
permalink: true
|
|
||||||
|
|
||||||
|
|
||||||
strict: true
|
|
Loading…
x
Reference in New Issue
Block a user