aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: 8bc01860a0849a2e74218b0d1fa495e0db3e2829 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# Python Discord Forms (Backend)
API for Python Discord forms (https://forms.pythondiscord.com) that handles Discord login and forms, submissions.

## Setup
### Prerequisites
To start working on forms-backend, you need few things:
1. Discord Application (in [Developers Portal](https://discord.com/developers/applications))
2. Poetry
3. Docker and docker-compose (optional)
4. Running MongoDB instance (when not using Docker)

### Running with Docker
Easiest way to run this is using Docker (and docker-compose).

#### Environment variables
Set following environment variables to `.env` file:
- `OAUTH2_CLIENT_ID`: Client ID of Discord Application (prerequisites point 1).
- `OAUTH2_CLIENT_SECRET`: Client Secret of Discord Application (prerequisites point 1).
- `ALLOWED_URL`: Allowed origin for CORS middleware.

#### Running
Running is really for this way: `docker-compose up`! And this is all: You can access now API from `http://localhost:8000`.

### Running on host
Another way to run forms-backend is manually in host.

#### Environment variables
First all same than in Docker environment variables section, with following additions:
- `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
Almost same easy than for Docker: `uvicorn --reload --host 0.0.0.0 --debug "backend:app`.