version: '3.8' services: # Customer Support Bot bot-support: image: littleshop/telebot:latest container_name: littleshop-bot-support restart: unless-stopped environment: - DOTNET_ENVIRONMENT=Production - TZ=UTC # Telegram Configuration - Telegram__BotToken=${SUPPORT_BOT_TOKEN} - Telegram__AdminChatId=${SUPPORT_ADMIN_CHAT_ID} - Telegram__UseWebhook=false # LittleShop API Configuration - LittleShop__ApiUrl=${LITTLESHOP_API_URL:-http://host.docker.internal:8080} - LittleShop__Username=${LITTLESHOP_USERNAME:-admin} - LittleShop__Password=${LITTLESHOP_PASSWORD:-admin} - BotManager__ApiKey=${SUPPORT_BOT_API_KEY} # Privacy Settings - Privacy__Mode=strict - Privacy__DataRetentionHours=24 - Privacy__SessionTimeoutMinutes=30 # Database Configuration - Database__ConnectionString=Filename=/app/data/telebot.db;Password=; - Database__EncryptionKey=${SUPPORT_DB_ENCRYPTION_KEY} # Features - Features__EnableQRCodes=true - Features__EnablePGPEncryption=true - Features__EnableDisappearingMessages=true volumes: - support-bot-data:/app/data - support-bot-logs:/app/logs networks: - littleshop-network healthcheck: test: ["CMD", "pgrep", "-f", "dotnet.*TeleBot"] interval: 30s timeout: 10s retries: 3 start_period: 60s logging: driver: "json-file" options: max-size: "10m" max-file: "3" # Sales & Marketing Bot bot-sales: image: littleshop/telebot:latest container_name: littleshop-bot-sales restart: unless-stopped environment: - DOTNET_ENVIRONMENT=Production - TZ=UTC # Telegram Configuration - Telegram__BotToken=${SALES_BOT_TOKEN} - Telegram__AdminChatId=${SALES_ADMIN_CHAT_ID} - Telegram__UseWebhook=false # LittleShop API Configuration - LittleShop__ApiUrl=${LITTLESHOP_API_URL:-http://host.docker.internal:8080} - LittleShop__Username=${LITTLESHOP_USERNAME:-admin} - LittleShop__Password=${LITTLESHOP_PASSWORD:-admin} - BotManager__ApiKey=${SALES_BOT_API_KEY} # Privacy Settings - Privacy__Mode=moderate - Privacy__DataRetentionHours=72 - Privacy__SessionTimeoutMinutes=60 - Privacy__EnableAnalytics=true # Database Configuration - Database__ConnectionString=Filename=/app/data/telebot.db;Password=; - Database__EncryptionKey=${SALES_DB_ENCRYPTION_KEY} # Features - Features__EnableQRCodes=true - Features__EnablePGPEncryption=false - Features__EnableDisappearingMessages=false volumes: - sales-bot-data:/app/data - sales-bot-logs:/app/logs networks: - littleshop-network healthcheck: test: ["CMD", "pgrep", "-f", "dotnet.*TeleBot"] interval: 30s timeout: 10s retries: 3 start_period: 60s logging: driver: "json-file" options: max-size: "10m" max-file: "3" # VIP/Premium Customer Bot bot-vip: image: littleshop/telebot:latest container_name: littleshop-bot-vip restart: unless-stopped environment: - DOTNET_ENVIRONMENT=Production - TZ=UTC # Telegram Configuration - Telegram__BotToken=${VIP_BOT_TOKEN} - Telegram__AdminChatId=${VIP_ADMIN_CHAT_ID} - Telegram__UseWebhook=false # LittleShop API Configuration - LittleShop__ApiUrl=${LITTLESHOP_API_URL:-http://host.docker.internal:8080} - LittleShop__Username=${LITTLESHOP_USERNAME:-admin} - LittleShop__Password=${LITTLESHOP_PASSWORD:-admin} - BotManager__ApiKey=${VIP_BOT_API_KEY} # Privacy Settings (Enhanced for VIP) - Privacy__Mode=strict - Privacy__DataRetentionHours=1 - Privacy__SessionTimeoutMinutes=15 - Privacy__EnableAnalytics=false - Privacy__RequirePGPForShipping=true - Privacy__EphemeralByDefault=true - Privacy__EnableTor=${VIP_ENABLE_TOR:-false} # Database Configuration - Database__ConnectionString=Filename=/app/data/telebot.db;Password=; - Database__EncryptionKey=${VIP_DB_ENCRYPTION_KEY} # Features (All features for VIP) - Features__EnableVoiceSearch=true - Features__EnableQRCodes=true - Features__EnablePGPEncryption=true - Features__EnableDisappearingMessages=true - Features__EnableOrderMixing=true - Features__MixingDelayMinSeconds=60 - Features__MixingDelayMaxSeconds=300 volumes: - vip-bot-data:/app/data - vip-bot-logs:/app/logs networks: - littleshop-network healthcheck: test: ["CMD", "pgrep", "-f", "dotnet.*TeleBot"] interval: 30s timeout: 10s retries: 3 start_period: 60s logging: driver: "json-file" options: max-size: "10m" max-file: "3" # Regional Bot Example (EU) bot-eu: image: littleshop/telebot:latest container_name: littleshop-bot-eu restart: unless-stopped environment: - DOTNET_ENVIRONMENT=Production - TZ=Europe/London # Telegram Configuration - Telegram__BotToken=${EU_BOT_TOKEN} - Telegram__AdminChatId=${EU_ADMIN_CHAT_ID} - Telegram__UseWebhook=false # LittleShop API Configuration - LittleShop__ApiUrl=${EU_API_URL:-http://host.docker.internal:8080} - LittleShop__Username=${LITTLESHOP_USERNAME:-admin} - LittleShop__Password=${LITTLESHOP_PASSWORD:-admin} - BotManager__ApiKey=${EU_BOT_API_KEY} # Privacy Settings (GDPR Compliant) - Privacy__Mode=strict - Privacy__DataRetentionHours=24 - Privacy__SessionTimeoutMinutes=30 - Privacy__EnableAnalytics=false - Privacy__EphemeralByDefault=true # Database Configuration - Database__ConnectionString=Filename=/app/data/telebot.db;Password=; - Database__EncryptionKey=${EU_DB_ENCRYPTION_KEY} # Features - Features__EnableQRCodes=true - Features__EnablePGPEncryption=true - Features__EnableDisappearingMessages=true volumes: - eu-bot-data:/app/data - eu-bot-logs:/app/logs networks: - littleshop-network healthcheck: test: ["CMD", "pgrep", "-f", "dotnet.*TeleBot"] interval: 30s timeout: 10s retries: 3 start_period: 60s logging: driver: "json-file" options: max-size: "10m" max-file: "3" # Optional: Shared Redis for all bots redis: image: redis:7-alpine container_name: littleshop-redis-shared restart: unless-stopped command: redis-server --requirepass ${REDIS_PASSWORD} volumes: - redis-data:/data networks: - littleshop-network healthcheck: test: ["CMD", "redis-cli", "--raw", "incr", "ping"] interval: 30s timeout: 3s retries: 5 logging: driver: "json-file" options: max-size: "10m" max-file: "3" volumes: support-bot-data: name: littleshop-bot-support-data support-bot-logs: name: littleshop-bot-support-logs sales-bot-data: name: littleshop-bot-sales-data sales-bot-logs: name: littleshop-bot-sales-logs vip-bot-data: name: littleshop-bot-vip-data vip-bot-logs: name: littleshop-bot-vip-logs eu-bot-data: name: littleshop-bot-eu-data eu-bot-logs: name: littleshop-bot-eu-logs redis-data: name: littleshop-redis-shared-data networks: littleshop-network: name: littleshop-network driver: bridge