littleshop/docker-compose.alexhost.yml
SysAdmin 86f19ba044
All checks were successful
Build and Deploy LittleShop / Deploy to Pre-Production (CT109) (push) Successful in 59s
Build and Deploy LittleShop / Deploy to Production VPS (Manual Only) (push) Has been skipped
feat: Add AlexHost deployment pipeline and bot control functionality
- 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>
2025-11-26 12:33:46 +00:00

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