193 lines
6.7 KiB
YAML
193 lines
6.7 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
bootstrap:
|
|
container_name: bootstrap
|
|
build:
|
|
context: .
|
|
dockerfile: testnet/Dockerfile
|
|
image: nomos:latest
|
|
ports:
|
|
- "3000:3000/udp"
|
|
- "18080:18080/tcp"
|
|
volumes:
|
|
- ./testnet:/etc/nomos
|
|
depends_on:
|
|
- graylog
|
|
environment:
|
|
- BOOTSTRAP_NODE_KEY=${DOCKER_COMPOSE_BOOSTRAP_NET_NODE_KEY:-1000000000000000000000000000000000000000000000000000000000000000}
|
|
- LIBP2P_NODE_MASK=${DOCKER_COMPOSE_LIBP2P_NODE_KEY_MASK:-2000000000000000000000000000000000000000000000000000000000000000}
|
|
- LIBP2P_REPLICAS=3
|
|
- OVERLAY_NODES=${DOCKER_COMPOSE_OVERLAY_NODES:-1000000000000000000000000000000000000000000000000000000000000000}
|
|
entrypoint: /etc/nomos/scripts/run_bootstrap_node.sh
|
|
|
|
libp2p-node-1:
|
|
container_name: libp2p_node_1
|
|
image: nomos:latest
|
|
volumes:
|
|
- ./testnet:/etc/nomos
|
|
depends_on:
|
|
- bootstrap
|
|
- etcd
|
|
- graylog
|
|
ports:
|
|
- "3001:3000/udp"
|
|
- "18081:18080/tcp"
|
|
environment:
|
|
- LIBP2P_REPLICAS=3
|
|
- ETCDCTL_ENDPOINTS=${DOCKER_COMPOSE_ETCDCTL_ENDPOINTS:-etcd:2379}
|
|
- ETCDCTL_API=${DOCKER_COMPOSE_ETCDCTL_API:-3}
|
|
- LIBP2P_NODE_MASK=${DOCKER_COMPOSE_LIBP2P_NODE_KEY_MASK:-2000000000000000000000000000000000000000000000000000000000000000}
|
|
- OVERLAY_NODES=${DOCKER_COMPOSE_OVERLAY_NODES:-1000000000000000000000000000000000000000000000000000000000000000}
|
|
- OVERLAY_SUPER_MAJORITY_THRESHOLD=${DOCKER_COMPOSE_SUPER_MAJORITY_THRESHOLD:-1}
|
|
- NET_INITIAL_PEERS=${DOCKER_COMPOSE_NET_INITIAL_PEERS:-/dns/bootstrap/udp/3000/quic-v1}
|
|
entrypoint: /etc/nomos/scripts/run_nomos_node.sh
|
|
|
|
libp2p-node-2:
|
|
container_name: libp2p_node_2
|
|
image: nomos:latest
|
|
volumes:
|
|
- ./testnet:/etc/nomos
|
|
depends_on:
|
|
- bootstrap
|
|
- etcd
|
|
- graylog
|
|
ports:
|
|
- "3002:3000/udp"
|
|
- "18082:18080/tcp"
|
|
environment:
|
|
- LIBP2P_REPLICAS=3
|
|
- ETCDCTL_ENDPOINTS=${DOCKER_COMPOSE_ETCDCTL_ENDPOINTS:-etcd:2379}
|
|
- ETCDCTL_API=${DOCKER_COMPOSE_ETCDCTL_API:-3}
|
|
- LIBP2P_NODE_MASK=${DOCKER_COMPOSE_LIBP2P_NODE_KEY_MASK:-2000000000000000000000000000000000000000000000000000000000000000}
|
|
- OVERLAY_NODES=${DOCKER_COMPOSE_OVERLAY_NODES:-1000000000000000000000000000000000000000000000000000000000000000}
|
|
- OVERLAY_SUPER_MAJORITY_THRESHOLD=${DOCKER_COMPOSE_SUPER_MAJORITY_THRESHOLD:-1}
|
|
- NET_INITIAL_PEERS=${DOCKER_COMPOSE_NET_INITIAL_PEERS:-/dns/bootstrap/udp/3000/quic-v1}
|
|
entrypoint: /etc/nomos/scripts/run_nomos_node.sh
|
|
|
|
libp2p-node-3:
|
|
container_name: libp2p_node_3
|
|
image: nomos:latest
|
|
volumes:
|
|
- ./testnet:/etc/nomos
|
|
depends_on:
|
|
- bootstrap
|
|
- etcd
|
|
- graylog
|
|
ports:
|
|
- "3003:3000/udp"
|
|
- "18083:18080/tcp"
|
|
environment:
|
|
- LIBP2P_REPLICAS=3
|
|
- ETCDCTL_ENDPOINTS=${DOCKER_COMPOSE_ETCDCTL_ENDPOINTS:-etcd:2379}
|
|
- ETCDCTL_API=${DOCKER_COMPOSE_ETCDCTL_API:-3}
|
|
- LIBP2P_NODE_MASK=${DOCKER_COMPOSE_LIBP2P_NODE_KEY_MASK:-2000000000000000000000000000000000000000000000000000000000000000}
|
|
- OVERLAY_NODES=${DOCKER_COMPOSE_OVERLAY_NODES:-1000000000000000000000000000000000000000000000000000000000000000}
|
|
- OVERLAY_SUPER_MAJORITY_THRESHOLD=${DOCKER_COMPOSE_SUPER_MAJORITY_THRESHOLD:-1}
|
|
- NET_INITIAL_PEERS=${DOCKER_COMPOSE_NET_INITIAL_PEERS:-/dns/bootstrap/udp/3000/quic-v1}
|
|
entrypoint: /etc/nomos/scripts/run_nomos_node.sh
|
|
|
|
chatbot:
|
|
container_name: chatbot
|
|
image: nomos:latest
|
|
volumes:
|
|
- ./testnet:/etc/nomos
|
|
entrypoint: /etc/nomos/scripts/run_nomos_bot.sh
|
|
|
|
etcd:
|
|
container_name: etcd
|
|
image: quay.io/coreos/etcd:v3.4.15
|
|
ports:
|
|
- "2379:2379/tcp"
|
|
command:
|
|
- /usr/local/bin/etcd
|
|
- --advertise-client-urls=http://etcd:2379
|
|
- --listen-client-urls=http://0.0.0.0:2379
|
|
|
|
prometheus:
|
|
container_name: prometheus
|
|
image: prom/prometheus:latest
|
|
volumes:
|
|
- ./testnet/monitoring/prometheus-config.yml:/etc/prometheus/prometheus.yml:z
|
|
command:
|
|
- --config.file=/etc/prometheus/prometheus.yml
|
|
- --storage.tsdb.retention.time=7d
|
|
ports:
|
|
- 127.0.0.1:9090:9090
|
|
restart: on-failure
|
|
|
|
grafana:
|
|
container_name: grafana
|
|
image: grafana/grafana:latest
|
|
env_file:
|
|
- ./testnet/monitoring/grafana/plugins.env
|
|
volumes:
|
|
- ./testnet/monitoring/grafana/grafana.ini:/etc/grafana/grafana.ini:z
|
|
- ./testnet/monitoring/grafana/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml:z
|
|
ports:
|
|
- 9091:3000
|
|
restart: on-failure
|
|
depends_on:
|
|
- prometheus
|
|
|
|
# Graylog related configuration
|
|
# More information at https://github.com/Graylog2/docker-compose/blob/main/open-core/docker-compose.yml
|
|
mongodb:
|
|
image: "mongo:5.0"
|
|
volumes:
|
|
- "mongodb_data:/data/db"
|
|
restart: "on-failure"
|
|
|
|
datanode:
|
|
image: "${DATANODE_IMAGE:-graylog/graylog-datanode:5.2}"
|
|
hostname: "datanode"
|
|
environment:
|
|
GRAYLOG_DATANODE_NODE_ID_FILE: "/var/lib/graylog-datanode/node-id"
|
|
GRAYLOG_DATANODE_PASSWORD_SECRET: "${GRAYLOG_PASSWORD_SECRET:?Please configure GRAYLOG_PASSWORD_SECRET in the .env file}"
|
|
GRAYLOG_DATANODE_ROOT_PASSWORD_SHA2: "${GRAYLOG_ROOT_PASSWORD_SHA2:?Please configure GRAYLOG_ROOT_PASSWORD_SHA2 in the .env file}"
|
|
GRAYLOG_DATANODE_MONGODB_URI: "mongodb://mongodb:27017/graylog"
|
|
ulimits:
|
|
memlock:
|
|
hard: -1
|
|
soft: -1
|
|
nofile:
|
|
soft: 65536
|
|
hard: 65536
|
|
ports:
|
|
- "8999:8999/tcp" # DataNode API
|
|
- "9200:9200/tcp"
|
|
- "9300:9300/tcp"
|
|
volumes:
|
|
- "graylog-datanode:/var/lib/graylog-datanode"
|
|
restart: "on-failure"
|
|
|
|
graylog:
|
|
image: "${GRAYLOG_IMAGE:-graylog/graylog:5.2}"
|
|
depends_on:
|
|
mongodb:
|
|
condition: "service_started"
|
|
entrypoint: "/usr/bin/tini -- /docker-entrypoint.sh"
|
|
environment:
|
|
GRAYLOG_NODE_ID_FILE: "/usr/share/graylog/data/data/node-id"
|
|
GRAYLOG_PASSWORD_SECRET: "${GRAYLOG_PASSWORD_SECRET:?Please configure GRAYLOG_PASSWORD_SECRET in the .env file}"
|
|
GRAYLOG_ROOT_PASSWORD_SHA2: "${GRAYLOG_ROOT_PASSWORD_SHA2:?Please configure GRAYLOG_ROOT_PASSWORD_SHA2 in the .env file}"
|
|
GRAYLOG_HTTP_BIND_ADDRESS: "0.0.0.0:9000"
|
|
GRAYLOG_HTTP_EXTERNAL_URI: "http://localhost:9000/"
|
|
GRAYLOG_MONGODB_URI: "mongodb://mongodb:27017/graylog"
|
|
ports:
|
|
- "9000:9000/tcp" # Server API
|
|
- "12201:12201/tcp" # GELF TCP
|
|
- "12201:12201/udp" # GELF UDP
|
|
volumes:
|
|
- "graylog_data:/usr/share/graylog/data/data"
|
|
- "graylog_journal:/usr/share/graylog/data/journal"
|
|
- ./testnet/monitoring/graylog.conf:/usr/share/graylog/data/config/graylog.conf
|
|
restart: "on-failure"
|
|
|
|
|
|
volumes:
|
|
mongodb_data:
|
|
graylog-datanode:
|
|
graylog_data:
|
|
graylog_journal:
|