A simple chat app I've created with user authentication to only allow certain people to join. I created it because Discord, the regular chat is blocked on school wifi and I couldn't find a decent chat that was unblocked, so I created my own 😉
I created my chat off this template, one of the only ones I could find that wasn't outdated.
All config options are read from the environment using python's inbuilt method os.getenv. The current supported settings are;
| Setting | Description | Default value |
|---|---|---|
| DATABASE_URL | The postgres formatted URL of the database to connect to |
Required - no default |
| HOST | The host on which to run the server | localhost |
| PORT | The port on which to run the server | 80 |
| PRINT_MESSAGES | Specefies if the messages sent in chat should be logged in the console | True |
| MAX_CACHE_MESSAGE_LENGTH | The maximum number of messages for the server to hold in the cache before deleting the oldest one | 0 (infinite) |
| LOG_PINGS | Specefies if keepalive pings from the client should be logged | False |
| DEVELOPMENT | Specefies if the server is being used in a testing environment. This enables extra debug-only settings | False |
| COMMAND_PREFIX | The prefix of the commands used in chat | ! |
| NICKNAME_COOLDOWN | The number of seconds a user must wait between each change before being able to change it again | 0 (No cooldown) |
