netlify-cms has its own github OAuth client. This is a python implementation based on the Node.js version.
Other implementations
- Make sure Docker and Docker-Compose are installed.
- Download
docker-compose.yml
from here- In a Linux Bash-Shell simply use:
curl -O https://raw.githubusercontent.com/anjomro/netlify-cms-oauth-provider-python/master/docker-compose.yml
- In a Linux Bash-Shell simply use:
- Change in the directory of the downloaded
docker-compose.yml
file and rundocker-compose up -d
- The service is now running on port
7080
. It is advised to use a reverse proxy like Caddy to secure the service using a TLS Certificate.
- Make sure Docker is installed.
- Run
docker run -p 7080:80 --restart always -d --rm --name cms-oauth-provider ghcr.io/anjomro/netlify-cms-oauth-provider-python:latest
- The service is now running on port
7080
. It is advised to use a reverse proxy like Caddy to secure the service using a TLS Certificate.
For mac and linux
git clone https://github.com/davidejones/netlify-cms-oauth-provider-python.git
cd netlify-cms-oauth-provider-python
python -m venv /path/to/new/virtual/environment
source /path/to/new/virtual/environment/bin/activate
pip install -r requirements.txt
For windows
git clone https://github.com/davidejones/netlify-cms-oauth-provider-python.git
cd netlify-cms-oauth-provider-python
python -m venv /path/to/new/virtual/environment
C:\path\to\new\virtual\environment\bin\activate.bat
pip install -r requirements.txt
Configuration is done with environment variables, which can be supplied as command line arguments, added in your app hosting interface, or loaded from a .env file.
Example .env file:
OAUTH_CLIENT_ID=f432a9casdff1e4b79c57
OAUTH_CLIENT_SECRET=pampadympapampadympapampadympa
REDIRECT_URL=https://your.server.com/callback
GIT_HOSTNAME=https://github.website.com
SSL_ENABLED=1
Client ID & Client Secret: After registering your Oauth app, you will be able to get your client id and client secret on the next page.
Redirect URL (optional): Include this if you need your callback to be different from what is supplied in your Oauth app configuration.
Git Hostname (Optional): This is only necessary for use with Github Enterprise.
You also need to add base_url
to the backend section of your netlify-cms's config file. base_url
is the live URL of this repo with no trailing slashes.
backend:
name: github
repo: user/repo # Path to your Github repository
branch: master # Branch to update
base_url: https://your.server.com # Path to ext auth provider
With your virtual environment activated run the server as follows
python main.py