|
|
|
volumes:
|
|
|
|
grafana:
|
|
|
|
prometheus:
|
|
|
|
|
|
|
|
x-log-config: &log-config
|
|
|
|
logging:
|
|
|
|
driver: json-file
|
|
|
|
options:
|
|
|
|
max-size: "50m"
|
|
|
|
max-file: "20"
|
|
|
|
|
|
|
|
services:
|
|
|
|
prometheus:
|
|
|
|
image: prom/prometheus:${PROM_TAG:-v2.36.0}
|
|
|
|
command:
|
|
|
|
- --config.file=/etc/prometheus/config.yaml
|
|
|
|
- --storage.tsdb.path=/prometheus
|
|
|
|
- --storage.tsdb.retention.time=${PROM_RETENTION:-360d}
|
|
|
|
container_name: monerod_prometheus
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
exporter:
|
|
|
|
condition: service_started
|
|
|
|
# ports:
|
|
|
|
# - 127.0.0.1:9090:9090
|
|
|
|
volumes:
|
|
|
|
- prometheus:/prometheus
|
|
|
|
- ./files/prometheus/config.yaml:/etc/prometheus/config.yaml:ro
|
|
|
|
<<: *log-config
|
|
|
|
grafana:
|
|
|
|
user: "1000"
|
|
|
|
command:
|
|
|
|
- -config=/etc/grafana/grafana.ini
|
|
|
|
container_name: monerod_grafana
|
|
|
|
restart: unless-stopped
|
|
|
|
image: grafana/grafana:${GRAFANA_TAG:-10.1.4}
|
|
|
|
ports:
|
|
|
|
- 127.0.0.1:${GRAF_PORT:-3000}:3000
|
|
|
|
volumes:
|
|
|
|
- grafana:/var/lib/grafana
|
|
|
|
- ./files/grafana/grafana.ini:/etc/grafana/grafana.ini:ro
|
|
|
|
- ./files/grafana/provisioning:/etc/grafana/provisioning:ro
|
|
|
|
- ./files/grafana/dashboards:/var/lib/grafana/dashboards:ro
|
|
|
|
environment:
|
|
|
|
HOSTNAME: grafana
|
|
|
|
GF_SERVER_ROOT_URL: ${GRAFANA_URL}
|
|
|
|
GF_ANALYTICS_REPORTING_ENABLED: "false"
|
|
|
|
GF_ANALYTICS_CHECK_FOR_UPDATES: "false"
|
|
|
|
GF_USERS_ALLOW_SIGN_UP: "false"
|
|
|
|
GF_USERS_ALLOW_ORG_CREATE: "false"
|
|
|
|
GF_LOG_LEVEL: "debug"
|
|
|
|
GF_AUTH_ANONYMOUS_ENABLED: "${GF_AUTH_ANONYMOUS_ENABLED:-true}"
|
|
|
|
GF_AUTH_BASIC_ENABLED: "${GF_AUTH_BASIC_ENABLED:-false}"
|
|
|
|
GF_AUTH_DISABLE_LOGIN_FORM: "${GF_AUTH_DISABLE_LOGIN_FORM:-true}"
|
|
|
|
GF_SECURITY_ADMIN_PASSWORD: "${GF_SECURITY_ADMIN_PASSWORD}"
|
|
|
|
GF_SECURITY_ADMIN_USER: "${GF_SECURITY_ADMIN_USER}"
|
|
|
|
<<: *log-config
|
|
|
|
exporter:
|
|
|
|
container_name: monerod_exporter
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: dockerfiles/exporter
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
monerod:
|
|
|
|
condition: service_started
|
|
|
|
# ports:
|
|
|
|
# - 127.0.0.1:9000:9000
|
|
|
|
command:
|
|
|
|
- --monero-addr=http://monerod:${UNRESTRICTED_PORT:-18083}
|
|
|
|
<<: *log-config
|
|
|
|
nodemapper:
|
|
|
|
container_name: monerod_nodemapper
|
|
|
|
restart: unless-stopped
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: dockerfiles/nodemapper
|
|
|
|
depends_on:
|
|
|
|
monerod:
|
|
|
|
condition: service_started
|
|
|
|
environment:
|
|
|
|
NODE_HOST: monerod
|
|
|
|
NODE_PORT: 18083
|
|
|
|
# ports:
|
|
|
|
# - 127.0.0.1:${MAPPER_PORT:-5000}:5000
|
|
|
|
<<: *log-config
|
|
|
|
tor:
|
|
|
|
container_name: monerod_tor
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: dockerfiles/tor
|
|
|
|
restart: unless-stopped
|
|
|
|
# ports:
|
|
|
|
# - 127.0.0.1:9050:9050
|
|
|
|
<<: *log-config
|
|
|
|
i2p:
|
|
|
|
container_name: monerod_i2p
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: dockerfiles/i2p
|
|
|
|
restart: unless-stopped
|
|
|
|
# ports:
|
|
|
|
# - 127.0.0.1:4444:4444
|
|
|
|
<<: *log-config
|
|
|
|
monerod:
|
|
|
|
container_name: monerod
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: dockerfiles/monero
|
|
|
|
restart: unless-stopped
|
|
|
|
depends_on:
|
|
|
|
tor:
|
|
|
|
condition: service_started
|
|
|
|
i2p:
|
|
|
|
condition: service_started
|
|
|
|
volumes:
|
|
|
|
- ${DATA_DIR:-./data}:/data
|
|
|
|
ports:
|
|
|
|
- ${P2P_PORT:-18080}:18080 # p2p
|
|
|
|
- ${RESTRICTED_PORT:-18081}:18081 # restricted rpc
|
|
|
|
- 127.0.0.1:${ZMQ_PORT:-18082}:18082 # zmq
|
|
|
|
- 127.0.0.1:${UNRESTRICTED_PORT:-18083}:18083 # unrestricted rpc
|
|
|
|
command:
|
|
|
|
/entrypoint.sh
|
|
|
|
<<: *log-config
|