cardanosolutions/ogmios

By cardanosolutions

Updated 23 days ago

https://ogmios.dev/getting-started/docker/

Image
Developer Tools

100K+

🐳 Overview

The easiest way to get started with Ogmios is to use docker. This guide won't cover installing docker, so make sure you have the Docker daemon installed and running.

Ogmios docker images come in two flavours: cardano-node-ogmios and ogmios. The former is used to run a single container that bundles both a Cardano-node and an Ogmios server running side-by-side. It is likely the easiest way to get started. The latter is a standalone Ogmios server, and you'll need to run that container in orchestration with a cardano-node; this is made relatively easy with Docker compose.

Images are uploaded to Dockerhub and are tagged using release versions combined with the supported network name, or with :latest if you're living on the edge. If using the mainnet image you can omit the network name.

imagerepositorytags
cardano-node-ogmioscardanosolutions/cardano-node-ogmioslatest
latest-{NETWORK}
v*.*.*_{CARDANO_NODE_VERSION}
v*.*.*_{CARDANO_NODE_VERSION}-{NETWORK}
ogmioscardanosolutions/ogmioslatest
v*.*.*

Supported NETWORK names:

  • mainnet
  • preview
  • preprod
  • sanchonet

Running (standalone)

Assuming that you have a cardano-node running, with its domain socket (node.socket) available under ./ipc, you may start a standalone Ogmios container as follows:

$ docker run --rm \
  --name ogmios \
  -p 1337:1337 \
  -v ./ipc:/ipc \
  cardanosolutions/ogmios:latest \
    --node-socket /ipc/node.socket \
    --node-config /config/mainnet/cardano-node/config.json \
    --host 0.0.0.0

Note that the --host argument is necessary to bind the server from within the container.

Configuration

Configuration files are available from within the image under /config in folders named after the supported networks.

/config
 ├── mainnet
 │   ├── cardano-node
 │   │   ├── config.json
 │   │   └── topology.json
 │   └── genesis
 │       ├── alonzo.json
 │       ├── byron.json
 │       ├── conway.json
 │       └── shelley.json
 ├── preprod
 │   ├── cardano-node
 │   │   ├── config.json
 │   │   └── topology.json
 │   └── genesis
 │       ├── alonzo.json
 │       ├── byron.json
 │       ├── conway.json
 │       └── shelley.json
 └── preview
     ├── cardano-node
     │   ├── config.json
     │   └── topology.json
     └── genesis
         ├── alonzo.json
         ├── byron.json
         └── shelley.json

Running (docker-compose)

Alternatively, you may use Docker's compose to run either Ogmios standalone, or an orchestration of cardano-node and Ogmios talking to each other. Compose is a handy tool to orchestrate multiple services packaged as containers. It works from a compose file which is available in the project repository, get it via:

$ git clone --depth 1 git@github.com:cardanosolutions/ogmios.git
$ cd cardano-ogmios

Then, starts the components stack using:

$ docker-compose up

👆This will run and connect:

Once finish, tear the stack down using:

$ docker-compose down
Configuration

The compose file allows for minimal (albeit useful) configuration parameters via environment variables:

VariableDescriptionValuesDefault
NETWORKWhich Cardano network to connect to. This impacts both Ogmios and the underlying Cardano node.mainnet, preview, preprod, sanchonetmainnet
OGMIOS_PORTWhich ports to listen to (both for WebSockets and health endpoints)Any valid port number.1337

Need more information? Have a look at the user-guide

Docker Pull Command

docker pull cardanosolutions/ogmios