config_staging/CLAUDE.md

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 tags
  • docker-compose.yml - Service definitions with YAML anchors (x-defaults-php)
  • configs/php/.env.local - PHP application environment