# cloud-emulators.yml — self-hosted cloud dev stack # # Deployed on lattepanda (192.168.0.40), docker compose: # docker compose -f /opt/cloud-emulators/cloud-emulators.yml up -d # # Services: # MinIO S3-compatible object store API :9000 Console :9001 # LocalStack AWS emulator (IAM/SQS/S3/…) edge :4566 # Azurite Azure Storage emulator blob :10000 queue :10001 table :10002 # # Credentials live in Vaultwarden (self-hosted first policy). # See docs/guides/selfhosted/cloud-emulators.md for CLI wiring. name: cloud-emulators services: minio: image: minio/minio:latest container_name: minio restart: unless-stopped command: server /data --console-address ":9001" ports: - "9000:9000" - "9001:9001" environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:?set MINIO_ROOT_PASSWORD in .env} volumes: - minio-data:/data healthcheck: test: ["CMD", "mc", "ready", "local"] interval: 30s timeout: 10s retries: 3 localstack: image: localstack/localstack:3 # v3 community (latest/2026+ demands LOCALSTACK_AUTH_TOKEN) container_name: localstack restart: unless-stopped ports: - "4566:4566" environment: SERVICES: s3,sqs,sns,iam,lambda,logs,cloudwatch,ssm,secretsmanager,dynamodb,iot DEFAULT_REGION: eu-west-1 PERSISTENCE: "1" volumes: - localstack-data:/var/lib/localstack - /var/run/docker.sock:/var/run/docker.sock healthcheck: test: ["CMD", "curl", "-sf", "http://localhost:4566/_localstack/health"] interval: 30s timeout: 10s retries: 3 azurite: image: mcr.microsoft.com/azure-storage/azurite:latest container_name: azurite restart: unless-stopped command: azurite --blobHost 0.0.0.0 --queueHost 0.0.0.0 --tableHost 0.0.0.0 --location /data ports: - "10000:10000" - "10001:10001" - "10002:10002" volumes: - azurite-data:/data volumes: minio-data: localstack-data: azurite-data: