Files
unraid-docker-manager/README.md
T
Lucas Berger e92bfc8061 docs(05-03): write deployment README
- Step-by-step installation guide for Unraid
- n8n container configuration with Docker socket access
- Credential creation instructions for Telegram API and Auth
- Usage section with all 6 commands documented
- No troubleshooting section (focused on initial setup)
2026-01-31 21:18:27 -05:00

96 lines
2.9 KiB
Markdown

# Docker Manager Bot
Telegram bot for managing Docker containers on Unraid. Control containers from your phone with simple keyword commands.
## Prerequisites
- Unraid server with Docker enabled
- n8n container running on Unraid
- Telegram Bot Token (from [@BotFather](https://t.me/botfather))
- Your Telegram User ID (from [@userinfobot](https://t.me/userinfobot))
## Installation
### 1. Configure n8n Container
Your n8n container needs Docker socket access to manage other containers. Add these flags to your n8n container configuration:
```bash
docker run -d \
--name n8n \
--group-add 281 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /path/to/curl:/usr/bin/curl:ro \
-p 5678:5678 \
n8nio/n8n
```
**Required flags:**
- `--group-add 281` - Adds Docker group (GID 281 on Unraid) so n8n can access the Docker socket
- `-v /var/run/docker.sock:/var/run/docker.sock` - Mounts the Docker socket for container management
- `-v /path/to/curl:/usr/bin/curl:ro` - Mounts a static curl binary (hardened n8n image lacks package manager)
If using Unraid's Community Applications, add these to the "Extra Parameters" and "Path" sections of your n8n container template.
### 2. Create n8n Credentials
In the n8n web interface, create two credentials:
**Telegram API credential:**
1. Go to Settings > Credentials > Add Credential
2. Search for "Telegram API"
3. Name: `Telegram API`
4. Access Token: paste your bot token from @BotFather
**Telegram Auth credential:**
1. Go to Settings > Credentials > Add Credential
2. Search for "Header Auth"
3. Name: `Telegram Auth`
4. Header Name: `userId`
5. Header Value: your Telegram user ID (numeric, e.g., `123456789`)
### 3. Import Workflow
1. Download `n8n-workflow.json` from this repository
2. In n8n: Workflows > Import from File
3. Select `n8n-workflow.json`
4. When prompted, map credentials:
- `Telegram API` -> your Telegram API credential
- `Telegram Auth` -> your Telegram Auth credential
### 4. Activate Workflow
1. Open the imported workflow in n8n
2. Click the "Active" toggle in the top-right corner
3. Test by sending "status" to your bot in Telegram
## Usage
Send commands via Telegram or use the persistent menu buttons:
| Command | Description |
|---------|-------------|
| `status` | View all containers with status indicators |
| `start <name>` | Start a stopped container |
| `stop <name>` | Stop a running container |
| `restart <name>` | Restart a container |
| `update <name>` | Pull latest image and recreate container |
| `logs <name> [lines]` | View container logs (default: 50 lines) |
Container names support partial matching. For example, `start plex` will match `linuxserver-plex`.
### Menu Buttons
Send `/start` or any unrecognized text to display the persistent keyboard with quick-access buttons for all commands.
## Security
The bot only responds to the Telegram user ID configured in the "Telegram Auth" credential. Messages from other users are silently ignored.
## License
MIT