Node config.yaml variables not working properly

I have encountered that these variables where not working since 1,72 if I am not mistaken using docker container with docker-compose.
console.address: does not change the Port
storage.allocated-disk-space: Does not work defaulting to 1GB

I have to use environment variables for these to work.

ATM I do not know if filestore.write-buffer-size: also works only from config file.

You should be able to specify these config values either directly with the docker command or with docker-compose. Can you share your docker-compose file?

console.address you should provide as an argument (with --) in your command: clause, the storage.allocated-disk-space: option should be provided as environment variable STORAGE.
I.e.

version: "3.7"
services:
  storagenode2:
    container_name: storagenode2
    restart: always
    stop_grace_period: 300s
    image: storjlabs/storagenode:latest
    ports:
      - "28969:28967/tcp"
      - "28969:28967/udp"
      - "14003:14003"
    volumes:
      - type: bind
        source: /mnt/storj/storagenode2/identity
        target: /app/identity
      - type: bind
        source: /mnt/storj//storagenode2
        target: /app/config
    environment:
      - WALLET=0x...
      - EMAIL=yyyy@zzz
      - ADDRESS=xxx:28969
      - STORAGE=7TB
    command:
      - "--operator.wallet-features=zksync"
      - "--console.address: 14003"
1 Like

I know I can pass them in the command section of docker compose, that’s how I have it right now, I am just reporting they don’t work on the config.yaml, so you pass the command arguments instead of having just the config file.

wallet-features work if set in the config.yaml

The parameters in the docker run command have a precedence above parameters in the config.yaml, especially required ones such as -e STORAGE, the console.address: is hardcoded in the entrypoint script, so you must provide it as an argument to override the hardcode.
See

1 Like

Thanks for the answer, that makes it very clear, the ENV variables are set in the docker file so the entrypoint forces the values.

A sugestion, maybe an ENV FORCE_CONFIG to bypass the entrypoint from using run params and use the config file instead?
It makes docker commands and docker files much smaller and cleaner.

Also it makes it seems that the entrypoint impossible to change the default port 14002 to port 80 for example.

Same goes for the Multinode dashboard

RUN_PARAMS="${RUN_PARAMS:-} --console.address=:15002"

Not contesting if it should do by default but at least have a way to actually bypass it, since all my dockers have an IP in a pretty restricted vlan and I really did want to use port 80 to facilitate FW rules.

Thanks.

You can override it with an argument --console.address=:80 after the image name in your docker run command, or in the command: clause in case of docker-compose.yaml.
However, it’s an internal container port, so you may not change it and use the port mapping as usual, like -p 80:14002 (or -p 80:15002 for multinode).

Please do not expose your dashboard to the Internet without any protection, use this method instead: How to remote access the web dashboard - Storj Docs

The multinode dashboard is better to run on your other device - it allows to access your remote node securely.

Ok, I will try the argument --console.address=:80

Can’t really use port map, using ipvlan.

Don’t worry I am not, I am isolating storj nodes in a vlan separated from other devices, I want to minimize rules has much has possible in inter-vlan routing, I know it’s not a big performance issue, it just keeps it a bit more simple and safe to just allow LAN devices to access port 80 on DMZ VLAN rather than add several rules for extra ports.

If I need to access my dashboard I have a VPN, only thing I port forward and expose is port 28967 and subsequent for each new node.

I mean the -p option in your docker run command. If you do not use it with --network host, it will work in the NAT mode by default, so you need to do a port mapping in the docker run command, i.e.

docker run -d ... \
-p 28967:28967/tcp \
-p 28967:28967/udp \
-p 80:14002 \
...
storjlabs/storagenode:latest

See Storage Node - Storj Docs