services: # دیتابیس MariaDB mariadb: image: mariadb:10.6 container_name: sec_lab_db environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: sec_lab MYSQL_USER: lab_user MYSQL_PASSWORD: lab_password volumes: - db_data:/var/lib/mysql networks: - lab_net restart: always # وب‌سرور اپلیکیشن اصلی (Victim) victim-nginx: image: nginx:stable-alpine container_name: sec_lab_victim_nginx ports: - "58690:80" volumes: - ./:/var/www/html:ro - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - php networks: - lab_net restart: always # هسته پردازشی PHP php: container_name: sec_lab_php build: context: . dockerfile: ./docker/php/Dockerfile args: - COMPOSER_REGISTRY=http://192.168.1.201:8081/repository/composer-runflare/ - LINUX_REGISTRY=http://192.168.1.201:8081/repository/debian-arvan - SECURITY_REGISTRY=http://192.168.1.201:8081/repository/debian-arvan-security - NPM_REGISTRY=http://192.168.1.201:8081/repository/npm-group/ - NODE_REGISTRY=http://192.168.1.201:8081/repository/node-dist volumes: - ./:/var/www/html:rw depends_on: - mariadb networks: - lab_net restart: always # اپلیکیشن مهاجم (Hacker) attacker-app: image: nginx:stable-alpine container_name: sec_lab_attacker_nginx ports: - "58691:80" volumes: - ./hacker_site:/usr/share/nginx/html:ro networks: - lab_net restart: always networks: lab_net: driver: bridge volumes: db_data: