A modern, developer-friendly Docker image for managing AWS services running locally via AWS emulators like LocalStack or MiniStack.
This repository builds a unified Docker image that combines:
- Frontend: mydevstack-ui - Vue 3 + TypeScript web interface
- Backend: mydevstack-proxy - Go REST API proxy
- All-in-one image: Frontend and backend in a single container
- Multi-platform support: Linux (amd64, arm64), Darwin (amd64, arm64), Windows
- Easy deployment: Simple docker-compose setup
- Configurable: Environment variables for all settings
docker-compose up -dOr use a specific docker-compose file:
| Emulator | Command |
|---|---|
| LocalStack | docker-compose up -d |
| FloCi | docker-compose -f docker-compose-floci.yml up -d |
| MiniStack | docker-compose -f docker-compose-ministack.yml up -d |
Then access the UI at http://localhost:3000
docker-compose -f docker-compose-floci.yml up -ddocker-compose -f docker-compose-ministack.yml up -dversion: '3.8'
services:
mydevstack:
image: beabys/mydevstack:latest
ports:
- "3000:3000"
environment:
- AWS_ENDPOINT=http://localstack:4566
- AWS_REGION=us-east-1
restart: unless-stopped
localstack:
image: localstack/localstack:latest
ports:
- "4566:4566"
environment:
- SERVICES=s3,lambda,dynamodb,sqs,sns,iam,kmsdocker-compose up -ddocker run -d \
-p 3000:3000 \
-e AWS_ENDPOINT=http://localhost:4566 \
-e AWS_REGION=us-east-1 \
beabys/mydevstack:latest| Variable | Default | Description |
|---|---|---|
PORT |
3000 |
Frontend HTTP port |
PROXY_PORT |
8081 |
Backend proxy port |
AWS_ENDPOINT |
http://localhost:4566 |
AWS emulator endpoint URL |
AWS_REGION |
us-east-1 |
AWS region |
AWS_ACCESS_KEY_ID |
test |
AWS access key ID |
AWS_SECRET_ACCESS_KEY |
test |
AWS secret access key |
| Variable | Default | Description |
|---|---|---|
VITE_AWS_ENDPOINT |
http://localhost:8081 |
Proxy endpoint (used at build time) |
VITE_AWS_REGION |
us-east-1 |
AWS region (used at build time) |
Note: The frontend reads settings from localStorage at runtime. To configure the endpoint, either:
- Use the in-app Settings page
- Build with environment variables baked in
- Set the default in the UI and clear localStorage
| Variable | Default | Description |
|---|---|---|
LOG_LEVEL |
info |
Log level (debug, info, warn, error) |
CORS_ALLOWED_ORIGINS |
* |
CORS allowed origins |
RATE_LIMIT_ENABLED |
true |
Enable rate limiting |
RATE_LIMIT_REQUESTS |
100 |
Requests per minute |
docker run -d \
--name mydevstack \
-p 3000:3000 \
-e AWS_ENDPOINT=http://192.168.1.100:4566 \
-e AWS_REGION=us-us-east-1 \
beabys/mydevstack:latest# Start LocalStack first
docker run -d \
--name localstack \
-p 4566:4566 \
-e SERVICES=s3,lambda,dynamodb,sqs,sns,iam,kms,secretsmanager,ssm \
localstack/localstack:latest
# Start MyDevStack
docker run -d \
--name mydevstack \
-p 3000:3000 \
--link localstack \
-e AWS_ENDPOINT=http://localstack:4566 \
beabys/mydevstack:latestdocker run -d \
--name mydevstack \
-p 3000:3000 \
-v $(pwd)/nginx.conf:/etc/nginx/nginx.conf:ro \
beabys/mydevstack:latestversion: '3.8'
services:
mydevstack:
image: beabys/mydevstack:latest
ports:
- "3000:3000"
environment:
- AWS_ENDPOINT=https://aws.example.com
- AWS_REGION=us-east-1
nginx-proxy:
image: nginx:alpine
ports:
- "443:443"
volumes:
- ./ssl:/etc/nginx/ssl:ro
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- mydevstack- Docker 24.0+
- Git
# Clone this repository
git clone https://github.com/my-devstack/mydevstack.git
cd mydevstack
# Update release.json with desired versions
# {"frontend": "1.0.0", "backend": "1.0.0"}
# Build the image
docker build -t beabys/mydevstack:latest .
# Or build for specific platform
docker build --platform linux/amd64 -t beabys/mydevstack:amd64 .- Update
release.jsonwith new versions - Create a git tag with prefix
v:git add release.json git commit -m "Release v1.0.0" git tag v1.0.0 git push origin v1.0.0 - GitHub Actions will build and push the image
| Service | Status | Description |
|---|---|---|
| S3 | ✅ | Buckets, Objects, Presigned URLs |
| Lambda | ✅ | Functions, Invocations |
| DynamoDB | ✅ | Tables, Items, Streams |
| SQS | ✅ | Queues, Messages |
| SNS | ✅ | Topics, Subscriptions, Publishing |
| IAM | ✅ | Users, Roles, Groups, Policies |
| KMS | ✅ | Keys, Encryption |
| Secrets Manager | ✅ | Secrets management |
| SSM | ✅ | Parameter Store |
| API Gateway | ✅ | REST APIs, HTTP APIs |
| Kinesis | ✅ | Streams, Shards |
| CloudFormation | ✅ | Stacks, Templates |
- mydevstack-ui - Frontend Vue 3 application
- mydevstack-proxy - Backend Go proxy
This project is licensed under the MIT License.
Please read our Code of Conduct before contributing.
Contributions are welcome! Please read our Contributing Guidelines first.
If you find this project helpful, consider buying me a coffee!
