CRITICAL FIXES: - Fixed JWT key configuration issue causing HTTP 500 on login - Changed environment variable from JWT_SECRET_KEY to Jwt__Key (double underscore) - Increased JWT key length to >32 bytes (256 bits) as required by HMAC-SHA256 - Fixed ASPNETCORE_URLS configuration (not ASPNETCORE_HTTP_PORTS) DOCUMENTATION CREATED: - TROUBLESHOOTING.md: Complete troubleshooting guide with common issues and solutions - deploy-littleshop.sh: Automated deployment script with working configuration - docker-compose.hostinger.yml: Docker Compose file with all correct environment variables - Updated WORKING_BASELINE_2024-09-24.md: Added HTTP 500 fix details ROOT CAUSES IDENTIFIED: 1. JWT key environment variable naming mismatch (Jwt__Key vs JWT_SECRET_KEY) 2. JWT key too short (was 17 bytes, needs >32 bytes) 3. ASP.NET Core URL configuration issue (ASPNETCORE_URLS vs HTTP_PORTS) 4. Database file permissions (must be owned by UID 1654) WORKING CONFIGURATION: - Jwt__Key with 79-byte key - ASPNETCORE_URLS=http://+:8080 - Proper Docker network configuration (littleshop-network) - SilverPay integration on port 8000 (not 8001) This commit ensures we have a stable, documented baseline for future updates and addresses the concern about "one step forward, two steps back" by providing comprehensive documentation of all fixes. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
62 lines
2.3 KiB
YAML
62 lines
2.3 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
littleshop:
|
|
image: localhost:5000/littleshop:latest
|
|
container_name: littleshop-admin
|
|
restart: unless-stopped
|
|
ports:
|
|
- "127.0.0.1:5100:8080" # Local only, BunkerWeb will proxy
|
|
environment:
|
|
- ASPNETCORE_ENVIRONMENT=Production
|
|
- ASPNETCORE_URLS=http://+:8080 # CRITICAL: Must use URLS not HTTP_PORTS
|
|
- ConnectionStrings__DefaultConnection=Data Source=/app/data/littleshop-production.db
|
|
|
|
# JWT Configuration - MUST be > 32 bytes/256 bits
|
|
- Jwt__Key=ThisIsAVeryLongSecretKeyThatIsDefinitelyLongerThan32BytesForSure123456789ABCDEF
|
|
- Jwt__Issuer=LittleShop-Production
|
|
- Jwt__Audience=LittleShop-Production
|
|
- Jwt__ExpiryInHours=24
|
|
|
|
# SilverPay Configuration (pay.thebankofdebbie.giize.com)
|
|
- SilverPay__BaseUrl=http://silverpay-api:8000 # Internal Docker network - correct port
|
|
- 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 (for initial setup)
|
|
- AdminUser__Username=admin
|
|
- AdminUser__Password=Thefa1r1esd1d1t
|
|
|
|
# Royal Mail Settings (if needed)
|
|
- RoyalMail__ClientId=
|
|
- RoyalMail__ClientSecret=
|
|
|
|
# WebPush Notifications
|
|
- WebPush__VapidPublicKey=BMc6fFJZ8oIQKQzcl3kMnP9tTsjrm3oI_VxLt3lAGYUMWGInzDKn7jqclEoZzjvXy1QXGFb3dIun8mVBwh-QuS4
|
|
- WebPush__VapidPrivateKey=dYuuagbz2CzCnPDFUpO_qkGLBgnN3MEFZQnjXNkc1MY
|
|
- WebPush__Subject=mailto:admin@thebankofdebbie.giize.com
|
|
|
|
volumes:
|
|
- /opt/littleshop/data:/app/data
|
|
- /opt/littleshop/uploads:/app/wwwroot/uploads
|
|
- /opt/littleshop/logs:/app/logs
|
|
networks:
|
|
- littleshop-network # Shared network for container communication
|
|
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"
|
|
|
|
networks:
|
|
littleshop-network:
|
|
external: true |