
Deploy ElasticMQ
A lightweight Amazon SQS-compatible message queue with a web UI.
elasticmq-ui
Just deployed
elasticmq
Just deployed
Deploy and Host ElasticMQ with UI on Railway
ElasticMQ is a lightweight Amazon SQS-compatible message queue designed for development, testing, CI/CD, and integration workflows.
This deployment combines ElasticMQ with the official ElasticMQ UI, providing both an SQS-compatible API and a browser-based interface for inspecting queues and messages.
About Hosting ElasticMQ with UI
This template deploys ElasticMQ and ElasticMQ UI as separate Railway services.
ElasticMQ provides the SQS-compatible API on port 9324, while ElasticMQ UI runs on port 9325 and connects to the queue service through Railway private networking.
The UI is exposed publicly, while the SQS API can remain private for applications running in the same Railway project.
No PostgreSQL, Redis, MySQL, MongoDB, or external database is required.
Queue and message state is primarily in memory and should be treated as disposable.
Common Use Cases
- Develop applications that integrate with Amazon SQS
- Test queue producers and consumers
- Run integration tests without connecting to AWS
- Test AWS SDK integrations
- Inspect queues and messages through a browser
- Build isolated messaging environments for CI/CD
- Test retry and queue-processing workflows
- Share a reusable SQS-compatible environment across development teams
Dependencies for ElasticMQ with UI
This deployment includes:
- ElasticMQ
- ElasticMQ UI
- Railway private networking
It does not require:
- PostgreSQL
- Redis
- MySQL
- MongoDB
- A Railway Volume
- A real AWS account
- Real AWS credentials
Service Architecture
Browser
│
▼
ElasticMQ UI
:9325
│
│ Railway Private Network
▼
ElasticMQ
:9324
│
└── SQS-compatible queues and messages
ElasticMQ API
ElasticMQ exposes its SQS-compatible API on:
9324
Applications running inside the same Railway project can access it using Railway private networking.
For a service named ElasticMQ:
http://elasticmq.railway.internal:9324
Use this endpoint when configuring AWS SDKs or other SQS-compatible clients.
ElasticMQ UI
The ElasticMQ UI runs as a separate service using the official image:
softwaremill/elasticmq-ui
The UI listens on:
9325
Generate a Railway public domain for the UI service and target port 9325.
Example:
https://your-elasticmq-ui.up.railway.app
Opening this domain displays the ElasticMQ web interface.
The UI connects to ElasticMQ over Railway private networking, so the SQS API does not need to be publicly exposed for normal usage.
Using the Web UI
The ElasticMQ UI can be used to inspect and interact with the test queue environment.
Typical operations include:
- View queues
- Create queues
- Inspect queue details
- Send messages
- Receive messages
- Delete messages
- Test queue behavior without writing application code first
The UI is intended for development and testing.
Do not store sensitive or production data in publicly accessible test environments.
Connecting Applications
Applications can configure their AWS SDK to use the ElasticMQ API endpoint instead of Amazon SQS.
For applications inside Railway:
http://elasticmq.railway.internal:9324
Use port 9324 for SQS API traffic.
Do not use the ElasticMQ UI domain as an SQS API endpoint.
Connecting with AWS CLI
AWS CLI can connect to ElasticMQ using a custom endpoint.
Configure test credentials:
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_DEFAULT_REGION=us-east-1
Then list queues:
aws sqs list-queues \
--endpoint-url http://elasticmq.railway.internal:9324
For local testing outside Railway, replace the endpoint with the address where ElasticMQ is reachable.
Example AWS SDK Client
Example using AWS SDK for JavaScript:
import { SQSClient } from "@aws-sdk/client-sqs";
const client = new SQSClient({
region: "us-east-1",
endpoint: "http://elasticmq.railway.internal:9324",
credentials: {
accessKeyId: "test",
secretAccessKey: "test"
}
});
Real AWS credentials are not required for standard ElasticMQ testing.
Queue URL Behavior
ElasticMQ is configured to derive queue URLs from the incoming request rather than using a hardcoded localhost address.
This makes it suitable for Railway private networking because applications can receive queue URLs that reflect the endpoint they actually used.
For predictable behavior, applications should consistently access ElasticMQ through the same endpoint.
Health Checks
The ElasticMQ API provides:
/health
on port:
9324
The ElasticMQ UI serves its homepage on port:
9325
These endpoints can be used for service health checks.
Persistence
This template does not enable queue or message persistence.
Queue and message state should therefore be treated as temporary.
Restarting or redeploying the ElasticMQ service may remove:
- Queues
- Messages
- Queue metadata
- Runtime state
This behavior is appropriate for development, automated testing, CI pipelines, and disposable integration environments.
For durable production messaging, use a production-grade message broker or managed queue service instead.
Public and Private Networking
Recommended setup:
ElasticMQ UI
→ Public
→ Port 9325
ElasticMQ API
→ Private
→ Port 9324
This keeps the SQS-compatible API inside the Railway project while still providing browser access to the UI.
If an external application needs direct SQS API access, port 9324 can also be exposed publicly.
Additional endpoint configuration may be required when using Railway HTTPS termination because ElasticMQ queue URLs can depend on the protocol and host used by the client.
Important Notes
- ElasticMQ is intended for development, testing, CI, and integration workflows.
- It implements Amazon SQS-compatible behavior but is not a production replacement for Amazon SQS.
- The SQS API runs on port
9324. - ElasticMQ UI runs on port
9325. - The UI and API run as separate Railway services.
- No Redis, PostgreSQL, MySQL, MongoDB, or external database is required.
- Queue and message state is disposable in this template.
- Real AWS credentials are not required.
- Use Railway private networking between the UI, applications, and ElasticMQ whenever possible.
- Advanced SQS-specific behavior should be validated against Amazon SQS before production use.
Why Deploy ElasticMQ with UI on Railway?
Railway provides a managed platform for running ElasticMQ and its web UI without requiring users to maintain dedicated development servers.
Deploying ElasticMQ with UI on Railway provides a reusable SQS-compatible development environment with browser-based queue inspection, private application connectivity, and simple integration with AWS SDKs and automated testing workflows.
Template Content
elasticmq-ui
softwaremill/elasticmq-uielasticmq
codestorm-official/elasticmq