# Follow-up: Best way to install modules to an offline pc

**URL:** <https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872>\
**Category:** General\
**Created:** [28 April 2021 14:41 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872 "2021-04-28T14:41:18Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Giu-seppe](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/giu-seppe/32/40489_2.png) [@Giu-seppe](https://discourse.nodered.org/u/Giu-seppe)\
**Post date:** [28 April 2021 14:41 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/1 "2021-04-28T14:41:19Z")

</div>

> [@\[Question\] Best way to install modules to an offline pc](https://discourse.nodered.org/t/question-best-way-to-install-modules-to-an-offline-pc/20902/12):
>
> In fact, I only keep the node.exe on our Windows-based production systems. Also easier to upgrade, because you can download the archive (no installer) from [NodeJS](https://nodejs.org/dist/latest-v10.x/) and exchange the executable.

Hi Kuema!!  
I need to install node-red on an industrial PC not connected to the internet.  
If I'm not too invasive, could you tell me which procedure you use?  
Thanks in advance!

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [28 April 2021 16:01 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/2 "2021-04-28T16:01:43Z")

</div>

Mainly this one using a thumb drive:

> [@Installing Node-RED on a Work (Corporate) Laptop](https://discourse.nodered.org/t/installing-node-red-on-a-work-corporate-laptop/17683/8):
>
> No, but you can install it on another machine (same OS, NodeJS and architecture) and copy the whole installation to your target machine with an USB stick (thumb drive). That's how I do it, works fine for Windows and Linux. It's important to do a local install (no -g flag). Just run npm install node-red in an empty directory.

Just sweep other that thread and some other linked posts, I think I described it in different posts. Been a while. 😉

No offense, but if you have specific questions for your use case, you should open a new thread where everyone can participate and benefit from. 😉

---

<div class="post-metadata">

**Author:** ![Giu-seppe](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/giu-seppe/32/40489_2.png) [@Giu-seppe](https://discourse.nodered.org/u/Giu-seppe)\
**Post date:** [28 April 2021 16:23 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/3 "2021-04-28T16:23:52Z")

</div>

Ok you are right, just two questions.  
You installed the same version of node.js and then copied and pasted npm into %appdata% and the .node-red right?  
And you have used a windows 7 configuration on other windows like 10 or enterprise?  
You would help me a lot if you answer me

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [29 April 2021 04:46 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/4 "2021-04-29T04:46:37Z")

</div>

We just have the `node.exe` on the target machine. The node versions (12, 14...) and OS architectures (win32, linux; 32 or 64-bit) have to match, of course, if you have packages with native code.  
I think anything equal or above Windows 7 should work.

Also, we run multiple instances and pass the workspace on start with `-u`, no default paths here. (there are forum threads about that as well, like here: [Multiple node red instances - #2 by kuema](https://discourse.nodered.org/t/multiple-node-red-instances/18002/2))

For workspace updates, I just remove the old node\_modules on the target and move the one from my development machine in. Same goes for your Node-RED, we have that in a separate directory.

---

<div class="post-metadata">

**Author:** ![Giu-seppe](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/giu-seppe/32/40489_2.png) [@Giu-seppe](https://discourse.nodered.org/u/Giu-seppe)\
**Post date:** [29 April 2021 09:49 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/5 "2021-04-29T09:49:56Z")

</div>

Ok I understand.  
how do you get only node.exe?  
and how do you get this structure?

```auto
.
├── apps
│ ├── node-red -> node-red_1.0
│ ├── node-red_0.19
│ ├── node-red_0.20
│ └── node-red_1.0
└── workspaces
    ├── node-red-controller
    │ ├── flows_cred.json
    │ ├── flows.json
    │ ├── lib
    │ ├── node_modules
    │ ├── package.json
    │ ├── package-lock.json
    │ └── settings.js
    ├── node-red-dashboard
    │ ├── flows_cred.json
    │ ├── flows.json
    │ ├── lib
    │ ├── node_modules
    │ ├── package.json
    │ ├── package-lock.json
    │ ├── settings.js
    │ └── static
    ├── node-red-telegram
    │ ├── flows_cred.json
    │ ├── flows.json
    │ ├── lib
    │ ├── node_modules
    │ ├── package.json
    │ ├── package-lock.json
    │ └── settings.js
    └── node-red-test
        ├── flows_cred.json
        ├── flows.json
        ├── lib
        ├── package.json
        └── settings.js

```

I have this:

```auto
.
└── .node-red
    ├── lib
    ├── node_modules
    ├── flows.json
    ├── config.json
    ├── package.json
    ├── package-lock.json
    └── settings.js

```

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [29 April 2021 10:52 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/6 "2021-04-29T10:52:15Z")

</div>

You have to create the directories yourself... or any other structure satisfying your use case, it's not fixed.

You can download the node.exe separately from the NodeJS site: [Download | Node.js](https://nodejs.org/en/download/)

I'm sorry, but I can't give personal support, my time is very limited. I'd rather have you open a public thread where everyone can participate, if you have any further issues for your use case. That way, others can benefit from the discussion as well. There are many users having similar use cases like this. 😉

(If you agree, I can convert this conversation into a public thread.)

---

<div class="post-metadata">

**Author:** ![Giu-seppe](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/giu-seppe/32/40489_2.png) [@Giu-seppe](https://discourse.nodered.org/u/Giu-seppe)\
**Post date:** [29 April 2021 13:44 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/7 "2021-04-29T13:44:13Z")

</div>

it's ok for me, it's good share.  
I'm not sure where to put the node.exe

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [29 April 2021 13:45 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/8 "2021-04-29T13:45:10Z")

</div>



---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [29 April 2021 13:49 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/9 "2021-04-29T13:49:49Z")

</div>

On our production systems with keep everything in one directory structure for the project, including all required software. The advantage is, you can make quick backups of the whole runtime including all dependencies and project configs.

But it depends on your software stack if that is an option.

---

<div class="post-metadata">

**Author:** ![Giu-seppe](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/giu-seppe/32/40489_2.png) [@Giu-seppe](https://discourse.nodered.org/u/Giu-seppe)\
**Post date:** [29 April 2021 14:46 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/10 "2021-04-29T14:46:38Z")

</div>

Is there a guide on how to do this? I can't find it

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [29 April 2021 17:00 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/11 "2021-04-29T17:00:42Z")

</div>

That's how _I_ do it in my day job on our customer's systems running our software (mainly Windows systems), most of them have no Internet access, only remote access (RDP, VNC, ...) via VPN.

There is no guide or out-of-the-box solution to this. You have to find a solution that fits _your_ needs, customer requirements and specific use case. There are many approaches to this. Many pointers and hints of what is possible are already here on the forum and the posts I mentioned. 😉

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [13 May 2021 17:00 UTC](https://discourse.nodered.org/t/follow-up-best-way-to-install-modules-to-an-offline-pc/44872/12 "2021-05-13T17:00:43Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
