github.com/mysteriumnetwork/node@v0.0.0-20240516044423-365054f76801/docker-compose.e2e-basic.yml (about) 1 version: '3.0' 2 services: 3 echo: 4 image: mysteriumnetwork/assymmetric-udp-echo:latest 5 expose: 6 - 4589 7 8 morqa: 9 image: mysteriumnetwork/quality-oracle:latest 10 command: > 11 --bind-addr=:8085 12 --prometheus=http://prometheus:9090 13 --metrics-addr=:8080 14 depends_on: 15 - prometheus 16 expose: 17 - 8085 18 - 8080 19 20 prometheus: 21 image: prom/prometheus:v2.10.0 22 volumes: 23 - ./e2e/prometheus:/prometheus 24 command: 25 - '--config.file=/prometheus/config.yml' 26 - '--storage.tsdb.path=data/' 27 expose: 28 - 9090 29 30 ipify: 31 image: mysteriumnetwork/ipify:1.0.1 32 expose: 33 - 3000 34 35 broker-real: 36 image: nats:1.0.4 37 expose: 38 - 4222 39 40 broker: 41 image: mysteriumnetwork/nats-proxy:1.0.1 42 depends_on: 43 - broker-real 44 command: 45 - '-target=broker-real:4222' 46 expose: 47 - 4222 48 49 db: 50 image: postgres:13-alpine 51 container_name: discovery_db 52 ports: 53 - 5432:5432 54 environment: 55 - POSTGRES_USER=discovery 56 - POSTGRES_DB=discovery 57 - POSTGRES_PASSWORD=discovery 58 healthcheck: 59 test: ["CMD-SHELL", "pg_isready -U postgres"] 60 interval: 10s 61 timeout: 5s 62 retries: 5 63 64 discovery-service: 65 image: mysteriumnetwork/discovery:2.18.3 66 expose: 67 - 8081 68 environment: 69 - PORT=8081 70 - DB_DSN=postgresql://discovery:discovery@db:5432/discovery 71 - QUALITY_ORACLE_URL=http://morqa:8085 72 - BROKER_URL=broker 73 - UNIVERSE_JWT_SECRET=suchsecret 74 - REDIS_ADDRESS=redis:6379 75 - BADGER_ADDRESS=http://badger:1234 76 - QUALITY_CACHE_TTL=20m 77 - LOCATION_ADDRESS="badurl" 78 depends_on: 79 - db 80 - redis 81 - http-mock 82 83 discovery: 84 image: nginx:latest 85 expose: 86 - 8080 87 volumes: 88 - ./e2e/nginx/nginx.conf:/etc/nginx/nginx.conf:ro 89 depends_on: 90 - discovery-service 91 - discovery-pricer 92 93 discovery-pricer: 94 image: mysteriumnetwork/discovery-pricer:2.18.3 95 expose: 96 - 8091 97 environment: 98 - PORT=8091 99 - DB_DSN=postgresql://discovery:discovery@db:5432/discovery 100 - QUALITY_ORACLE_URL=http://morqa:8085 101 - BROKER_URL=broker 102 - UNIVERSE_JWT_SECRET=suchsecret 103 - REDIS_ADDRESS=redis:6379 104 - BADGER_ADDRESS=http://badger:1234 105 - QUALITY_CACHE_TTL=20m 106 - LOCATION_ADDRESS="badurl" 107 - SENTINEL_URL="https://sentinel.mysterium.network" 108 depends_on: 109 - db 110 - redis 111 - http-mock 112 113 #private blockchain 114 ganache: 115 image: trufflesuite/ganache:v7.3.2 116 expose: 117 - 8545 118 command: > 119 --chain.chainId 5 --chain.networkId 5 --wallet.mnemonic "amused glory pen avocado toilet dragon entry kitchen cliff retreat canyon danger" 120 121 #private blockchain 122 ganache2: 123 image: trufflesuite/ganache:v7.3.2 124 expose: 125 - 8545 126 command: > 127 --chain.chainId 80001 --chain.networkId 80001 --wallet.mnemonic "amused glory pen avocado toilet dragon entry kitchen cliff retreat canyon danger" 128 129 trust: 130 image: mysteriumnetwork/trust-oracle:latest 131 command: > 132 -swaggerHost=trust 133 -fallbackTrustedIDs=0xc4cb9a91b8498776f6f8a0d5a2a23beec9b3cef3 134 135 http-mock: 136 image: mockserver/mockserver:mockserver-5.15.0 137 ports: 138 - 9999:1080 139 140 transactordatabase: 141 image: postgres:13-alpine 142 expose: 143 - 5432 144 environment: 145 - POSTGRES_USER=transactor 146 - POSTGRES_DB=transactor 147 - POSTGRES_PASSWORD=transactor 148 healthcheck: 149 test: ["CMD-SHELL", "pg_isready -U postgres"] 150 interval: 10s 151 timeout: 5s 152 retries: 5 153 154 transactor-sidecar: 155 image: mysteriumnetwork/transactor-sidecar:3.0.10 156 depends_on: 157 - transactordatabase 158 - redis 159 - http-mock 160 command: > 161 /usr/bin/sidecar 162 -configPaths=/transactor/sidecar_config.yaml 163 volumes: 164 - ./e2e/transactor:/transactor 165 166 transactor: 167 image: mysteriumnetwork/transactor:3.0.10 168 environment: 169 PORT: 8888 170 expose: 171 - 8888 172 depends_on: 173 - ganache 174 - ganache2 175 - transactordatabase 176 - redis 177 - http-mock 178 - transactor-sidecar 179 command: > 180 -configPaths=/transactor/config.yaml 181 volumes: 182 - ./e2e/blockchain/keystore:/keystore 183 - ./e2e/transactor:/transactor 184 185 redis: 186 image: bitnami/redis:6.2.14 187 container_name: 'hermes_redis' 188 expose: 189 - 6379 190 environment: 191 - ALLOW_EMPTY_PASSWORD=yes 192 193 mongodb: 194 image: 'mongo:4.2.3' 195 container_name: 'hermes_mongo' 196 environment: 197 - MONGO_INITDB_ROOT_PASSWORD=root 198 - MONGO_INITDB_ROOT_USERNAME=root 199 - MONGO_INITDB_DATABASE=admin 200 - MONGO_NON_ROOT_USERNAME=hermes 201 - MONGO_NON_ROOT_PASSWORD=hermes 202 - MONGO_REPLICA_SET_NAME=rs0 203 expose: 204 - 27017 205 - 27018 206 - 27019 207 volumes: 208 - ./e2e/mongo-init.e2e.js:/docker-entrypoint-initdb.d/mongo-init.js:ro 209 command: ["mongod", "--replSet", "rs0"] 210 healthcheck: 211 test: 'test $$(echo "rs.initiate({_id: \"rs0\",version: 1,members: [{ _id: 0, host : \"mongodb:27017\" }]}).ok || rs.status().ok" | mongo -u root -p root --quiet) -eq 1' 212 interval: 5s 213 start_period: 5s 214 215 hermes: 216 image: mysteriumnetwork/hermes:2.3.17 217 environment: 218 PORT: 8889 219 LOG_LEVEL: trace 220 expose: 221 - 8889 222 depends_on: 223 - ganache 224 - redis 225 - mongodb 226 - ganache2 227 - transactor 228 - pilvytis-mock 229 command: > 230 -identityPassphrase "" 231 -Chain1Myst 0xaa9c4e723609cb913430143fbc86d3cbe7adca21 232 -Chain1RPCEndpoint http://ganache:8545 233 -transactorBaseUri "http://transactor:8888/api/v1/" 234 -Chain1ChainID 5 235 -Chain1chImplementation 0x599d43715df3070f83355d9d90ae62c159e62a75 236 -Chain1Registry 0x427c2bad22335710aec5e477f3e3adcd313a9bcb 237 -Chain1HermesAddress 0x241f6e1d0bb17f45767dc60a6bd3d21cdb543a0c 238 -Chain2Myst 0xaa9c4e723609cb913430143fbc86d3cbe7adca21 239 -Chain2RPCEndpoint ws://ganache2:8545 240 -Chain2ChainID 80001 241 -Chain2chImplementation 0x599d43715df3070f83355d9d90ae62c159e62a75 242 -Chain2Registry 0x427c2bad22335710aec5e477f3e3adcd313a9bcb 243 -Chain2HermesAddress 0x241f6e1d0bb17f45767dc60a6bd3d21cdb543a0c 244 -operator 0x354bd098b4ef8c9e70b7f21be2d455df559705d7 245 -keystoreDir /keystore 246 -bcDataRefreshInterval 1ns 247 -MongoUser hermes 248 -MongoPass hermes 249 -MongoReplSet rs0 250 -MongoHost "mongodb:27017" 251 -MongoDatabase hermes 252 -MongoReplSet "" 253 -redisAddress "redis:6379" 254 -bindAddr="0.0.0.0:8889" 255 -pilvytisBaseURL http://pilvytis-mock:8080 256 volumes: 257 - ./e2e/blockchain/keystore:/keystore 258 259 pilvytis-mock: 260 image: wiremock/wiremock:2.32.0 261 expose: 262 - 8080 263 volumes: 264 - ./e2e/pilvytis:/home/wiremock 265 266 hermes2: 267 image: mysteriumnetwork/hermes:3.3.15 268 environment: 269 LOG_LEVEL: trace 270 expose: 271 - 8889 272 depends_on: 273 - ganache 274 - ganache2 275 - redis 276 - transactor 277 command: > 278 -configPaths=/hermes/config.yaml 279 volumes: 280 - ./e2e/blockchain/keystore:/keystore 281 - ./e2e/hermes:/hermes 282 283 myst-provider: 284 build: 285 context: . 286 dockerfile: ./bin/docker/alpine-prebuilt/Dockerfile 287 depends_on: 288 - broker 289 - discovery 290 - ipify 291 - transactor 292 - hermes 293 - hermes2 294 - morqa 295 - trust 296 cap_add: 297 - NET_ADMIN 298 devices: 299 - /dev/net/tun 300 expose: 301 - 1194 302 - 4050 303 volumes: 304 - ./e2e/myst-provider/keystore:/var/lib/mysterium-node/keystore 305 command: > 306 --discovery.ping=1s 307 --discovery.fetch=1s 308 --chains.1.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21 309 --chains.1.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb 310 --chains.1.chainID=5 311 --chains.1.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75 312 --chains.1.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3 313 --chains.1.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3 314 --chains.1.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 315 --chains.2.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21 316 --chains.2.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb 317 --chains.2.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75 318 --chains.2.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3 319 --chains.2.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3 320 --chains.2.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 321 --chains.2.chainID=80001 322 --chain-id=80001 323 --ether.client.rpcl2=ws://ganache2:8545 324 --ether.client.rpcl1=http://ganache:8545 325 --ip-detector=http://ipify:3000/?format=json 326 --location.type=manual 327 --location.country=e2e-land 328 --firewall.protected.networks="" 329 --broker-address=broker 330 --tequilapi.address=0.0.0.0 331 --tequilapi.allowed-hostnames=. 332 --discovery.address=http://discovery:8080/api/v4 333 --transactor.address=http://transactor:8888/api/v1 334 --keystore.lightweight 335 --log-level=debug 336 --quality.address=http://morqa:8085/api/v3 337 --payments.provider.invoice-frequency=1s 338 --access-policy.address=http://trust:8080/api/v1/access-policies/ 339 --access-policy.fetch=1s 340 --stun-servers="" 341 --local-service-discovery=true 342 --payments.hermes.settle.check-interval=1s 343 --payments.registry-transactor-poll.interval=1s 344 --observer.address="" 345 service 346 --agreed-terms-and-conditions 347 --identity=0xd1a23227bd5ad77f36ba62badcb78a410a1db6c5 348 --identity.passphrase=localprovider 349 --openvpn.port=3000 350 --active-services=openvpn,noop,wireguard 351 352 myst-consumer-noop: 353 build: 354 context: . 355 dockerfile: ./bin/docker/alpine-prebuilt/Dockerfile 356 volumes: 357 - ./e2e/myst-consumer/keystore/remember.json:/var/lib/mysterium-node/keystore/remember.json 358 - ./e2e/myst-consumer/keystore/UTC--2020-07-31T02-37-15.148642000Z--c4cb9a91b8498776f6f8a0d5a2a23beec9b3cef3:/var/lib/mysterium-node/keystore/UTC--2020-07-31T02-37-15.148642000Z--c4cb9a91b8498776f6f8a0d5a2a23beec9b3cef3 359 sysctls: 360 - net.ipv6.conf.all.disable_ipv6=0 361 depends_on: 362 - broker 363 - discovery 364 - ipify 365 - transactor 366 - hermes 367 - myst-provider 368 - morqa 369 cap_add: 370 - NET_ADMIN 371 expose: 372 - 4050 373 command: > 374 --discovery.ping=1s 375 --discovery.fetch=1s 376 --discovery.type api --discovery.type broker 377 --chains.1.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21 378 --chains.1.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb 379 --chains.1.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3 380 --chains.1.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3 381 --chains.1.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 382 --transactor.address=http://transactor:8888/api/v1 383 --chains.1.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75 384 --chains.2.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21 385 --chains.2.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb 386 --chains.2.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75 387 --chains.2.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3 388 --chains.2.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3 389 --chains.2.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 390 --chains.2.chainID=80001 391 --chain-id=80001 392 --ip-detector=http://ipify:3000/?format=json 393 --location.type=manual 394 --log-level=debug 395 --broker-address=broker 396 --tequilapi.address=0.0.0.0 397 --tequilapi.allowed-hostnames=. 398 --discovery.address=http://discovery:8080/api/v4 399 --ether.client.rpcl2=ws://ganache2:8545 400 --ether.client.rpcl1=http://ganache:8545 401 --keystore.lightweight 402 --firewall.killSwitch.always 403 --quality.address=http://morqa:8085/api/v3 404 --stun-servers="" 405 --local-service-discovery=true 406 --payments.registry-transactor-poll.interval=1s 407 --port-check-servers="echo:4589" 408 --observer.address="" 409 daemon 410 411 myst-consumer-hermes2: 412 build: 413 context: . 414 dockerfile: ./bin/docker/alpine-prebuilt/Dockerfile 415 sysctls: 416 - net.ipv6.conf.all.disable_ipv6=0 417 depends_on: 418 - broker 419 - discovery 420 - ipify 421 - transactor 422 - hermes2 423 - myst-provider 424 - morqa 425 cap_add: 426 - NET_ADMIN 427 devices: 428 - /dev/net/tun 429 command: > 430 --discovery.ping=1s 431 --discovery.fetch=1s 432 --chains.1.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21 433 --chains.1.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb 434 --chains.1.hermes=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 435 --chains.1.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3,0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 436 --transactor.address=http://transactor:8888/api/v1 437 --chains.1.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75 438 --chains.2.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21 439 --chains.2.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb 440 --chains.2.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75 441 --chains.2.hermes=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 442 --chains.2.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3,0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 443 --chains.2.chainID=80001 444 --chain-id=80001 445 --ip-detector=http://ipify:3000/?format=json 446 --location.type=manual 447 --log-level=debug 448 --broker-address=broker 449 --tequilapi.address=0.0.0.0 450 --tequilapi.allowed-hostnames=. 451 --discovery.address=http://discovery:8080/api/v4 452 --ether.client.rpcl2=ws://ganache2:8545 453 --ether.client.rpcl1=http://ganache:8545 454 --keystore.lightweight 455 --firewall.killSwitch.always 456 --quality.address=http://morqa:8085/api/v3 457 --stun-servers="" 458 --local-service-discovery=true 459 --payments.registry-transactor-poll.interval=1s 460 --port-check-servers="echo:4589" 461 --observer.address="" 462 daemon 463 464 myst-consumer-openvpn: 465 build: 466 context: . 467 dockerfile: ./bin/docker/alpine-prebuilt/Dockerfile 468 sysctls: 469 - net.ipv6.conf.all.disable_ipv6=0 470 depends_on: 471 - broker 472 - discovery 473 - ipify 474 - transactor 475 - hermes 476 - myst-provider 477 - morqa 478 cap_add: 479 - NET_ADMIN 480 devices: 481 - /dev/net/tun 482 command: > 483 --discovery.ping=1s 484 --discovery.fetch=1s 485 --chains.1.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21 486 --chains.1.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb 487 --chains.1.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3 488 --chains.1.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3 489 --chains.1.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 490 --transactor.address=http://transactor:8888/api/v1 491 --chains.1.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75 492 --chains.2.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21 493 --chains.2.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb 494 --chains.2.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75 495 --chains.2.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3 496 --chains.2.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3 497 --chains.2.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 498 --chains.2.chainID=80001 499 --chain-id=80001 500 --ip-detector=http://ipify:3000/?format=json 501 --location.type=manual 502 --log-level=debug 503 --broker-address=broker 504 --tequilapi.address=0.0.0.0 505 --tequilapi.allowed-hostnames=. 506 --discovery.address=http://discovery:8080/api/v4 507 --ether.client.rpcl2=ws://ganache2:8545 508 --ether.client.rpcl1=http://ganache:8545 509 --keystore.lightweight 510 --firewall.killSwitch.always 511 --quality.address=http://morqa:8085/api/v3 512 --stun-servers="" 513 --local-service-discovery=true 514 --payments.registry-transactor-poll.interval=1s 515 --port-check-servers="echo:4589" 516 --observer.address="" 517 daemon 518 519 myst-consumer-wireguard: 520 build: 521 context: . 522 dockerfile: ./bin/docker/alpine-prebuilt/Dockerfile 523 depends_on: 524 - broker 525 - discovery 526 - ipify 527 - transactor 528 - hermes 529 - myst-provider 530 - morqa 531 cap_add: 532 - NET_ADMIN 533 devices: 534 - /dev/net/tun 535 sysctls: 536 - net.ipv6.conf.all.disable_ipv6=0 537 command: > 538 --discovery.ping=1s 539 --discovery.fetch=1s 540 --chains.1.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21 541 --chains.1.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb 542 --chains.1.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3 543 --transactor.address=http://transactor:8888/api/v1 544 --chains.1.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75 545 --chains.1.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3 546 --chains.1.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 547 --chains.2.myst=0xaa9c4e723609cb913430143fbc86d3cbe7adca21 548 --chains.2.registry=0x427c2bad22335710aec5e477f3e3adcd313a9bcb 549 --chains.2.channelImplementation=0x599d43715df3070f83355d9d90ae62c159e62a75 550 --chains.2.hermes=0xd68defb97d0765741f8ecf179df2f9564e1466a3 551 --chains.2.knownHermeses=0xd68defb97d0765741f8ecf179df2f9564e1466a3 552 --chains.2.knownHermeses=0xfd63dc49c7163d82d6f0a4c23ff13216d702ce50 553 --chains.2.chainID=80001 554 --chain-id=80001 555 --ip-detector=http://ipify:3000/?format=json 556 --location.type=manual 557 --log-level=debug 558 --broker-address=broker 559 --tequilapi.address=0.0.0.0 560 --tequilapi.allowed-hostnames=. 561 --discovery.address=http://discovery:8080/api/v4 562 --ether.client.rpcl2=ws://ganache2:8545 563 --ether.client.rpcl1=http://ganache:8545 564 --keystore.lightweight 565 --firewall.killSwitch.always 566 --quality.address=http://morqa:8085/api/v3 567 --stun-servers="" 568 --local-service-discovery=true 569 --payments.registry-transactor-poll.interval=1s 570 --port-check-servers="echo:4589" 571 --observer.address="" 572 daemon 573 574 #go runner to run go programs inside localnet (usefull for contract deployment or e2e test running) 575 go-runner: 576 build: 577 context: . 578 dockerfile: ./e2e/gorunner/Dockerfile.precompiled 579 cap_add: 580 - NET_ADMIN 581 volumes: 582 - ./e2e/blockchain/keystore:/node/keystore 583 working_dir: /node