Skip to content

python-discord/forms-backend

 
 

Repository files navigation

Python Discord Forms API

API for Python Discord Forms that handles Discord OAuth2 integration and form submission.

Setup

Prerequisites

To start working on forms-backend, you'll need few things:

  1. Discord OAuth2 Application (from the Discord Developers Portal)
  2. Poetry
  3. Docker and docker-compose (optional)
  4. Running MongoDB instance (when not using Docker)

Running with Docker

The easiest way to run forms-backend is using Docker (and docker-compose).

Environment variables

Create a .env file in the root with the following values inside it (each variable should be a line like VARIABLE=value):

  • OAUTH2_CLIENT_ID: Client ID of Discord OAuth2 Application (see prerequisites).
  • OAUTH2_CLIENT_SECRET: Client Secret of Discord OAuth2 Application (see prerequisites).
  • ALLOWED_URL: Allowed origin for CORS middleware.

Running

To start using the application, simply run docker-compose up in the repository root. You'll be able to access the application by visiting http://localhost:8000/

Running on the host

You can also run forms-backend manually on the host.

Environment variables

Create a .env file with the same contents as the Docker section above and the following new variables:

  • DATABASE_URL: MongoDB instance URI, in format mongodb://(username):(password)@(database IP or domain):(port).
  • MONGO_DB: MongoDB database name, defaults to pydis_forms.

Running

Simply run: $ uvicorn --reload --host 0.0.0.0 --debug backend:app.

Once this is running the API is accessible via http://localhost:8000/ and will reload on any changes to code.