134 lines
2.9 KiB
Markdown
134 lines
2.9 KiB
Markdown
# Docker Guide for Cat Bot
|
|
|
|
This guide will help you run the Discord cat bot using Docker, which provides an isolated and consistent environment for the bot to run.
|
|
|
|
## Prerequisites
|
|
|
|
- [Docker](https://docs.docker.com/get-docker/) installed on your system
|
|
- [Docker Compose](https://docs.docker.com/compose/install/) installed on your system
|
|
- A valid Discord bot token in your `.env` file
|
|
|
|
## Setup
|
|
|
|
1. Make sure your `.env` file is properly configured with your Discord bot token and other settings:
|
|
|
|
```
|
|
DISCORD_TOKEN=your_discord_bot_token
|
|
|
|
# Message response chance (0-100)
|
|
MESSAGE_RESPONSE_CHANCE=10
|
|
|
|
# Voice channel settings
|
|
MIN_VOICE_JOIN_INTERVAL=300
|
|
MAX_VOICE_JOIN_INTERVAL=1800
|
|
MIN_VOICE_STAY_DURATION=60
|
|
MAX_VOICE_STAY_DURATION=300
|
|
MIN_VOICE_MEOW_INTERVAL=5
|
|
MAX_VOICE_MEOW_INTERVAL=30
|
|
|
|
# Cat personalization
|
|
CAT_PRONOUN=their
|
|
```
|
|
|
|
2. Add your cat sound files to the `src/audio` directory (create it if it doesn't exist):
|
|
- meow1.mp3
|
|
- meow2.mp3
|
|
- meow3.mp3
|
|
- purr.mp3
|
|
- hiss.mp3
|
|
- yowl.mp3
|
|
|
|
## Running the Bot
|
|
|
|
### Easy Method
|
|
|
|
Use the included helper script:
|
|
|
|
```bash
|
|
# Make it executable
|
|
chmod +x run-docker.sh
|
|
|
|
# Run it
|
|
./run-docker.sh
|
|
```
|
|
|
|
This script will set the correct user permissions, build, and run the container showing logs.
|
|
|
|
### Manual Method
|
|
|
|
From the project root directory:
|
|
|
|
```bash
|
|
# Export your user ID and group ID
|
|
export UID=$(id -u)
|
|
export GID=$(id -g)
|
|
|
|
# Start the container
|
|
docker-compose up -d
|
|
|
|
# View logs
|
|
docker-compose logs -f
|
|
```
|
|
|
|
### Stopping the Bot
|
|
|
|
To stop the bot:
|
|
|
|
```bash
|
|
docker-compose down
|
|
```
|
|
|
|
## Updating the Bot
|
|
|
|
If you make changes to the bot code:
|
|
|
|
1. Stop the bot: `docker-compose down`
|
|
2. Rebuild the image: `docker-compose build`
|
|
3. Start the bot again: `docker-compose up -d`
|
|
|
|
## Troubleshooting
|
|
|
|
### Audio File Issues
|
|
|
|
If the bot isn't playing sounds in voice channels:
|
|
|
|
1. Check that your audio files exist in the `src/audio` directory
|
|
2. Verify they're in MP3 format and match the expected filenames
|
|
3. Look at the container logs to see if the files are being detected:
|
|
```bash
|
|
docker-compose logs | grep "audio"
|
|
```
|
|
|
|
### Bot Token Issues
|
|
|
|
If the bot can't connect to Discord:
|
|
|
|
1. Make sure your `.env` file is properly mounted in the container
|
|
2. Check that your token is valid and privileged intents are enabled
|
|
3. Verify logs for any connection errors:
|
|
```bash
|
|
docker-compose logs
|
|
```
|
|
|
|
### File Permission Issues
|
|
|
|
If you encounter file permission problems:
|
|
|
|
1. Use the `run-docker.sh` script which sets proper user IDs
|
|
2. Or manually set the user ID when running:
|
|
```bash
|
|
export UID=$(id -u) GID=$(id -g)
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Container Not Starting
|
|
|
|
If the container fails to start or continuously restarts:
|
|
|
|
1. Check the logs: `docker-compose logs`
|
|
2. Verify your container has network access to reach Discord's servers
|
|
3. Make sure you have ffmpeg installed in the container:
|
|
```bash
|
|
docker-compose exec cat-bot apk info | grep ffmpeg
|
|
```
|