2.7 KiB
2.7 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Overview
This is a Docker Compose infrastructure configuration repository for the staging environment of the dot-dot.ru platform. It contains service configurations, environment files, and deployment scripts.
Common Commands
All commands are run via ./app.sh:
./app.sh up # Start all services (docker compose up -d + nginx reload)
./app.sh down # Stop all services
./app.sh init # Initialize environment (requires backup in backups/)
./app.sh db # Open MySQL shell
./app.sh console <cmd> # Run Symfony console command
./app.sh composer <cmd> # Run composer in PHP container
./app.sh psalm # Run static analysis
./app.sh php-fixer # Run code style fixer
./app.sh deptrac # Run dependency analysis
./app.sh tests # Run test suite
./app.sh restore-db # Restore database from S3 backup
./app.sh purge-db # Drop and recreate database
Architecture
Services (docker-compose.yml)
- backend/php: Main PHP application (Symfony) with multiple message consumers
- db: MariaDB 10.3 database
- nginx: Reverse proxy with SSL termination
- rabbitmq: Message broker for async processing
- redis: Caching layer
- centrifugo: WebSocket server for real-time updates
- lms: Learning Management System (Node.js)
- admin: Admin panel (PHP)
- cabinet: Cargo carrier cabinet (Node.js)
- landing-ttl: Landing page service
- 1c-view: 1C integration viewer
Message Consumers
The PHP application runs several Symfony Messenger consumers as separate containers:
- StatisticExport, OrderImport, ReconciliationAct, WSOrderStateUpdate
- UserTrust, SyncAuctions, SyncCarriers, SyncChangeData
Configuration Structure
configs/
├── nginx/ # Nginx configs and SSL certificates
├── php/ # PHP-FPM config and .env.local
├── rabbitmq/ # RabbitMQ config and definitions
├── lms/ # LMS environment and entrypoint
├── admin/ # Admin panel config
├── cabinet/ # Carrier cabinet config
├── centrifugo/ # WebSocket server config
└── signer/ # Digital signature service (currently disabled)
Environment
- Main environment variables are in
.env - Service image tags are controlled via
dotdot_tag,LMS_TAG,ADMIN_TAG, etc. - Network name:
staging - MySQL port exposed on:
33067
Key Files
.env- Main environment variables and service tagsdocker-compose.yml- Service definitions with YAML anchors (x-defaults-php)configs/php/.env.local- PHP application environment