Reviewed-on: #69
PYRSS Website
Setup
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
- Navigate to the Discord Developer Portal, on the applications page: https://discord.com/developers/applications.
- 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.
This application is designed to be used in Guilds, so this setting is important.
OAuth2
Navigate to the "OAuth2" tab from the sidebar.
- Head to the "Redirects" section and select "Add Redirect"
- Add a redirect with this format:
PROTOCOL://HOST_ENDPOINT/oauth2/login/redirect
wherePROTOCOL
is eitherhttp
orhttps
, and theHOST_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.
- Check the checkboxes for these scopes:
- identify
- guilds
- applications.commands
- bot
- There should be a select box below the "scopes" section. Select the redirect URL that you created earlier.
- Check the checkboxes for these bot permissions:
- View Channels
- Send Messages
- Embed Links
- Attach Files > TODO: verifiy?
- Use Slash Commands
- "Integration Type" select
Guild Install
- 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
DB_NAME
- Name of the database
DB_USER
- Name of the database user
DB_PASS
- Password of the database user
DB_HOST
- Host IP of the database
DB_PORT
- Host Port of the database
Note
IfDB_ENGINE
is not specified, the other database related environment variables will be ignored, and the default sqlite database will be used with a generateddb.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.
Logs
By default, logs will be output to the logs/
directory in the project root, which is at /app/logs/
when deployed with docker.
Troubleshooring
Bad Request (400)
Ensure your HOST
environemtn variable matches the endpoint that you are accessing the web application from.
Server Error (500) - keyerror 'access_token'
Ensure your environment variables for DISCORD_OAUTH2_URL
and DISCORD_REDIRECT_URL
are correct, using the correct endpoint for your application, otherwise discord will not return a response including an access token when requested.