diff --git a/README.md b/README.md index 7a84fb8..850cabe 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,85 @@ -# PYRSS-Website +# PYRSS Website -Required Discord OAuth2 Scopes -- Identify - Get user data +## Setup -- Guilds - Get user guilds +### Discord Application + +A Discord Application is required for PYRSS to work, as it will provide the Discord Bot used to send RSS content. + +Save the key and secret as these environment variables: +- `DISCORD_KEY` +- `DISCORD_SECRET` + +#### Create the Application + +1. Navigate to the Discord Developer Portal, on the applications page: https://discord.com/developers/applications. +2. Create an App using the "New Application" button. + +#### Installation + +Now that you've created an Application, there are some required settings that you need to configure, navigate to the "Installation" tab from the sidebar. + +Under "Installation Contexts", ensure that only the `Guild Install` checkbox is checked. + +![An example image showing the "Guild Install" checkbox as checked.](apps/static/images/installation_contexts.png) + +This application is designed to be used in Guilds, so this setting is important. + +#### OAuth2 + +Navigate to the "OAuth2" tab from the sidebar. + +1. Head to the "Redirects" section and select "Add Redirect" +2. Add a redirect with this format: `PROTOCOL://HOST_ENDPOINT/oauth2/login/redirect` where `PROTOCOL` is either `http` or `https`, and the `HOST_ENDPOINT` is either an IP:PORT combination or web domain. + +Now you need to generate an Invite URL that you can use to add the Bot to your Discord Server. Navigate to the "OAuth2 URL Generator" section. + +1. Check the checkboxes for these scopes: + - identify + - guilds + - applications.commands + - bot +2. There should be a select box below the "scopes" section. Select the redirect URL that you created earlier. +3. Check the checkboxes for these bot permissions: + - View Channels + - Send Messages + - Embed Links + - Attach Files > TODO: verifiy? + - Use Slash Commands +4. "Integration Type" select `Guild Install` +5. Copy and save the generated URL + +You need to create an environment variable for the generated url, `DISCORD_OAUTH2_URL`. + +> TODO: write for `DISCORD_INVITE_URL` env var + +#### Bot + +Navigate to the "Bot" tab from the sidebar. + +Take note of the Token, you may need to use the "Reset Token" button to get one. +You will need to create an environment variable `BOT_TOKEN` for PYRSS. + +Navigate to the "Privilaged Gateway Intents" and ensure these intents are enabled: + +- > TODO + +### Database + +Use environment variables to specify a database, otherwise an sqlite database file will be created and used by default. + +#### Environment Variables + +`DB_ENGINE` - [Supported database engines](https://docs.djangoproject.com/en/5.0/ref/settings/#engine) +`DB_NAME` - Name of the database +`DB_USER` - Name of the database user +`DB_PASSWORD` - Password of the database user +`DB_HOST` - Host IP of the database +`DB_PORT` - Host Port of the database + +> **Note** +> If `DB_ENGINE` is not specified, the other database related environment variables will be ignored, and the default sqlite database will be used with a generated `db.sqlite3` file. + +### Admin Account + +Create an environment variable `SUPERUSER_IDS` and add comma separated Discord snowflake User IDs. When logged-in, these users will be able to access the admin panel. diff --git a/apps/static/images/installation_contexts.png b/apps/static/images/installation_contexts.png new file mode 100644 index 0000000..a505891 Binary files /dev/null and b/apps/static/images/installation_contexts.png differ