# De-Dockered storage node operation

**URL:** <https://forum.storj.io/t/de-dockered-storage-node-operation/2360>\
**Category:** Node Operators\
**Created:** [October 24, 2019, 11:22am UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360 "2019-10-24T11:22:40Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![smurfix](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/smurfix/32/1128_2.png) [@smurfix](https://forum.storj.io/u/smurfix)\
**Post date:** [October 24, 2019, 11:22am UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/1 "2019-10-24T11:22:40Z")

</div>

I’d like to share my approach to running a storage node, which is to forget about Docker and its multi-megabyte downloads of random images with stuff I already have on my computer. Besides, I have better things to do with my time than figuring out how yet another tool which I don’t need works.

Thus, I simply build it from source, then start it manually / via systemd.

```
#!/bin/bash
if [$# = 0]; then echo "Usage: $0 v0.12.3 # current release!" >&2 ; exit 2; fi
set -ex
test -d storj || git clone git@github.com:storj/storj.git
cd storj
git checkout $1
go build -ldflags " -s -w -X storj.io/storj/internal/version.buildTimestamp=$(date +%s) -X storj.io/storj/internal/version.buildCommitHash=$(git rev-parse HEAD) -X storj.io/storj/internal/version.buildVersion=$(git describe --tags) -X storj.io/storj/internal/version.buildRelease=true" -o ../bin storj.io/storj/cmd/storagenode
cd ..
mv bin/storagenode /usr/local/bin
systemctl restart storj-storage

```

Done. Works perfectly, no root necessary. The (dead simple) systemd unit for this simply starts `/usr/local/bin/storagenode run --config-dir /etc/storj/config` and is left as an exercise for the esteemed reader, as is creating a configuration file (`storagenode setup` is your friend) in `/etc/storj/config/config.yaml`.

---

<div class="post-metadata">

**Author:** ![nerdatwork](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/nerdatwork/32/1135_2.png) [@nerdatwork](https://forum.storj.io/u/nerdatwork)\
**Post date:** [October 24, 2019, 2:43pm UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/2 "2019-10-24T14:43:54Z")

</div>

Can you also show some stats on audits/uploads/downloads/score ?

---

<div class="post-metadata">

**Author:** ![smurfix](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/smurfix/32/1128_2.png) [@smurfix](https://forum.storj.io/u/smurfix)\
**Post date:** [October 24, 2019, 3:35pm UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/3 "2019-10-24T15:35:27Z")

</div>

Sure I can, but what’s your point? there’s no difference between before-Docker and after-Docker, the node is plenty busy. No point running a node without checking that it works …

```
October 2019 (Version: 7.0.1) [snapshot: 2019-10-24 15:33:23Z]
			TYPE DISK BANDWIDTH		
Upload Ingress 188.56 GB	
Upload Repair Ingress 368.91 MB
Download Egress 493.01 GB	
Download Repair Egress 0.00 B	
Download Audit Egress 2.21 MB	
Disk Current Storage 254.43 GB	
Disk Average Month	Storage 130.01 GBm		
Disk Usage Storage 96.73 TBh
```

---

<div class="post-metadata">

**Author:** ![BrightSilence](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/brightsilence/32/6048_2.png) [@BrightSilence](https://forum.storj.io/u/BrightSilence)\
**Post date:** [October 24, 2019, 9:33pm UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/4 "2019-10-24T21:33:30Z")

</div>

Since there is no auto updater yet for such a setup it will require some more maintenance from time to time and it is not a supported setup for now. But yes it should work just fine if you set it up right.

---

<div class="post-metadata">

**Author:** ![nerdatwork](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/nerdatwork/32/1135_2.png) [@nerdatwork](https://forum.storj.io/u/nerdatwork)\
**Post date:** [October 25, 2019, 5:55am UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/5 "2019-10-25T05:55:41Z")

</div>

Production release of Storj V3 would be dockerless so for newbies its easier to set it up via docker or wait till production.

---

<div class="post-metadata">

**Author:** ![smurfix](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/smurfix/32/1128_2.png) [@smurfix](https://forum.storj.io/u/smurfix)\
**Post date:** [October 25, 2019, 11:39am UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/6 "2019-10-25T11:39:14Z")

</div>

Well, let’s just say that I tend to disagree rather strongly with any statement that has “docker” and “newbies” in the same book, let alone the same sentence. (Just look at the number of questions WRT forwarding the various TCP ports for `storagenode` into the container.)

In fact, I seriously doubt that instructions starting with “`apt install go git`” (and ending with “run this script” which we’d include in the repository “via cron each couple of hours to auto-pull+build+restart your node”) could possibly be more complicated than _anything_ that starts with “install docker”.

But maybe that’s just me.

---

<div class="post-metadata">

**Author:** ![BR0KK](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/br0kk/32/1128_2.png) [@BR0KK](https://forum.storj.io/u/BR0KK)\
**Post date:** [February 9, 2020, 12:37am UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/7 "2020-02-09T00:37:33Z")

</div>

Silly Noob here (me)

Getting ones head around docker is not that easy. Also maintaining Linux for newbies is hard enough.

And if I read correctly node operators should keep their nodes as simple as possible.

In my case I run an ESXi and I have plenty of space and cpu capacity tu run 1 or a few nodes.

Setup with docker:  
Metal–\>ESXi–\>VM–\>docker storj

Setup without Docker:  
Metal–\>ESXi–\>VM + storj

The first looks like a VM inside a VM. The later has one thing less to worry about.

Why not an ova or a pre-built Linux installation that autouodates itself?

PS: I know that docker isn’t a VM ;p

---

<div class="post-metadata">

**Author:** ![smurfix](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/smurfix/32/1128_2.png) [@smurfix](https://forum.storj.io/u/smurfix)\
**Post date:** [February 9, 2020, 12:54am UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/8 "2020-02-09T00:54:28Z")

</div>

AIUI that’s planned for when things stabilize.  
(I really should polish+publish my “pull, check for latest non-RC tag, check out, build, restart” cronjob script …)

---

<div class="post-metadata">

**Author:** ![andrew2.hart](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/andrew2.hart/32/6415_2.png) [@andrew2.hart](https://forum.storj.io/u/andrew2.hart)\
**Post date:** [February 9, 2020, 6:42am UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/9 "2020-02-09T06:42:27Z")

</div>

The advantage of docker is consistent testing and bug reporting. If the long term plan is dockerless then having some early testers is probably a good idea.  
I don’t get your “megabytes” argument. It takes seconds only to download the images, compared to days for id and weeks for vetting!

---

<div class="post-metadata">

**Author:** ![yuzi-co](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/yuzi-co/32/1134_2.png) [@yuzi-co](https://forum.storj.io/u/yuzi-co)\
**Post date:** [May 24, 2020, 8:51am UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/10 "2020-05-24T08:51:44Z")

</div>

I used the OP script with slight modifications and supervisord to run it.  
Only thing that isn’t working for me is the console, which simply returns 404

Tried using to point where i have the static files from git, but same problem:  
console.static-dir: “/mnt/shared/storj/build/storj/web/storagenode”

Any ideas?

---

<div class="post-metadata">

**Author:** ![tyakimov](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/tyakimov/32/70_2.png) [@tyakimov](https://forum.storj.io/u/tyakimov)\
**Post date:** [May 24, 2020, 10:33am UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/11 "2020-05-24T10:33:47Z")

</div>

I’m interested to know more about your system specs and the compile time of `go build -ldflags `. thanks.

---

<div class="post-metadata">

**Author:** ![Odmin](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/odmin/32/92_2.png) [@Odmin](https://forum.storj.io/u/Odmin)\
**Post date:** [May 24, 2020, 12:42pm UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/12 "2020-05-24T12:42:25Z")

</div>

I think this topic is outdated 🙂

Look into [GitHub commits](https://github.com/storj/storj/pull/3463), it was merged to master.

---

<div class="post-metadata">

**Author:** ![Mark](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/mark/32/1128_2.png) [@Mark](https://forum.storj.io/u/Mark)\
**Post date:** [May 29, 2020, 5:17pm UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/13 "2020-05-29T17:17:44Z")

</div>

I’ve had some success getting the web dashboard to work when I build storj on Linux using the included make file.  
Simply running the make command with no arguments will give you a list of build options.  
You might first try running:  
make build-dev-deps  
to download some of the build dependencies.  
You then might try:  
make binaries  
which will build just about everything for every platform. You can study the contents of the make file to see how it builds things.  
It seems to be using a docker image to build the web console files and a go-bindata program to “embed web assets into go”. The make command will handle all that for you if you get all the dependencies installed which you might have to do manually.  
**Disclaimer** : I haven’t really tested the build results with a real online node that contains live customer data yet, so I can’t say if this will break your node or get you disqualified. Proceed at your own risk.

 ![mint](https://storj-s3.bcdn.literatehosting.net/original/2X/b/be23e8d25d705dc9c28bb34c1642a19300f360df.png)

---

<div class="post-metadata">

**Author:** ![rtknight](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/rtknight/32/1129_2.png) [@rtknight](https://forum.storj.io/u/rtknight)\
**Post date:** [October 30, 2020, 10:02am UTC](https://forum.storj.io/t/de-dockered-storage-node-operation/2360/14 "2020-10-30T10:02:08Z")

</div>

A very newbie here…  
Is anyone free to help me with this on my QNAP NAS? i’ve loads of storage doing nothing!  
A know nothing about Linux…  
I’ve tried adding the Storj APP from the APP center but it gives an error saying I’m missing the Container APP which I can’t seem to add either…???
