YAML file settings for multi-node launch

I ask knowledgeable people to comment on the example of my config file. Perhaps something should be added to it or, on the contrary, removed.

version: "3.8"

services:
  node-30001:
    image: storjlabs/storagenode:latest
    container_name: node-30001
    restart: unless-stopped
    privileged: true
    stop_grace_period: 300s
    logging:
      options:
        max-size: "300m"
        max-file: "3"
    ports:
      - "10.50.6.195:30001:28967/tcp"
      - "10.50.6.195:30001:28967/udp"
      - "10.50.6.195:15001:14002"
    environment:
      - WALLET=0x0AE7C6F8Aeb4A553ac3DD5034e7b14D***
      - EMAIL=*@gmail.com
      - ADDRESS=node-30001.pve01.***.ru:30001
      - BANDWIDTH=5000TB
      - STORAGE=7TB
      - TZ=Asia/Yekaterinburg
    user: "${UID}:${GID}"
    volumes:
      - type: bind
        source: /disk001/node-30001-identity
        target: /app/identity
      - type: bind
        source: /disk001/node-30001
        target: /app/config
    command: --operator.wallet-features=zksync-era,zksync

  node-30002:
    image: storjlabs/storagenode:latest
    container_name: node-30002
    restart: unless-stopped
    privileged: true
    stop_grace_period: 300s
    logging:
      options:
        max-size: "300m"
        max-file: "3"
    ports:
      - "10.50.6.195:30002:28967/tcp"
      - "10.50.6.195:30002:28967/udp"
      - "10.50.6.195:15002:14002"
    environment:
      - WALLET=0x0AE7C6F8Aeb4A553ac3DD5034e7b14D***
      - EMAIL=*@gmail.com
      - ADDRESS=node-30002.pve01.***.ru:30002
      - BANDWIDTH=5000TB
      - STORAGE=7TB
      - TZ=Asia/Yekaterinburg
    user: "${UID}:${GID}"
    volumes:
      - type: bind
        source: /disk002/node-30002-identity
        target: /app/identity
      - type: bind
        source: /disk002/node-30002
        target: /app/config
    command: --operator.wallet-features=zksync-era,zksync
1 Like

Hello @snemirov ,

Welcome to the Forum !
I’ve forwarded you question internally and someone will take a look.

Edit: they said it looks fine.
Let’s see what other Forum members think. Always open to more ideas.

2 Likes

usually not needed

I think it’s too low, but well, it’s better than the default 20m x 5.

This is not needed. But you could use it.

You can remove zksync, it will falling back to ETH, if it would be used.

Also, I do not see a watchtower in your docker-compose.yaml

 watchtower:
    container_name: watchtower
    image: storjlabs/watchtower:latest
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: node-30001 node-30002 watchtower --stop-timeout 300s

Also, I believe, that

can be removed as well, if you use a docker compose command, not the docker-compose command (they are different).

Thank you for your answer! I plan to use Docker Compose, specifically the latest version.
I’ve never written Compose files before. I ended up with something like this. Will the nodes start?

services:
  node-30001:
    image: storjlabs/storagenode:latest
    container_name: node-30001
    restart: unless-stopped
    stop_grace_period: 300s
    logging:
      options:
        max-size: "500m"
        max-file: "5"
    ports:
      - "10.50.6.195:30001:28967/tcp"
      - "10.50.6.195:30001:28967/udp"
      - "10.50.6.195:15001:14002"
    environment:
      - WALLET=0x0AE7C6F8Aeb4A553ac3DD5034e7b14D***
      - EMAIL=***@gmail.com
      - ADDRESS=node-30001.pve01.***.ru:30001
      - BANDWIDTH=5000TB
      - STORAGE=7TB
      - TZ=Asia/Yekaterinburg
    user: "${UID}:${GID}"
    volumes:
      - type: bind
        source: /disk001/node-30001-identity
        target: /app/identity
      - type: bind
        source: /disk001/node-30001
        target: /app/config
    command: --operator.wallet-features=zksync-era

  node-30002:
    image: storjlabs/storagenode:latest
    container_name: node-30002
    restart: unless-stopped
    stop_grace_period: 300s
    logging:
      options:
        max-size: "500m"
        max-file: "5"
    ports:
      - "10.50.6.195:30002:28967/tcp"
      - "10.50.6.195:30002:28967/udp"
      - "10.50.6.195:15002:14002"
    environment:
      - WALLET=0x0AE7C6F8Aeb4A553ac3DD5034e7b14D***
      - EMAIL=***@gmail.com
      - ADDRESS=node-30002.pve01.***.ru:30002
      - BANDWIDTH=5000TB
      - STORAGE=7TB
      - TZ=Asia/Yekaterinburg
    user: "${UID}:${GID}"
    volumes:
      - type: bind
        source: /disk002/node-30002-identity
        target: /app/identity
      - type: bind
        source: /disk002/node-30002
        target: /app/config
    command: --operator.wallet-features=zksync-era
  watchtower:
    container_name: watchtower
    image: storjlabs/watchtower:latest
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: node-30001 node-30002 watchtower --stop-timeout 300s
2 Likes

it’s better not to disclose your wallet and address, you never know…
and the IP, if it is fixed

4 Likes

I think the BANDWIDTH environment variable is obsolete

2 Likes

@PieceKeeper absolutely right - the BANDWIDTH will be ignored, it will use everything what you have.

2 Likes