Docker Compose
Deploy Memphis over Docker using Docker compose
For easier onboarding and installation, Memphis can be deployed via docker-compose.

Step 1: Download compose.yaml file

1
curl -s https://memphis-os.github.io/memphis-docker/docker-compose.yml -o docker-compose.yml
Copied!

Step 2: Run the compose

1
docker compose -f docker-compose.yml -p memphis up
Copied!
Output:
1
[+] Running 4/4
2
⠿ Container memphis-cluster-1 Creating 0.2s
3
⠿ Container memphis-ui-1 Creating 0.2s
4
⠿ Container memphis-control-plane-1 Creating 0.2s
5
⠿ Container memphis-mongo-1 Creating 0.2s
Copied!

Deployed Containers

  • memphis-cluster-1: Three (default) MQ workers (Jetstream- and Memphis-made replicas). Responsible for data ingestion and processing, just like Kafka's brokers.
  • memphis-ui-1: UI. Responsible for delivering a graphical user interface for managing the cluster.
  • memphis-control-plane-1: Control plane. The engine behind Memphis. Responsible for orchestrating the different components and acting as the single source of management.
  • memphis-mongo-1: MongoDB, for Memphis internal usage.

Step 3: Access via UI / CLI / SDK

UI
CLI
SDK
The default port of the UI is 9000:
1
http://localhost:9000
Copied!
Default Username: root
Default Password: memphis
For the entire CLI reference and how to install it, please head the following page:
The CLI client connects to Memphis via the UI.
After installing the CLI client, please run the following:
1
$# mem connect
2
3
Use command: mem connect --user <user> --password <password> --server <server>
4
5
Example: mem connect -u root -p memphis -s http://<memphis-control-plane>:<port>
6
Connection configuration to Memphis control plane
7
Usage: index connect <command> [options]
8
9
Connection to Memphis control plane
10
11
Options:
12
-u, --user <user> User
13
-p, --password <password> Password
14
-s, --server <server> Memphis control plane
15
-h, --help display help for command
Copied!
1
$# mem connect -u root -p memphis -s http://localhost:9000
2
Connected successfully to Memphis control plane.
Copied!
For more detailed information, head to the SDKs section below.

Memphis Node.JS SDK can be used to demonstrate the required parameters.

1
await memphis.connect({
2
host: "localhost",
3
port: <control-plane-port>, // defaults to 6666. Can be removed
4
brokerHost: "localhost",
5
brokerPort: <broker-port>, // defaults to 7766. Can be removed
6
username: "root", // (application type user)
7
connectionToken: "memphis", // you will get it on application type user creation
8
reconnect: true, // defaults to false
9
maxReconnect: 10, // defaults to 10
10
reconnectIntervalMs: 1500, // defaults to 1500
11
timeoutMs: 1500 // defaults to 1500
12
});
Copied!
  • host: Usually the control plane or through the UI URL. For example "https://memphis-ui.test.com/api".
  • brokerHost: The URL of the memphis-cluster.
  • username: Usually "root". Head to the users' section via the UI or CLI to add more.
  • connectionToken: Each app that produces and/or consumer data with Memphis uses token authentication. The default value is "memphis".