aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md37
1 files changed, 35 insertions, 2 deletions
diff --git a/README.md b/README.md
index afe235e..671e6d5 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,35 @@
-# forms-backend
-Backend for Python Discord forms
+# Python Discord Forms API
+API for [Python Discord Forms](https://forms.pythondiscord.com) 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](https://discord.com/developers/applications))
+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.