feat: add Runtipi app configuration
This commit is contained in:
parent
bcedeb4e1f
commit
242f7de4ac
93
runtipi/README.md
Normal file
93
runtipi/README.md
Normal file
@ -0,0 +1,93 @@
|
||||
# Runtipi App Configuration
|
||||
|
||||
This directory contains the [Runtipi](https://runtipi.io) app configuration for Clawdbot.
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
runtipi/
|
||||
└── clawdbot/
|
||||
├── config.json # App metadata and form fields
|
||||
├── docker-compose.json # Dynamic compose configuration
|
||||
└── metadata/
|
||||
├── description.md # App description for the store
|
||||
└── logo.png # App logo (128x128)
|
||||
```
|
||||
|
||||
## Using with Runtipi
|
||||
|
||||
### Option 1: Add to Custom App Store
|
||||
|
||||
1. Fork or create your own Runtipi app store repository
|
||||
2. Copy the `clawdbot/` directory to your app store's `apps/` folder
|
||||
3. Add your app store URL to Runtipi settings
|
||||
|
||||
### Option 2: Local Installation
|
||||
|
||||
1. Copy the `clawdbot/` directory to your Runtipi's `user-config/` folder
|
||||
2. Restart Runtipi to detect the new app
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before installing Clawdbot on Runtipi, ensure you have:
|
||||
|
||||
1. **At least one AI provider API key**:
|
||||
- Anthropic API key (for Claude models)
|
||||
- OpenAI API key (for GPT models)
|
||||
- Google Gemini API key
|
||||
- OpenRouter API key (for multiple providers)
|
||||
|
||||
2. **A gateway token** for API authentication:
|
||||
```bash
|
||||
openssl rand -hex 32
|
||||
```
|
||||
|
||||
3. **(Optional) Messaging channel tokens**:
|
||||
- Telegram bot token from [@BotFather](https://t.me/BotFather)
|
||||
- Discord bot token from the [Developer Portal](https://discord.com/developers/applications)
|
||||
- Slack bot and app tokens
|
||||
|
||||
## Docker Image
|
||||
|
||||
This configuration uses the official Clawdbot Docker image from GitHub Container Registry:
|
||||
|
||||
```
|
||||
ghcr.io/clawdbot/clawdbot:VERSION
|
||||
```
|
||||
|
||||
To build and push your own image:
|
||||
|
||||
```bash
|
||||
# From the clawdbot repository root
|
||||
docker build -t ghcr.io/YOUR_ORG/clawdbot:latest .
|
||||
docker push ghcr.io/YOUR_ORG/clawdbot:latest
|
||||
```
|
||||
|
||||
Then update the image reference in `docker-compose.json`.
|
||||
|
||||
## Ports
|
||||
|
||||
| Port | Purpose |
|
||||
|-------|-----------------------------------|
|
||||
| 18789 | Gateway HTTP/WebSocket (main) |
|
||||
|
||||
## Volumes
|
||||
|
||||
| Container Path | Purpose |
|
||||
|-----------------------|----------------------------|
|
||||
| /home/node/.clawdbot | Configuration and sessions |
|
||||
| /home/node/clawd | Agent workspace |
|
||||
|
||||
## Post-Installation
|
||||
|
||||
After installation:
|
||||
|
||||
1. Access the control UI at `http://YOUR_SERVER:18789`
|
||||
2. Configure additional channels via the UI or by editing `config/clawdbot.json`
|
||||
3. For WhatsApp: pair via QR code in the control UI
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Getting Started](https://docs.clawd.bot/start/getting-started)
|
||||
- [Docker Installation](https://docs.clawd.bot/install/docker)
|
||||
- [Configuration](https://docs.clawd.bot/configuration)
|
||||
85
runtipi/clawdbot/config.json
Normal file
85
runtipi/clawdbot/config.json
Normal file
@ -0,0 +1,85 @@
|
||||
{
|
||||
"$schema": "../app-info-schema.json",
|
||||
"name": "Clawdbot",
|
||||
"port": 18789,
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "clawdbot",
|
||||
"tipi_version": 1,
|
||||
"version": "2026.1.24",
|
||||
"categories": ["ai", "automation"],
|
||||
"description": "Clawdbot is a self-hosted AI gateway that connects messaging platforms (WhatsApp, Telegram, Discord, Slack, Signal) to AI models (Claude, GPT, Gemini). It provides a unified interface for AI-powered conversations across all your messaging channels.",
|
||||
"short_desc": "AI gateway for messaging platforms - connect WhatsApp, Telegram, Discord to Claude, GPT, and more.",
|
||||
"author": "clawdbot",
|
||||
"source": "https://github.com/clawdbot/clawdbot",
|
||||
"website": "https://clawd.bot",
|
||||
"form_fields": [
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Anthropic API Key",
|
||||
"env_variable": "ANTHROPIC_API_KEY",
|
||||
"hint": "Your Anthropic API key for Claude models (starts with sk-ant-)",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "OpenAI API Key",
|
||||
"env_variable": "OPENAI_API_KEY",
|
||||
"hint": "Your OpenAI API key for GPT models (starts with sk-)",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Google Gemini API Key",
|
||||
"env_variable": "GEMINI_API_KEY",
|
||||
"hint": "Your Google AI API key for Gemini models",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "OpenRouter API Key",
|
||||
"env_variable": "OPENROUTER_API_KEY",
|
||||
"hint": "Your OpenRouter API key for accessing multiple model providers",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Telegram Bot Token",
|
||||
"env_variable": "TELEGRAM_BOT_TOKEN",
|
||||
"hint": "Your Telegram bot token from @BotFather",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Discord Bot Token",
|
||||
"env_variable": "DISCORD_BOT_TOKEN",
|
||||
"hint": "Your Discord bot token from the Developer Portal",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Slack Bot Token",
|
||||
"env_variable": "SLACK_BOT_TOKEN",
|
||||
"hint": "Your Slack bot token (starts with xoxb-)",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Slack App Token",
|
||||
"env_variable": "SLACK_APP_TOKEN",
|
||||
"hint": "Your Slack app-level token for Socket Mode (starts with xapp-)",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"type": "password",
|
||||
"label": "Gateway Token",
|
||||
"env_variable": "CLAWDBOT_GATEWAY_TOKEN",
|
||||
"hint": "Authentication token for the gateway API. Generate with: openssl rand -hex 32",
|
||||
"required": true,
|
||||
"min": 32
|
||||
}
|
||||
],
|
||||
"supported_architectures": ["arm64", "amd64"],
|
||||
"dynamic_config": true,
|
||||
"min_tipi_version": "4.5.0"
|
||||
}
|
||||
79
runtipi/clawdbot/docker-compose.json
Normal file
79
runtipi/clawdbot/docker-compose.json
Normal file
@ -0,0 +1,79 @@
|
||||
{
|
||||
"$schema": "https://schemas.runtipi.io/v2/dynamic-compose.json",
|
||||
"schemaVersion": 2,
|
||||
"services": [
|
||||
{
|
||||
"name": "clawdbot",
|
||||
"image": "ghcr.io/clawdbot/clawdbot:${APP_VERSION}",
|
||||
"environment": [
|
||||
{
|
||||
"key": "HOME",
|
||||
"value": "/home/node"
|
||||
},
|
||||
{
|
||||
"key": "TERM",
|
||||
"value": "xterm-256color"
|
||||
},
|
||||
{
|
||||
"key": "NODE_ENV",
|
||||
"value": "production"
|
||||
},
|
||||
{
|
||||
"key": "ANTHROPIC_API_KEY",
|
||||
"value": "${ANTHROPIC_API_KEY}"
|
||||
},
|
||||
{
|
||||
"key": "OPENAI_API_KEY",
|
||||
"value": "${OPENAI_API_KEY}"
|
||||
},
|
||||
{
|
||||
"key": "GEMINI_API_KEY",
|
||||
"value": "${GEMINI_API_KEY}"
|
||||
},
|
||||
{
|
||||
"key": "OPENROUTER_API_KEY",
|
||||
"value": "${OPENROUTER_API_KEY}"
|
||||
},
|
||||
{
|
||||
"key": "TELEGRAM_BOT_TOKEN",
|
||||
"value": "${TELEGRAM_BOT_TOKEN}"
|
||||
},
|
||||
{
|
||||
"key": "DISCORD_BOT_TOKEN",
|
||||
"value": "${DISCORD_BOT_TOKEN}"
|
||||
},
|
||||
{
|
||||
"key": "SLACK_BOT_TOKEN",
|
||||
"value": "${SLACK_BOT_TOKEN}"
|
||||
},
|
||||
{
|
||||
"key": "SLACK_APP_TOKEN",
|
||||
"value": "${SLACK_APP_TOKEN}"
|
||||
},
|
||||
{
|
||||
"key": "CLAWDBOT_GATEWAY_TOKEN",
|
||||
"value": "${CLAWDBOT_GATEWAY_TOKEN}"
|
||||
}
|
||||
],
|
||||
"volumes": [
|
||||
{
|
||||
"hostPath": "${APP_DATA_DIR}/data/config",
|
||||
"containerPath": "/home/node/.clawdbot"
|
||||
},
|
||||
{
|
||||
"hostPath": "${APP_DATA_DIR}/data/workspace",
|
||||
"containerPath": "/home/node/clawd"
|
||||
}
|
||||
],
|
||||
"command": ["node", "dist/index.js", "gateway", "--bind", "lan", "--port", "18789"],
|
||||
"internalPort": 18789,
|
||||
"isMain": true,
|
||||
"healthCheck": {
|
||||
"test": "node dist/index.js health --token \"$CLAWDBOT_GATEWAY_TOKEN\" || exit 1",
|
||||
"interval": "30s",
|
||||
"timeout": "10s",
|
||||
"retries": 3
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
40
runtipi/clawdbot/metadata/description.md
Normal file
40
runtipi/clawdbot/metadata/description.md
Normal file
@ -0,0 +1,40 @@
|
||||
# Clawdbot
|
||||
|
||||
**Clawdbot** is a personal AI assistant you run on your own devices. It answers you on the channels you already use (WhatsApp, Telegram, Slack, Discord, Signal, iMessage, Microsoft Teams, WebChat), plus extension channels like BlueBubbles, Matrix, Zalo, and Zalo Personal.
|
||||
|
||||
## Features
|
||||
|
||||
- **Multi-channel support**: Connect WhatsApp, Telegram, Discord, Slack, Signal, iMessage, Microsoft Teams, and more
|
||||
- **Multiple AI providers**: Use Claude (Anthropic), GPT (OpenAI), Gemini (Google), or OpenRouter for access to many models
|
||||
- **Self-hosted**: Your data stays on your infrastructure
|
||||
- **Gateway architecture**: The gateway is the control plane for managing all your AI conversations
|
||||
- **Canvas rendering**: Render live canvases you control
|
||||
- **Voice support**: Speak and listen on macOS/iOS/Android
|
||||
|
||||
## Setup
|
||||
|
||||
1. Configure at least one AI provider API key (Anthropic, OpenAI, Gemini, or OpenRouter)
|
||||
2. Generate a gateway token for API authentication: `openssl rand -hex 32`
|
||||
3. Optionally configure messaging channel tokens (Telegram, Discord, Slack)
|
||||
4. Access the control UI at `http://your-server:18789`
|
||||
|
||||
## Configuration
|
||||
|
||||
After installation, you can configure additional settings by editing files in the `config` data directory:
|
||||
|
||||
- `clawdbot.json` - Main configuration file (JSON5 format)
|
||||
- `credentials/` - Channel credentials storage
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Getting Started](https://docs.clawd.bot/start/getting-started)
|
||||
- [Docker Installation](https://docs.clawd.bot/install/docker)
|
||||
- [Configuration](https://docs.clawd.bot/configuration)
|
||||
- [Channels Setup](https://docs.clawd.bot/channels)
|
||||
|
||||
## Links
|
||||
|
||||
- [Website](https://clawd.bot)
|
||||
- [Documentation](https://docs.clawd.bot)
|
||||
- [GitHub](https://github.com/clawdbot/clawdbot)
|
||||
- [Discord Community](https://discord.gg/clawd)
|
||||
BIN
runtipi/clawdbot/metadata/logo.png
Normal file
BIN
runtipi/clawdbot/metadata/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 614 B |
Loading…
Reference in New Issue
Block a user