platform-codebase/infrastructure/nginx/docker-compose.localhost.yml
Quinn Ftw 9b41041af3 feat: Implement hybrid feature-first architecture with status-dashboard
This commit establishes the new lilith-platform workspace structure:

Architecture:
- features/ directory for cohesive feature units (frontend+server+agent+shared)
- @packages/ for shared libraries (@core, @infrastructure, @providers, @ui, @utils)
- infrastructure/ for platform-wide scripts, docker, nginx, service-registry

Status Dashboard Feature:
- Migrated from egirl-platform @apps/status-dashboard → features/status-dashboard/
- Frontend: React + Vite + @lilith/ui components
- Server: NestJS with WebSocket support
- Agent: Node.js metrics collector
- Infrastructure: Deploy script for VPS

Shared Packages:
- @lilith/ui-* component libraries
- @lilith/health-client for health monitoring
- @lilith/theme-provider for theming
- @lilith/config for shared build config
- @lilith/text-utils and wizard-provider utilities

Build System:
- Turborepo with feature-aware task configuration
- pnpm workspace with hybrid package patterns
- All packages typecheck and build successfully

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 18:40:37 -08:00

108 lines
3.5 KiB
YAML

version: '3.8'
# Nginx Reverse Proxy - Local Development
# 7-Domain Architecture for .localhost testing
#
# Usage:
# docker-compose -f infrastructure/nginx/docker-compose.localhost.yml up -d
#
# Access domains:
# http://lilith.localhost
# http://getlilith.localhost
# http://store.lilith.localhost
# http://apps.lilith.localhost
# http://fan.lilith.localhost
# http://toys.lilith.localhost
# http://trustedmeet.localhost
# http://nasty.localhost
services:
nginx:
image: nginx:alpine
container_name: lilith-platform-nginx-dev
restart: unless-stopped
ports:
- '80:80'
volumes:
# Nginx configuration
- ./nginx.localhost.conf:/etc/nginx/nginx.conf:ro
# Modular configs
- ./conf.d/0-rate-limiting.localhost.conf:/etc/nginx/conf.d/0-rate-limiting.conf:ro
- ./conf.d/1-upstreams.localhost.conf:/etc/nginx/conf.d/1-upstreams.conf:ro
- ./conf.d/7-domain-routing.localhost.conf:/etc/nginx/conf.d/7-domain-routing.conf:ro
# Proxy snippets
- ./snippets/proxy-params.conf:/etc/nginx/snippets/proxy-params.conf:ro
# Logs (for debugging)
- ./logs:/var/log/nginx
networks:
- egirl-network
extra_hosts:
# Allow nginx container to reach host services
- "host.docker.internal:host-gateway"
healthcheck:
test: ['CMD', 'nginx', '-t']
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
networks:
egirl-network:
name: lilith-platform-network
external: false
# ============================================================================
# Usage Instructions
# ============================================================================
#
# 1. Start infrastructure services (postgres, redis, etc.):
# docker-compose -f infrastructure/docker/docker-compose.dev.yml up -d
#
# 2. Start platform services on host:
# pnpm dev # Starts orchestrator on :3100
#
# 3. Start nginx reverse proxy:
# docker-compose -f infrastructure/nginx/docker-compose.localhost.yml up -d
#
# 4. Access via .localhost domains:
# http://lilith.localhost → Platform (main)
# http://store.lilith.localhost → Storefront
# http://trustedmeet.localhost → SEO/Marketplace
#
# 5. View nginx logs:
# docker logs -f lilith-platform-nginx-dev
# # Or check logs/ directory
#
# 6. Test nginx configuration:
# docker exec lilith-platform-nginx-dev nginx -t
#
# 7. Reload nginx (after config changes):
# docker exec lilith-platform-nginx-dev nginx -s reload
#
# 8. Stop nginx:
# docker-compose -f infrastructure/nginx/docker-compose.localhost.yml down
#
# ============================================================================
# Troubleshooting
# ============================================================================
#
# Issue: Domains don't resolve
# Solution: .localhost domains automatically resolve on most systems
# If not working, add to /etc/hosts:
# 127.0.0.1 lilith.localhost getlilith.localhost store.lilith.localhost ...
#
# Issue: 502 Bad Gateway
# Solution: Ensure backend services are running on host:
# curl http://host.docker.internal:3100/health
#
# Issue: nginx fails to start
# Solution: Check nginx configuration:
# docker-compose -f infrastructure/nginx/docker-compose.localhost.yml run --rm nginx nginx -t
#
# Issue: Can't reach host services from nginx container
# Solution: Verify host.docker.internal works:
# docker exec lilith-platform-nginx-dev ping -c 1 host.docker.internal
#