Unable to generate node API key-Windows Docker

I have 2 nodes running in Docker containers with Windows 11. I would love to be able to access the Storj multi-node dashboard but for the life of me I’m unable to generate the API key. I’ve done some browsing and tried several commands all to no avail…but it does appear I’m not alone in having difficulties doing this successfully. I’d really appreciate anyone that might be able to assist me with this and bear with me as I’m a new node operator, thanks! :slight_smile:

Hello @BinaryLogicBroken,
Welcome to the forum!

When you request an API key, it’s advised to use an storagenode.exe info command with all required options, e.g. (PowerShell)

& 'C:\Program Files\Storj\Storage Node\storagenode.exe' info --config-dir "C:\Program Files\Storj\Storage Node\\" --identity-dir "D:\storagenode1\identity" --server.private-address 127.0.0.1:7779

The parameter --server.private-address 127.0.0.1:7779 would be unique for each node, and two others too as well.

Thanks! Tried this command and did not work for me.

So I have 2 separate folders: C:\Program Files\Storj\Storage Node\ and C:\Program Files\Storj1\Storage Node\

Only Storj1 has a storagenode.exe file, and Storj has a storagenode.old file.

I have my identity folders as Y:\identity\ and Z:\identity\ currently.

I am not sure how to find out what my server.private-address 's are…the 127.0.0.1 part seems standard but I’m only familiar with 14002 and 14003 (individual node dashboards) and 28967 and 28968 (individual node ports)

Thank you very much for the support!

I think problem that paths has spaces in names, then it need more ‘’

Perhaps. There is also a translating problem (from Windows to Linux about dividers, e.g. slashes).

Yup… for Win, I think i’d go with:
“C:\Program Files\Storj\Storage node\storagenode.exe” info --config-dir “C:\Program Files\Storj\Storage node” ← correct*
*Double '' there might escape the last " .. at first glance, via command line, but correct for config.yaml.
Then the remainder…-- identity-dir “Y:\identity” --server… etc.

2 cents,
Julio

1 Like

If both nodes on the same PC, then server.private-address must be unique, it’s in the config.yaml file. I believe that the second copy of storagenode should be in the second path too.

I took another look at your initial post, do you still run nodes in docker?
If so, then the command would be different:

docker exec -it storagenode /app/bin/storagenode info --identity-dir identity --config-dir config

OK, found both of my server.private-address 's in each node’s config.yaml file, thanks! So when I run this command (in Command Prompt, non-Administrator):

docker exec -it storagenode /app/bin/storagenode info --identity-dir “Z:\identity” --config-dir “C:\Program Files\Storj1\Storage Node”

All I get is this:

2025-05-18T12:35:07Z INFO Anonymized tracing enabled {“Process”: “storagenode”}
2025-05-18T12:35:07Z FATAL Failed to load identity. {“Process”: “storagenode”, “error”: “file or directory not found: open Z:\identity/identity.cert: no such file or directory”, “errorVerbose”: “file or directory not found: open Z:\identity/identity.cert: no such file or directory\n\tstorj.io/common/identity.Config.Load:326\n\tmain.cmdInfo:67\n\tmain.newNodeInfoCmd.func1:42\n\tstorj.io/common/process.cleanup.func1.4:392\n\tstorj.io/common/process.cleanup.func1:410\n\tgithub.com/spf13/cobra.(*Command).execute:985\n\tgithub.com/spf13/cobra.(*Command).ExecuteC:1117\n\tgithub.com/spf13/cobra.(*Command).Execute:1041\n\tstorj.io/common/process.ExecWithCustomOptions:112\n\tmain.main:34\n\truntime.main:283”}

In File Explorer, I can clearly see my Z:\identity\identity.cert file so ?..

Thanks all for the support with this!

Also thought this might be helpful to share:

Please, use the command exactly how it was provided, i.e.

When you use exec in the container, it uses paths in the container, paths from the host are not available.
You can execute the command as is, without altering it.

I don’t get why you don’t just run these nodes in Windows native.
Btw, your absolutely missing the .exe as you pointed out in the storj dir, also the date of your log file in that directory indicates that you haven’t run it in windows since March 22nd; additionally, there isn’t even a config.yaml in there. Is this when you switched to containers?
Tip: I would not associate .log files with Windows Notepad change association to Notepad++ (download it if you don’t have it), as many are far larger than notepad can handle.

I can only guess you updated the exe manually, accidentally moving it instead of copying it over to the storj1 directory, when it last stopped working.

Pay attention to what Alex says, and do not revert back unless you update your retain & orders & etc. etc. in your respective native installs before even thinking of turning those services back on. Also, you might want to make sure your storagenode & storagenode-update services are disabled in windows services control panel.

Good luck,
Julio

Hi Julio,
Yes, I did begin by running these nodes with Windows GUI. The 1st node was added following the node setup guide, and the 2nd node was added using Vadim’s tool. But for some reason I had major issues with this approach, nodes would randomly stop themselves, and would also fail to restart storagenode service in Windows. At that point (March 22 sounds right), I decided to run them both as Docker containers, and stuck with Windows as it’s most comfortable/familiar to me. As far as node performance goes, it’s been smooth sailing for me ever since. I definitely did not update any .exe file manually or move any of my files around (only exception being moving the contents of my identity folders into Y:\identity and Z:\identity).

FWIW, If I do start a 3rd node, I’m likely to switch to Linux Docker.

1 Like

Perfect Alexey, API key successfully generated, thank you so very much for the support! :slight_smile:

1 Like

Excellento! I’m glad this is working out for you, and that you’re learning new things.

5 cents,
Julio