version: '3.8' services: # OpenBao server for KMS integration testing openbao: image: ghcr.io/openbao/openbao:latest ports: - "8200:8200" environment: - BAO_DEV_ROOT_TOKEN_ID=root-token-for-testing - BAO_DEV_LISTEN_ADDRESS=0.0.0.0:8200 - BAO_LOCAL_CONFIG={"backend":{"file":{"path":"/bao/data"}},"default_lease_ttl":"168h","max_lease_ttl":"720h","ui":true,"disable_mlock":true} command: - bao - server - -dev - -dev-root-token-id=root-token-for-testing - -dev-listen-address=0.0.0.0:8200 volumes: - openbao-data:/bao/data healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8200/v1/sys/health"] interval: 5s timeout: 3s retries: 5 start_period: 10s networks: - seaweedfs-sse-test # SeaweedFS Master seaweedfs-master: image: chrislusf/seaweedfs:latest ports: - "9333:9333" - "19333:19333" command: - master - -ip=seaweedfs-master - -port=9333 - -port.grpc=19333 - -volumeSizeLimitMB=50 - -mdir=/data volumes: - seaweedfs-master-data:/data networks: - seaweedfs-sse-test # SeaweedFS Volume Server seaweedfs-volume: image: chrislusf/seaweedfs:latest ports: - "8080:8080" command: - volume - -mserver=seaweedfs-master:9333 - -port=8080 - -ip=seaweedfs-volume - -publicUrl=seaweedfs-volume:8080 - -dir=/data - -max=100 depends_on: - seaweedfs-master volumes: - seaweedfs-volume-data:/data networks: - seaweedfs-sse-test # SeaweedFS Filer with S3 API and KMS configuration seaweedfs-filer: image: chrislusf/seaweedfs:latest ports: - "8888:8888" # Filer HTTP - "18888:18888" # Filer gRPC - "8333:8333" # S3 API command: - filer - -master=seaweedfs-master:9333 - -port=8888 - -port.grpc=18888 - -ip=seaweedfs-filer - -s3 - -s3.port=8333 - -s3.config=/etc/seaweedfs/s3.json depends_on: - seaweedfs-master - seaweedfs-volume - openbao volumes: - ./s3_kms.json:/etc/seaweedfs/s3.json - seaweedfs-filer-data:/data networks: - seaweedfs-sse-test volumes: openbao-data: seaweedfs-master-data: seaweedfs-volume-data: seaweedfs-filer-data: networks: seaweedfs-sse-test: name: seaweedfs-sse-test