Refactor: CRM automations, monitoring homepage, webhook examples, docs standards
- Environment Variables: Simplified to ONLY VAULT_* vars, everything else in config.csv
- Attendant Module: Added CRM automations (follow-ups, collections/cobranças, scheduling/agendamentos, sales/vendas)
- NEW: Hosting, DNS, MDA integration docs (Namecheap, Stalwart, LLM providers)
- Monitoring: Updated as live operations homepage with real data endpoints
- Examples: Renamed to 'Webhook Integrations and Jobs', removed loop-based examples 1 & 5, added lead nurturing, payment collection, appointment scheduling
- Documentation Standards: WhatsApp HTML style as canonical conversation format, SVG for interfaces
- Reading Flow: Improved Executive Vision → Quick Start → Chapter 01 transitions with navigation tables
2025-12-03 21:59:49 -03:00
|
|
|
# Hosting, DNS, and MDA Integration
|
|
|
|
|
|
|
|
|
|
General Bots integrates with hosting providers, DNS services, and Mail Delivery Agents (MDA) for complete platform deployment.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
|
|
A complete General Bots deployment typically includes:
|
|
|
|
|
|
|
|
|
|
| Component | Purpose | Providers Supported |
|
|
|
|
|
|-----------|---------|---------------------|
|
|
|
|
|
| **Hosting** | Run BotServer | Any VPS, LXC, bare metal |
|
|
|
|
|
| **DNS** | Domain management | Namecheap, Cloudflare, Route53 |
|
|
|
|
|
| **MDA** | Email delivery | Stalwart, Postfix, external SMTP |
|
|
|
|
|
| **AI/LLM** | Language models | OpenAI, Anthropic, local models |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Namecheap Integration
|
|
|
|
|
|
|
|
|
|
General Bots can automatically manage DNS records via the Namecheap API.
|
|
|
|
|
|
|
|
|
|
### Configuration
|
|
|
|
|
|
|
|
|
|
Add to your bot's `config.csv`:
|
|
|
|
|
|
|
|
|
|
```csv
|
|
|
|
|
name,value
|
|
|
|
|
namecheap-api-user,your-username
|
|
|
|
|
namecheap-api-key,stored-in-vault
|
|
|
|
|
namecheap-username,your-username
|
|
|
|
|
namecheap-client-ip,your-server-ip
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> **Note**: API key is stored in Vault, not in config.csv. Only reference it by name.
|
|
|
|
|
|
|
|
|
|
### Automatic DNS Setup
|
|
|
|
|
|
|
|
|
|
When deploying a new bot instance, General Bots can:
|
|
|
|
|
|
|
|
|
|
1. Create A record pointing to your server
|
|
|
|
|
2. Create MX records for email
|
|
|
|
|
3. Create TXT records for SPF/DKIM/DMARC
|
|
|
|
|
4. Create CNAME for www subdomain
|
|
|
|
|
|
|
|
|
|
### BASIC Keywords for DNS
|
|
|
|
|
|
|
|
|
|
```basic
|
|
|
|
|
' Create DNS record
|
|
|
|
|
DNS SET "bot.example.com", "A", server_ip
|
|
|
|
|
|
|
|
|
|
' Create MX record for email
|
|
|
|
|
DNS SET "example.com", "MX", "mail.example.com", 10
|
|
|
|
|
|
|
|
|
|
' Create SPF record
|
|
|
|
|
DNS SET "example.com", "TXT", "v=spf1 mx a ip4:" + server_ip + " -all"
|
|
|
|
|
|
|
|
|
|
' List current records
|
|
|
|
|
records = DNS LIST "example.com"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Supported DNS Providers
|
|
|
|
|
|
|
|
|
|
| Provider | API Support | Auto-SSL |
|
|
|
|
|
|----------|-------------|----------|
|
|
|
|
|
| Namecheap | ✅ Full | ✅ Let's Encrypt |
|
|
|
|
|
| Cloudflare | ✅ Full | ✅ Native |
|
|
|
|
|
| Route53 | ✅ Full | ✅ ACM |
|
|
|
|
|
| DigitalOcean | ✅ Full | ✅ Let's Encrypt |
|
|
|
|
|
| Manual | Via config | Manual |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Hosting Options
|
|
|
|
|
|
|
|
|
|
### VPS Providers
|
|
|
|
|
|
|
|
|
|
General Bots runs on any Linux VPS:
|
|
|
|
|
|
|
|
|
|
| Provider | Minimum Spec | Recommended |
|
|
|
|
|
|----------|--------------|-------------|
|
|
|
|
|
| DigitalOcean | 2GB RAM, 1 vCPU | 4GB RAM, 2 vCPU |
|
|
|
|
|
| Linode | 2GB RAM, 1 vCPU | 4GB RAM, 2 vCPU |
|
|
|
|
|
| Vultr | 2GB RAM, 1 vCPU | 4GB RAM, 2 vCPU |
|
|
|
|
|
| Hetzner | 2GB RAM, 2 vCPU | 4GB RAM, 2 vCPU |
|
|
|
|
|
| AWS EC2 | t3.small | t3.medium |
|
|
|
|
|
| GCP | e2-small | e2-medium |
|
|
|
|
|
|
|
|
|
|
### LXC Container Deployment
|
|
|
|
|
|
|
|
|
|
Recommended for production isolation:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Create container
|
|
|
|
|
lxc launch ubuntu:22.04 botserver
|
|
|
|
|
|
|
|
|
|
# Configure resources
|
|
|
|
|
lxc config set botserver limits.memory 4GB
|
|
|
|
|
lxc config set botserver limits.cpu 2
|
|
|
|
|
|
|
|
|
|
# Forward ports
|
|
|
|
|
lxc config device add botserver http proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:8080
|
|
|
|
|
lxc config device add botserver https proxy listen=tcp:0.0.0.0:443 connect=tcp:127.0.0.1:8443
|
|
|
|
|
|
|
|
|
|
# Set environment for Vault
|
|
|
|
|
lxc config set botserver environment.VAULT_ADDR="http://vault:8200"
|
|
|
|
|
|
|
|
|
|
# Deploy
|
|
|
|
|
lxc exec botserver -- ./botserver
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Docker Deployment
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
version: '3.8'
|
|
|
|
|
services:
|
|
|
|
|
botserver:
|
|
|
|
|
image: generalbots/botserver:latest
|
|
|
|
|
ports:
|
|
|
|
|
- "8080:8080"
|
|
|
|
|
environment:
|
|
|
|
|
- VAULT_ADDR=http://vault:8200
|
|
|
|
|
volumes:
|
|
|
|
|
- ./bots:/app/bots
|
|
|
|
|
- ./botserver-stack:/app/botserver-stack
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## MDA (Mail Delivery Agent) Integration
|
|
|
|
|
|
|
|
|
|
General Bots includes Stalwart mail server for complete email functionality.
|
|
|
|
|
|
|
|
|
|
### Built-in Stalwart
|
|
|
|
|
|
|
|
|
|
Stalwart is automatically configured during bootstrap:
|
|
|
|
|
|
|
|
|
|
| Feature | Status |
|
|
|
|
|
|---------|--------|
|
|
|
|
|
| IMAP | ✅ Enabled |
|
|
|
|
|
| SMTP | ✅ Enabled |
|
|
|
|
|
| JMAP | ✅ Enabled |
|
|
|
|
|
| Spam filtering | ✅ SpamAssassin |
|
|
|
|
|
| Virus scanning | ✅ ClamAV |
|
|
|
|
|
| DKIM signing | ✅ Auto-configured |
|
|
|
|
|
|
|
|
|
|
### Email Configuration
|
|
|
|
|
|
|
|
|
|
In `config.csv`:
|
|
|
|
|
|
|
|
|
|
```csv
|
|
|
|
|
name,value
|
|
|
|
|
email-domain,example.com
|
|
|
|
|
email-dkim-selector,mail
|
|
|
|
|
email-spam-threshold,5.0
|
|
|
|
|
email-max-size-mb,25
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### DNS Records for Email
|
|
|
|
|
|
|
|
|
|
Required DNS records (auto-created with Namecheap integration):
|
|
|
|
|
|
|
|
|
|
| Record | Type | Value |
|
|
|
|
|
|--------|------|-------|
|
|
|
|
|
| `mail.example.com` | A | Your server IP |
|
|
|
|
|
| `example.com` | MX | `mail.example.com` (priority 10) |
|
|
|
|
|
| `example.com` | TXT | `v=spf1 mx a -all` |
|
|
|
|
|
| `mail._domainkey.example.com` | TXT | DKIM public key |
|
|
|
|
|
| `_dmarc.example.com` | TXT | `v=DMARC1; p=quarantine` |
|
|
|
|
|
|
|
|
|
|
### External SMTP
|
|
|
|
|
|
|
|
|
|
To use external email providers instead:
|
|
|
|
|
|
|
|
|
|
```csv
|
|
|
|
|
name,value
|
|
|
|
|
smtp-host,smtp.sendgrid.net
|
|
|
|
|
smtp-port,587
|
|
|
|
|
smtp-user,apikey
|
|
|
|
|
smtp-secure,tls
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Credentials stored in Vault:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
vault kv put secret/botserver/smtp password="your-api-key"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## AI/LLM Integration
|
|
|
|
|
|
|
|
|
|
### Supported Providers
|
|
|
|
|
|
|
|
|
|
| Provider | Models | Config Key |
|
|
|
|
|
|----------|--------|------------|
|
2025-12-05 14:54:59 -03:00
|
|
|
| OpenAI | GPT-5, o3 | `llm-url=https://api.openai.com/v1` |
|
|
|
|
|
| Anthropic | Claude Sonnet 4.5, Opus 4.5 | `llm-url=https://api.anthropic.com` |
|
|
|
|
|
| Groq | Llama 3.3, Mixtral | `llm-url=https://api.groq.com/openai/v1` |
|
|
|
|
|
| DeepSeek | DeepSeek-V3, R3 | `llm-url=https://api.deepseek.com` |
|
Refactor: CRM automations, monitoring homepage, webhook examples, docs standards
- Environment Variables: Simplified to ONLY VAULT_* vars, everything else in config.csv
- Attendant Module: Added CRM automations (follow-ups, collections/cobranças, scheduling/agendamentos, sales/vendas)
- NEW: Hosting, DNS, MDA integration docs (Namecheap, Stalwart, LLM providers)
- Monitoring: Updated as live operations homepage with real data endpoints
- Examples: Renamed to 'Webhook Integrations and Jobs', removed loop-based examples 1 & 5, added lead nurturing, payment collection, appointment scheduling
- Documentation Standards: WhatsApp HTML style as canonical conversation format, SVG for interfaces
- Reading Flow: Improved Executive Vision → Quick Start → Chapter 01 transitions with navigation tables
2025-12-03 21:59:49 -03:00
|
|
|
| Local | Any GGUF | `llm-url=http://localhost:8081` |
|
|
|
|
|
|
|
|
|
|
### Local LLM Setup
|
|
|
|
|
|
|
|
|
|
Run local models with BotModels:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Install BotModels
|
|
|
|
|
./botserver install llm
|
|
|
|
|
|
|
|
|
|
# Download a model
|
|
|
|
|
./botserver model download llama-3-8b
|
|
|
|
|
|
|
|
|
|
# Configure in config.csv
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```csv
|
|
|
|
|
name,value
|
|
|
|
|
llm-url,http://localhost:8081
|
|
|
|
|
llm-model,llama-3-8b.gguf
|
|
|
|
|
llm-context-size,8192
|
|
|
|
|
llm-gpu-layers,35
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### AI Features
|
|
|
|
|
|
|
|
|
|
| Feature | Description |
|
|
|
|
|
|---------|-------------|
|
|
|
|
|
| **Conversation** | Natural language chat |
|
|
|
|
|
| **RAG** | Knowledge base search |
|
|
|
|
|
| **Tool Calling** | Automatic BASIC tool invocation |
|
|
|
|
|
| **Embeddings** | Document vectorization |
|
|
|
|
|
| **Vision** | Image analysis (multimodal models) |
|
|
|
|
|
| **Voice** | Speech-to-text, text-to-speech |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Complete Deployment Example
|
|
|
|
|
|
|
|
|
|
### 1. Provision Server
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# On your VPS
|
|
|
|
|
wget https://github.com/GeneralBots/botserver/releases/latest/botserver
|
|
|
|
|
chmod +x botserver
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2. Configure DNS (Namecheap)
|
|
|
|
|
|
|
|
|
|
```basic
|
|
|
|
|
' setup-dns.bas
|
|
|
|
|
domain = "mybot.example.com"
|
|
|
|
|
server_ip = "203.0.113.50"
|
|
|
|
|
|
|
|
|
|
DNS SET domain, "A", server_ip
|
|
|
|
|
DNS SET "mail." + domain, "A", server_ip
|
|
|
|
|
DNS SET domain, "MX", "mail." + domain, 10
|
|
|
|
|
DNS SET domain, "TXT", "v=spf1 mx a ip4:" + server_ip + " -all"
|
|
|
|
|
|
|
|
|
|
PRINT "DNS configured for " + domain
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 3. Start BotServer
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
./botserver
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4. Configure SSL
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Auto-configured with Let's Encrypt
|
|
|
|
|
./botserver ssl enable mybot.example.com
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 5. Verify Email
|
|
|
|
|
|
|
|
|
|
```basic
|
|
|
|
|
' test-email.bas
|
|
|
|
|
SEND MAIL "test@gmail.com", "Test from General Bots", "Email is working!"
|
|
|
|
|
PRINT "Email sent successfully"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Troubleshooting
|
|
|
|
|
|
|
|
|
|
### DNS Not Propagating
|
|
|
|
|
|
|
|
|
|
1. Check Namecheap API credentials
|
|
|
|
|
2. Verify client IP is whitelisted
|
|
|
|
|
3. Wait up to 48 hours for propagation
|
|
|
|
|
4. Use `dig` or `nslookup` to verify
|
|
|
|
|
|
|
|
|
|
### Email Marked as Spam
|
|
|
|
|
|
|
|
|
|
1. Verify SPF record is correct
|
|
|
|
|
2. Check DKIM signature is valid
|
|
|
|
|
3. Ensure DMARC policy is set
|
|
|
|
|
4. Check IP reputation at mxtoolbox.com
|
|
|
|
|
|
|
|
|
|
### SSL Certificate Errors
|
|
|
|
|
|
|
|
|
|
1. Verify DNS A record points to server
|
|
|
|
|
2. Check port 80 is accessible for ACME challenge
|
|
|
|
|
3. Review Let's Encrypt rate limits
|
|
|
|
|
4. Check certificate expiry
|
|
|
|
|
|
|
|
|
|
### LLM Connection Failed
|
|
|
|
|
|
|
|
|
|
1. Verify `llm-url` in config.csv
|
|
|
|
|
2. Check API key in Vault
|
|
|
|
|
3. Test endpoint with curl
|
|
|
|
|
4. Review BotServer logs
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## See Also
|
|
|
|
|
|
|
|
|
|
- [LLM Providers](./llm-providers.md) — Detailed LLM configuration
|
|
|
|
|
- [Storage](./storage.md) — S3-compatible storage setup
|
|
|
|
|
- [Directory](./directory.md) — User authentication
|
|
|
|
|
- [Channels](./channels.md) — WhatsApp, Telegram, etc.
|
|
|
|
|
- [Installation](../chapter-01/installation.md) — Full installation guide
|