Files
uptime-kuma-discord-bot/QUICKSTART.md
T
2025-10-21 10:51:12 -05:00

140 lines
3.9 KiB
Markdown

# Quick Start Guide
**Want to deploy to Fly.io instead?** See [FLY_DEPLOY.md](FLY_DEPLOY.md) for one-click deployment.
## Prerequisites
- Docker installed (or Node.js 18+)
- Discord bot created
- Uptime Kuma instance running
## Step 1: Create Discord Bot (2 minutes)
1. Go to https://discord.com/developers/applications
2. Click **"New Application"** and name it
3. Go to **"Bot"** tab, click **"Add Bot"**, then **"Reset Token"** and copy it
4. Go to **"OAuth2" → "URL Generator"**
5. Select scopes: `bot` + `applications.commands`
6. Select permissions: `Send Messages`, `Embed Links`, `Read Message History`, `Use Slash Commands`
7. Open the generated URL to invite bot to your server
## Step 2: Setup Bot (2 minutes)
```bash
git clone https://github.com/jakedev796/uptime-kuma-discord-bot
cd uptime-kuma-discord-bot
cp .env.example .env
```
**Edit `.env`** (only 3 required):
```env
DISCORD_BOT_TOKEN=your_discord_bot_token
UPTIME_KUMA_URL=http://uptime-kuma:3001
UPTIME_KUMA_USERNAME=admin
UPTIME_KUMA_PASSWORD=your_password
ADMIN_USER_IDS=your_discord_user_id
```
**Start it:**
```bash
docker-compose up -d
# or: npm install && npm run build && npm start
```
### Docker Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `PUID`/`PGID` | User/group IDs | `1001` |
| `DATA_DIR` | Data directory path | `/app/data` |
| `HEALTH_PORT` | Health check port | `3000` |
## Step 3: Configure in Discord (1 minute)
Type these commands in Discord:
```
/set-channel #status # Pick channel from dropdown
/set-title Production Services # Custom title (optional)
/track # Type to search, select monitor
/track # Repeat for more monitors!
# Or just:
/track-all # Track everything
```
Done!
**Using the bot in multiple servers?**
The bot supports multiple Discord servers independently! Each server has its own configuration. Just repeat the `/set-channel` setup in each server.
## What's Next?
### Organize with Groups
```bash
/group-create Media Servers # Create a group
/group-add-monitor # Group dropdown, then monitor dropdown
→ Select: Your Group Name
→ Type: Your Monitor Name
→ Repeat for more monitors
/groups # See your organization
/config # See full status
```
### Quick Operations
```bash
/track # Type monitor name, select from dropdown
/untrack # Type monitor name, remove it
/group-remove-monitor # Remove monitor from its group
/group-delete # Delete entire group
/reset-config # Reset all settings (deletes embeds, clears everything)
```
## Troubleshooting
### Commands don't appear
- Wait 5-10 minutes
- Kick and re-invite bot
- Restart Discord
### Bot won't connect
- Check `.env` credentials
- View logs: `docker-compose logs -f`
- Try `/config` in Discord
- Check container health: `docker-compose ps`
- Test health endpoint: `curl http://localhost:3000/health`
### Permission denied
- Add your Discord user ID to `ADMIN_USER_IDS` in `.env`
- Get ID: Right-click username → Copy ID
- Restart bot
## Commands Cheat Sheet
| Command | What it does |
|---------|--------------|
| `/set-channel` | Choose status channel |
| `/set-title` | Customize embed title |
| `/track` | Add monitor |
| `/untrack` | Remove monitor |
| `/track-all` | Track everything |
| `/group-create` | Create new group |
| `/group-delete` | Delete group |
| `/group-add-monitor` | Add to group |
| `/group-remove-monitor` | Remove from group |
| `/groups` | List all groups |
| `/config` | See full status |
| `/reset-config` | Reset all settings (per guild) |
## Pro Tips
- **Create groups first**, then assign monitors
- **Use `/config`** to see everything at a glance
- **Start with `/track-all`** then organize into groups
---
**Need help?** Check [README.md](README.md) or open a GitHub issue.