Web UI to manage Amazon SQS queues on LocalStack or real AWS โ send, inspect and purge messages
633
Web UI to manage Amazon SQS queues โ against LocalStack (development) or real AWS (test/staging/production).
A single image bundling the frontend (React + Nginx) and the backend (Node.js + Express + AWS SDK v3), managed by supervisord. Nginx already proxies /api to the backend, so publishing port 80 is enough.
faker.person.fullName, faker.internet.email, faker.finance.accountNumber, UUID, and more)docker run -d --name sqs-handler \
-p 8080:80 \
-e USE_LOCALSTACK=true \
-e LOCALSTACK_ENDPOINT=http://172.17.0.1:4566 \
-e AWS_REGION=us-east-1 \
your-user/sqs-handler:latest
On Mac/Windows (Docker Desktop) use
http://host.docker.internal:4566. If LocalStack runs in the same compose project, usehttp://localstack:4566.
docker run -d --name sqs-handler \
-p 8080:80 \
-e USE_LOCALSTACK=false \
-e AWS_REGION=us-east-1 \
-e AWS_ACCESS_KEY_ID=your-access-key \
-e AWS_SECRET_ACCESS_KEY=your-secret-key \
your-user/sqs-handler:latest
Then open http://localhost:8080โ .
| Variable | Description | Default |
|---|---|---|
PORT | Backend port inside the container | 3001 |
USE_LOCALSTACK | Use LocalStack (true) or real AWS (false) | true |
LOCALSTACK_ENDPOINT | LocalStack endpoint | http://localhost:4566 |
AWS_REGION | AWS region | us-east-1 |
AWS_ENDPOINT | Custom SQS endpoint (optional) | โ |
AWS_ACCESS_KEY_ID | AWS access key ID | โ |
AWS_SECRET_ACCESS_KEY | AWS secret access key | โ |
If AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY are omitted, the AWS SDK falls back to its default credential chain (environment variables โ ~/.aws/credentials โ IAM role on EC2/ECS/Lambda).
| Port | Service |
|---|---|
80 | Frontend (Nginx) โ also serves the API under /api |
3001 | Express backend (optional; publish it only if you want direct API access) |
services:
sqs-handler:
image: your-user/sqs-handler:latest
container_name: sqs-handler
restart: unless-stopped
ports:
- "8080:80"
environment:
- NODE_ENV=production
- PORT=3001
- USE_LOCALSTACK=false
- AWS_REGION=us-east-1
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
extra_hosts:
- "host.docker.internal:host-gateway"
docker compose up -d
The backend exposes the following endpoints (also reachable under /api on port 80):
| Method | Route | Description |
|---|---|---|
GET | /api/queues | List queues |
GET | /api/queues/:queueName/url | Get the queue URL |
GET | /api/queues/:queueName/messages | Receive messages (up to 10) |
POST | /api/queues/:queueName/messages | Send a message |
DELETE | /api/queues/:queueName/messages/:receiptHandle | Delete a message |
POST | /api/queues/:queueName/purge | Purge the queue |
The image ships with a HEALTHCHECK that polls http://localhost:3001/api/queues every 30s.
node:18-alpineappuser)React 18 ยท TypeScript ยท Vite ยท TailwindCSS ยท Node.js ยท Express ยท AWS SDK v3 ยท Nginx
Content type
Image
Digest
sha256:154c7d535โฆ
Size
77.9 MB
Last updated
5 days ago
docker pull ronaldoalencar/sqs-handler