Updated README, added Dockerfile

This commit is contained in:
DankBot committed 2026-09-08 04:00:32 -04:00
1 parent 7ba729f372
commit dd671dba8c
3 files changed
+234 -1

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
# Version control
.git
.gitignore
# Python
__pycache__
*.pyc
*.pyo
*.pyd
*.egg-info
*.egg
dist/
build/
*.whl
# Virtual environments
bot-env/
.venv/
env/
# IDE
.vscode/
.idea/
*.swp
*.swo
# OS files
.DS_Store
Thumbs.db
# Token (sensitive!)
.token
# Docker files (avoid recursive builds)
Dockerfile
.dockerignore
+29
View File
@@ -0,0 +1,29 @@
# ---- Base image ----
FROM python:3.12-slim
# Set working directory
WORKDIR /app
# Install system dependencies (if needed by native extensions)
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc \
&& rm -rf /var/lib/apt/lists/*
# Copy and install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy plugin assets
COPY plugins/pepe/pepes.txt ./plugins/pepe/pepes.txt
# Copy the rest of the application
COPY . .
# Create a non-root user for security
RUN useradd -m -s /bin/bash botuser && chown -R botuser:botuser /app
USER botuser
# Expose nothing by default (Discord bot doesn't need a public port)
# Run the bot
CMD ["python", "main.py"]
+169 -1
View File
@@ -1 +1,169 @@
Dankbot, now even danker!
# 🐸 Dank Bot
A Discord bot built with [discord.py](https://github.com/Rapptz/discord.py), featuring a plugin-based architecture for extensible functionality.
## Features
- **Plugin System**: Easily add new features by dropping a plugin into the `plugins/` directory
- **BotChat Plugin**: AI-powered chat responses with configurable prompts
- **Pepe Plugin**: Classic Pepe meme reactions
- **Logging**: Full command and message logging via Python's `logging` module
## Current Plugins
| Plugin | Description |
|--------|-------------|
| `botchat` | AI chat plugin with prompt templates and censorship support |
| `pepe` | Pepe meme reaction plugin |
## Prerequisites
- [Python 3.12+](https://www.python.org/downloads/)
- A [Discord Bot Token](https://discord.com/developers/docs/topics/oauth2#bot)
- A Discord application with the `MESSAGE CONTENT INTENT` enabled
## Quick Start (Docker)
### 1. Create a token file
Create a `.token` file with your Discord bot token:
```bash
echo "YOUR_DISCORD_BOT_TOKEN_HERE" > .token
```
### 2. Build and run
```bash
# Build the Docker image
docker build -t dank-bot .
# Run the bot
docker run -d \
--name dank-bot \
--env DISCORD_TOKEN=$(cat .token) \
dank-bot
```
> **Note:** The bot reads its token from a `.token` file at runtime. Mount it as a volume:
> ```bash
> docker run -d \
> --name dank-bot \
> -v $(pwd)/.token:/app/.token:ro \
> dank-bot
> ```
## Prerequisites (Local)
- [Python 3.12+](https://www.python.org/downloads/)
- [pip](https://pip.pypa.io/)
## Local Setup
### 1. Create a token file
Create a `.token` file with your Discord bot token:
```bash
echo "YOUR_DISCORD_BOT_TOKEN_HERE" > .token
```
### 2. Install dependencies
```bash
pip install -r requirements.txt
```
### 3. Run the bot
```bash
python main.py
```
## Project Structure
```
dank-bot-py/
├── main.py # Bot entry point
├── requirements.txt # Python dependencies
├── start.sh # Quick start script
├── .token # Discord bot token (DO NOT COMMIT)
├── .gitignore
├── .dockerignore
├── Dockerfile
├── README.md
└── plugins/
├── botchat/ # AI chat plugin
│ ├── plugin.py
│ ├── settings.yaml
│ └── prompts/ # Prompt templates
│ ├── default.txt
│ ├── default-censored.txt
│ ├── summarize.txt
│ └── summarize-search.txt
└── pepe/ # Pepe meme plugin
├── plugin.py
└── pepes.txt
```
## Adding a New Plugin
1. Create a new directory under `plugins/`
2. Add a `plugin.py` file with your bot extension code
3. The bot will auto-discover and load it on startup
## Commands
| Command | Description |
|---------|-------------|
| `!help` | List available commands |
| `!chat <message>` | Send a message to the AI chat (via botchat plugin) |
| `!pepe` | Trigger a Pepe meme reaction |
## Configuration
- **BotChat**: Edit `plugins/botchat/settings.yaml` for plugin settings
- **Prompts**: Modify files in `plugins/botchat/prompts/` to customize AI behavior
- **Token**: Store in `.token` (never commit this file)
## Docker
### Build
```bash
docker build -t dank-bot .
```
### Run
```bash
docker run -d \
--name dank-bot \
--restart unless-stopped \
-v $(pwd)/.token:/app/.token:ro \
dank-bot
```
### Logs
```bash
docker logs -f dank-bot
```
### Stop
```bash
docker stop dank-bot
```
## Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `LOG_LEVEL` | Logging verbosity | `INFO` |
## Security
- **Never commit your `.token` file** — it's included in `.gitignore` for this reason
- The Docker image runs as a non-root user (`botuser`) for added security
- Use Docker volume mounts for sensitive files instead of baking them into the image