- Add Gitea Actions workflow for manual AlexHost deployment - Add docker-compose.alexhost.yml for production deployment - Add deploy-alexhost.sh script with server-side build support - Add Bot Control feature (Start/Stop/Restart) for remote bot management - Add discovery control endpoint in TeleBot - Update TeleBot with StartPollingAsync/StopPolling/RestartPollingAsync - Fix platform architecture issues by building on target server - Update docker-compose configurations for all environments Deployment tested successfully: - TeleShop: healthy at https://teleshop.silentmary.mywire.org - TeleBot: healthy with discovery integration - SilverPay: connectivity verified 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
125 lines
3.8 KiB
YAML
125 lines
3.8 KiB
YAML
# AlexHost Deployment Configuration
|
|
# Server: 193.233.245.41 (alexhost.silentmary.mywire.org)
|
|
# Registry: localhost:5000
|
|
|
|
version: '3.8'
|
|
|
|
services:
|
|
teleshop:
|
|
image: localhost:5000/littleshop:latest
|
|
container_name: teleshop
|
|
restart: unless-stopped
|
|
ports:
|
|
- "5100:8080"
|
|
environment:
|
|
- ASPNETCORE_ENVIRONMENT=Production
|
|
- ASPNETCORE_URLS=http://+:8080
|
|
- ConnectionStrings__DefaultConnection=Data Source=/app/data/littleshop-production.db
|
|
|
|
# JWT Configuration
|
|
- Jwt__Key=ThisIsAVeryLongSecretKeyThatIsDefinitelyLongerThan32BytesForSure123456789ABCDEF
|
|
- Jwt__Issuer=LittleShop-Production
|
|
- Jwt__Audience=LittleShop-Production
|
|
- Jwt__ExpiryInHours=24
|
|
|
|
# SilverPay Configuration
|
|
- SilverPay__BaseUrl=http://silverdotpay-api:8080
|
|
- SilverPay__PublicUrl=https://pay.thebankofdebbie.giize.com
|
|
- SilverPay__ApiKey=7703aa7a62fa4b40a87e9cfd867f5407147515c0986116ea54fc00c0a0bc30d8
|
|
- SilverPay__WebhookSecret=Thefa1r1esd1d1twebhooks2024
|
|
- SilverPay__DefaultWebhookUrl=https://admin.thebankofdebbie.giize.com/api/orders/payments/webhook
|
|
- SilverPay__AllowUnsignedWebhooks=false
|
|
|
|
# Admin Credentials
|
|
- AdminUser__Username=admin
|
|
- AdminUser__Password=Thefa1r1esd1d1t
|
|
|
|
# WebPush Notifications
|
|
- WebPush__VapidPublicKey=BMc6fFJZ8oIQKQzcl3kMnP9tTsjrm3oI_VxLt3lAGYUMWGInzDKn7jqclEoZzjvXy1QXGFb3dIun8mVBwh-QuS4
|
|
- WebPush__VapidPrivateKey=dYuuagbz2CzCnPDFUpO_qkGLBgnN3MEFZQnjXNkc1MY
|
|
- WebPush__Subject=mailto:admin@thebankofdebbie.giize.com
|
|
|
|
# Bot Discovery Configuration
|
|
- BotDiscovery__SharedSecret=AlexHostDiscovery2025SecretKey
|
|
- BotDiscovery__WebhookSecret=AlexHostWebhook2025SecretKey
|
|
- BotDiscovery__LittleShopApiUrl=https://admin.thebankofdebbie.giize.com
|
|
|
|
volumes:
|
|
- /opt/littleshop/data:/app/data
|
|
- /opt/littleshop/uploads:/app/wwwroot/uploads
|
|
- /opt/littleshop/logs:/app/logs
|
|
networks:
|
|
teleshop-network:
|
|
aliases:
|
|
- teleshop
|
|
- littleshop
|
|
silverpay-network:
|
|
aliases:
|
|
- teleshop
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
telebot:
|
|
image: localhost:5000/telebot:latest
|
|
container_name: telebot
|
|
restart: unless-stopped
|
|
ports:
|
|
- "5010:5010"
|
|
environment:
|
|
- ASPNETCORE_ENVIRONMENT=Production
|
|
- ASPNETCORE_URLS=http://+:5010
|
|
|
|
# LittleShop API Connection (internal network)
|
|
- LittleShop__ApiUrl=http://teleshop:8080
|
|
- LittleShop__UseTor=false
|
|
|
|
# Telegram Bot Token (set via environment or will be configured via discovery)
|
|
- Telegram__BotToken=${TELEGRAM_BOT_TOKEN:-}
|
|
|
|
# Discovery Configuration (must match TeleShop)
|
|
- Discovery__Secret=AlexHostDiscovery2025SecretKey
|
|
|
|
# Privacy Settings
|
|
- Privacy__EnableTor=false
|
|
|
|
volumes:
|
|
- /opt/telebot/data:/app/data
|
|
- /opt/telebot/logs:/app/logs
|
|
- /opt/telebot/image_cache:/app/image_cache
|
|
networks:
|
|
teleshop-network:
|
|
aliases:
|
|
- telebot
|
|
silverpay-network:
|
|
depends_on:
|
|
teleshop:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -f http://localhost:5010/health || pgrep -f 'dotnet.*TeleBot' > /dev/null"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
networks:
|
|
teleshop-network:
|
|
name: sysadmin_teleshop-network
|
|
external: true
|
|
silverpay-network:
|
|
name: silverdotpay_silverdotpay-network
|
|
external: true
|