/proxy-gate

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause


Proxy Gate adds authentication and access controls to apps using Nginx as a proxy frontend. It enables seamless external authentication, allowing you to enhance your apps' security by adding authentication and authorization checks.

It can act as a Single Sign-On (SSO) solution for multiple applications.

Workflow

enter image description here

Auhentication and Authorization Workflow

Auhentication and Authorization Workflow

External Identity Providers

  1. Plex
  2. Apple (Coming Soon)
  3. Facebook (Coming Soon)
  4. Google (Coming Soon)
  5. LDAP (Coming Soon)

Authentication

Proxy Gate performs authentication as requested by the Proxy.

Authorization

Plex

  • Perform check that the user has access to a Plex server before granted access to the resource.
  • Provide access based on the user's email address
  • The user has Two Factor Enabled on Plex

Quick Start

Using the docker compose file:

docker compose up --detach

Nginx should be available at: https://localhost Demonstration for a Plex Authentication: https://app-behind-plex.localhost

Configuration

Flask Configuration

The following methods can be used to configure the Flask instance. They are in order in which they are loaded: https://flask.palletsprojects.com/en/2.3.x/config/

  1. Loaded from the $PROXY_GATE_DATA_DIR/flask-config.yml
  2. Set the Flask configuration via environment variable by prefixing the variable name with FLASK_

SQL Alchemey Configuration Same as Flask Configuration

Gunicorn Configuration

Loaded from $PROXY_GATE_DATA_DIR/gunicorn.conf.py

Proxy Gate (Coming Soon)

Loaded from $PROXY_GATE_DATA_DIR/proxy-gate-config.py