Запуск¶
Запуск с помощью Docker Compose¶
-
Создайте файл docker-compose.yml.
version: '3.9' services: frontend: image: registry.appsec.global/wave/wave-front:25.4.5 container_name: frontend volumes: - /opt/wave/nginx/nginx.conf:/etc/nginx/nginx.conf - /opt/wave/nginx/ssl:/etc/ssl/certs/ssl-cert ports: - 80:8080 - 443:443 depends_on: - backend backend: image: registry.appsec.global/wave/wave-core:25.4.5 container_name: backend env_file: .env depends_on: - postgresql - rabbitmq backend-agent: image: registry.appsec.global/wave/wave-agent:25.4.5 container_name: backend-agent deploy: mode: replicated replicas: 3 depends_on: - postgresql - rabbitmq env_file: .env restart: always postgresql: image: postgres:17 container_name: postgresql env_file: .env volumes: - /opt/wave/pgdata:/var/lib/postgresql/data rabbitmq: image: rabbitmq:3 container_name: rabbitmq hostname: rabbitmq restart: unless-stopped env_file: .envПримечание
В поле replicas: N, N - количество агентов, соответствующее выбранной лицензии
-
Создайте файл .env.
Пример файла .env:
SPRING_DATASOURCE_URL=jdbc:postgresql://postgresql:5432/postgres SPRING_DATASOURCE_USERNAME=postgres SPRING_DATASOURCE_PASSWORD=postgres SPRING_FLYWAY_URL=jdbc:postgresql://postgresql:5432/postgres SPRING_FLYWAY_USER=postgres SPRING_FLYWAY_PASSWORD=postgres SPRING_RABBITMQ_HOST=rabbitmq SPRING_RABBITMQ_VIRTUAL_HOST=vhost SPRING_RABBITMQ_USERNAME=guest SPRING_RABBITMQ_PASSWORD=guest SPRING_CLOUD_AWS_S3_ENDPOINT=YOUR_ENDPOINT SPRING_CLOUD_AWS_S3_ACCESS_KEY=YOUR_ACCESS_KEY SPRING_CLOUD_AWS_S3_SECRET_KEY=YOUR_SECRET_KEY JWT_TOKEN_SIGNING_KEY=43F73C7F2C7EF42D3C5F2D7D4CDA1762346F241D1F2E5CCA59DD675A853D78F5 TZ="Europe/Moscow" POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres POSTGRES_DB=postgres RABBITMQ_DEFAULT_USER=guest RABBITMQ_DEFAULT_PASS=guest RABBITMQ_DEFAULT_VHOST=vhost GIT_CREDENTIALS_ENCRYPTION_KEY=example_password -
Создайте файл nginx.conf. Для этого:
a. Создайте директорию /opt/wave/nginx/.
mkdir -p /opt/wave/nginx/b. Внутри созданной папки создайте файл nginx.conf.
Пример файла nginx.conf:
worker_processes auto; user nginx; pid /tmp/nginx.pid; events { worker_connections 1024; } http { proxy_connect_timeout 300s; proxy_read_timeout 300s; proxy_send_timeout 300s; send_timeout 300s; server { listen 8080; server_name localhost; types_hash_max_size 4096; ignore_invalid_headers off; client_max_body_size 10240m; include /etc/nginx/mime.types; location / { root /usr/share/nginx/html; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header X-Frame-Options SAMEORIGIN; add_header 'Access-Control-Allow-Origin' '*'; try_files $uri $uri/ /index.html?$args; index index.html; } location /api/ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://backend:8095/; } location /swagger-ui/ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://backend:8095/swagger-ui/; } location /ws/ { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://backend:8095/ws; } listen 443 ssl; ssl_certificate /etc/ssl/certs/ssl-cert/fullchain1.pem; # managed by Certbot ssl_certificate_key /etc/ssl/certs/ssl-cert/privkey1.pem; # managed by Certbot if ($scheme != "https") { return 301 https://$host$request_uri; } } }Примечание
В случае отсутствия сертификатов и использования обычного HTTP, в файле nginx.conf следует закомментировать строчки, связанные с HTTPS:
listen 443 ssl; ssl_certificate /etc/ssl/certs/ssl-cert/fullchain1.pem; # managed by Certbot ssl_certificate_key /etc/ssl/certs/ssl-cert/privkey1.pem; # managed by Certbot if ($scheme != "https") { return 301 https://$host$request_uri; } -
Перейдите в директорию, в которой располагается файл docker-compose.yml, и запустите Систему.
docker-compose up -d
S3 хранилище¶
service:
minio:
image: minio/minio:RELEASE.2025-09-07T16-13-09Z
container_name: minio
ports:
- "9000:9000"
- "9001:9001"
environment:
- MINIO_ROOT_USER=admin
- MINIO_ROOT_PASSWORD=password
- TZ="Europe/Moscow"
volumes:
- ./minio_data:/data
command: server /data --console-address ":9001"
Пример заполненного блока s3 в env-файле: