Updated the readme, docker files, and makefile
This commit is contained in:
43
README.md
43
README.md
@@ -6,19 +6,27 @@
|
||||
Siren is a D&D Bot built for Discord, written in Rust. Features include:
|
||||
- Play tracks from Youtube or locally hosted files
|
||||
- Assistant DM tools to be defined later
|
||||
- ChatGPT integration
|
||||
|
||||
## Requirements
|
||||
- [Docker](https://www.docker.com/)
|
||||
- **Optional**: [Docker Compose](https://docs.docker.com/compose/install/)
|
||||
|
||||
## Running
|
||||
1. Setup the Discord Developer Application and bot
|
||||
2. Copy `.env.TEMPLATE` to `.env` and fill out the fields
|
||||
3. Build the [Docker](https://www.docker.com/) application with `make build`
|
||||
2. Create `.env.local` and override any variables from `.env`
|
||||
- At minimum, `DISCORD_TOKEN` must be set. See [instructions](#setup-discord-developer-application) for additional steps.
|
||||
3. Build the Docker application with `make build`
|
||||
4. Start the application with `make up`
|
||||
|
||||
### Setting up the Discord Developer Application
|
||||
<h3 id='setup-discord-developer-application'>Setting up the Discord Developer Application</h3>
|
||||
Visit the [Discord Developer Portal](https://discord.com/developers/applications) and create a new application. Click [here](https://discord.com/developers/docs/intro) for guides and more information.
|
||||
|
||||
Required Scopes:
|
||||
- bot
|
||||
- application.commands
|
||||
```
|
||||
bot
|
||||
application.commands
|
||||
```
|
||||
|
||||
Example Invite:
|
||||
```
|
||||
@@ -30,6 +38,26 @@ The DISCORD_TOKEN (used in the `.env file`) can be found under the Bot tab on th
|
||||
|
||||

|
||||
|
||||
### Commands
|
||||
Siren utilizes Discord slash commands. To view the commands, run `/help` in a server where the bot is installed. The following commands are available:
|
||||
|
||||
| Command | Description |
|
||||
| --- | --- |
|
||||
| `/play` | Play a track from Youtube or locally hosted files |
|
||||
| `/pause` | Pause the current track |
|
||||
| `/resume` | Resume the current track |
|
||||
| `/skip` | Skip the current track |
|
||||
| `/stop` | Stop the current track |
|
||||
| `/queue` | ***TODO*** - Display the current queue |
|
||||
| `/clear` | ***TODO*** - Clear the current queue |
|
||||
| `/shuffle` | ***TODO*** - Shuffle the current queue |
|
||||
| `/loop` | ***TODO*** - Loop the current track |
|
||||
| `/nowplaying` | ***TODO*** - Display the current track |
|
||||
| `/volume` | Set the volume of the bot |
|
||||
| `/ping` | Display the bot's latency |
|
||||
| `/roll` | Roll a dice |
|
||||
| `/help` | ***TODO*** - Display a list of commands |
|
||||
|
||||
## Contributing
|
||||
[Rust](https://www.rust-lang.org/) must be installed to run locally. See [serenity-rs/serenity](https://github.com/serenity-rs/serenity) for more information about Rust Discord API Library.
|
||||
|
||||
@@ -68,7 +96,7 @@ The following packages must be installed for [serenity-rs/songbird](https://gith
|
||||
</details>
|
||||
|
||||
### Running Locally
|
||||
1. Start the backend containers with `make refresh`
|
||||
1. Start the backend containers with `make docker-refresh`
|
||||
2. Start the application with `make run`
|
||||
|
||||
The application can also be tested from within a Docker container:
|
||||
@@ -76,6 +104,3 @@ The application can also be tested from within a Docker container:
|
||||
docker build -t siren:latest .
|
||||
docker run --env-file .env -it --rm --name siren siren:latest
|
||||
```
|
||||
|
||||
### Authentication
|
||||
The Siren service uses a stateful JWT authentication system, which allows for the ability to revoke and expire tokens, as well as to allow for the ability to have multiple tokens per user. A public/private key is needed for the JWT. The keys can be generated with `./generate_keys.sh`. These keys should be located within a `/keys` directory in the root of the project. The `KEYS_DIR_PATH` within the service's .env file should be updated to reflect the location of the keys.
|
||||
Reference in New Issue
Block a user