version: "3.7" x-e2e-labels: &e2e-labels io.shellhub.e2e.run: ${SHELLHUB_E2E_RUN:?} io.shellhub.e2e.lease: ${SHELLHUB_E2E_LEASE:-} io.shellhub.e2e.kind: ${SHELLHUB_E2E_KIND:-} io.shellhub.e2e.expires: ${SHELLHUB_E2E_EXPIRES:-} io.shellhub.e2e.checkout: ${SHELLHUB_E2E_CHECKOUT:-} services: server: image: shellhub-e2e/server:${SHELLHUB_E2E_RUN:?}-${SHELLHUB_BUILD_EDITION:-community} labels: *e2e-labels pull_policy: never restart: on-failure:3 healthcheck: interval: 5s start_period: 10s retries: 20 ports: [] environment: - SHELLHUB_OPENAPI_VALIDATION=strict - SHELLHUB_OPENAPI_SCHEMA=file:///etc/shellhub/openapi.json - SHELLHUB_LOG_FORMAT=text - SHELLHUB_SESSION_RETENTION_DAYS=${SHELLHUB_SESSION_RETENTION_DAYS:-0} volumes: - ./openapi/static/openapi-${SHELLHUB_EDITION:-community}.json:/etc/shellhub/openapi.json:ro ui: image: shellhub-e2e/ui:${SHELLHUB_E2E_RUN:?} labels: *e2e-labels pull_policy: never restart: on-failure:3 healthcheck: interval: 5s start_period: 10s retries: 20 relay: image: ${DOCKERHUB_MIRROR:-}alpine/socat:1.8.0.3 labels: *e2e-labels restart: on-failure:3 command: TCP6-LISTEN:80,fork,reuseaddr,ipv6only=0 TCP:server:80 networks: - shellhub redis: image: ${DOCKERHUB_MIRROR:-}valkey/valkey:9.1-alpine labels: *e2e-labels ports: - ${SHELLHUB_BIND_ADDRESS}:${SHELLHUB_TEST_REDIS_PORT:-0}:6379