Deploy ElasticMQ

A lightweight Amazon SQS-compatible message queue with a web UI.

Deploy ElasticMQ

Just deployed

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

More templates in this category

View Template
smoothmq
A drop-in replacement for AWS SQS

poundifdef
7
View Template
Kafka UI
Kafbat UI — Open-source web UI to monitor and manage Apache Kafka clusters

codestorm
0
View Template
Hatchet Lite
Hatchet Lite with postgres

prncd
1