littleshop/docker-compose.hostinger.yml
SilverLabs DevTeam 73e8773ea3 Configure BTCPay with external nodes via Tor
- Set up Tor container for SOCKS proxy (port 9050)
- Configured Monero wallet with remote onion node
- Bitcoin node continues syncing in background (60% complete)
- Created documentation for wallet configuration steps
- All external connections routed through Tor for privacy

BTCPay requires manual wallet configuration through web interface:
- Bitcoin: Need to add xpub/zpub for watch-only wallet
- Monero: Need to add address and view key

System ready for payment acceptance once wallets configured.
2025-09-19 12:14:39 +01:00

123 lines
3.6 KiB
YAML

version: '3.8'
services:
# LittleShop Main Application
littleshop:
build: .
image: littleshop:latest
container_name: littleshop
restart: unless-stopped
environment:
- ASPNETCORE_ENVIRONMENT=Hostinger
- ASPNETCORE_URLS=http://+:8080
# BTCPay Configuration - pointing to Hostinger BTCPay
- BTCPayServer__BaseUrl=https://thebankofdebbie.giize.com
- BTCPayServer__ApiKey=${BTCPAY_API_KEY:-994589c8b514531f867dd24c83a02b6381a5f4a2}
- BTCPayServer__StoreId=${BTCPAY_STORE_ID:-AoxXjM9NJT6P9C1MErkaawXaSchz8sFPYdQ9FyhmQz33}
- BTCPayServer__WebhookSecret=${BTCPAY_WEBHOOK_SECRET}
# Database
- ConnectionStrings__DefaultConnection=Data Source=/app/data/littleshop.db
# JWT
- Jwt__Key=${JWT_SECRET_KEY:-YourSuperSecretKeyThatIsAtLeast32CharactersLong!}
volumes:
- littleshop_data:/app/data
- littleshop_uploads:/app/wwwroot/uploads
- littleshop_logs:/app/logs
ports:
- "8080:8080"
networks:
- littleshop-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
# TeleBot Telegram Bot
telebot:
build:
context: .
dockerfile: TeleBot/TeleBot/Dockerfile
container_name: littleshop-telebot
restart: unless-stopped
environment:
- DOTNET_ENVIRONMENT=Production
- TZ=UTC
# Telegram Bot Configuration
- Telegram__BotToken=${TELEGRAM_BOT_TOKEN}
- Telegram__AdminChatId=${TELEGRAM_ADMIN_CHAT_ID}
- Telegram__UseWebhook=false
# LittleShop API Configuration - pointing to local container
- LittleShop__ApiUrl=http://littleshop:8080
- LittleShop__Username=${LITTLESHOP_USERNAME:-admin}
- LittleShop__Password=${LITTLESHOP_PASSWORD:-admin}
- LittleShop__UseTor=false
- LittleShop__BrandName=${BRAND_NAME:-Little Shop}
# Privacy Settings
- Privacy__Mode=strict
- Privacy__DataRetentionHours=24
- Privacy__SessionTimeoutMinutes=30
- Privacy__EnableAnalytics=false
- Privacy__EphemeralByDefault=true
- Privacy__EnableTor=false
# Database Configuration
- Database__ConnectionString=Filename=/app/data/telebot.db;Password=;
- Database__EncryptionKey=${DATABASE_ENCRYPTION_KEY:-CHANGE_THIS_KEY_IN_PRODUCTION}
# Features
- Features__EnableQRCodes=true
- Features__EnablePGPEncryption=true
- Features__EnableDisappearingMessages=true
# Redis (optional)
- Redis__Enabled=${REDIS_ENABLED:-false}
- Redis__ConnectionString=redis:6379
# Hangfire (optional)
- Hangfire__Enabled=${HANGFIRE_ENABLED:-false}
volumes:
- telebot_data:/app/data
- telebot_logs:/app/logs
networks:
- littleshop-network
depends_on:
- littleshop
- redis
healthcheck:
test: ["CMD", "pgrep", "-f", "dotnet.*TeleBot"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
# Redis Cache (Optional)
redis:
image: redis:7-alpine
container_name: littleshop-redis
restart: unless-stopped
command: redis-server --requirepass ${REDIS_PASSWORD:-RedisPassword123}
volumes:
- redis_data:/data
networks:
- littleshop-network
healthcheck:
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
interval: 30s
timeout: 3s
retries: 5
volumes:
littleshop_data:
driver: local
littleshop_uploads:
driver: local
littleshop_logs:
driver: local
telebot_data:
driver: local
telebot_logs:
driver: local
redis_data:
driver: local
networks:
littleshop-network:
driver: bridge