# 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 Telegram API Credential In the n8n web interface: 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 ### 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 the `Telegram API` credential ### 4. Configure Your User ID The workflow only responds to your Telegram user ID. To set it: 1. Open the imported workflow 2. Find the **IF User Authenticated** node 3. Click to edit, find the condition with `rightValue` 4. Change `563878771` to your Telegram user ID 5. Repeat for **IF Callback Authenticated** node 6. Save the workflow ### 5. Activate Workflow 1. Click the "Active" toggle in the top-right corner 2. 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 ` | Start a stopped container | | `stop ` | Stop a running container | | `restart ` | Restart a container | | `update ` | Pull latest image and recreate container | | `logs [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 IF nodes. Messages from other users are silently ignored. ## License MIT