[{"data":1,"prerenderedAt":1068},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual\u002F":3,"docs-nav":618},{"id":4,"title":5,"body":6,"description":16,"extension":604,"layout":605,"meta":606,"navGroup":607,"navGroupOrder":605,"navOrder":608,"navTitle":609,"navigation":610,"originalPath":611,"path":612,"redirect":605,"seo":613,"stem":614,"updated":615,"version":616,"__hash__":617},"docs\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual.md","Manual Install (NPM)",{"type":7,"value":8,"toc":581},"minimark",[9,13,17,22,35,40,48,52,61,65,97,112,128,132,147,150,153,189,198,258,261,265,277,281,292,309,313,316,322,344,370,423,431,435,438,450,456,460,470,481,484,502,511,526,533,577],[10,11,5],"h1",{"id":12},"manual-install-npm",[14,15,16],"p",{},"Use this method if you want direct control over the Node.js runtime and filesystem.",[18,19,21],"h2",{"id":20},"prerequisites","Prerequisites",[23,24,25,29,32],"ul",{},[26,27,28],"li",{},"Node.js 18 or later installed (Node.js 22 recommended; supported versions are 18, 20, 22, and 24). Node.js 20 reached end-of-life in April 2026.",[26,30,31],{},"Linux, macOS, or Windows",[26,33,34],{},"Outbound network access to FlowFuse platform and the NPM registry",[36,37,39],"h3",{"id":38},"networking-requirements","Networking requirements",[14,41,42,43,47],{},"Please see ",[44,45,39],"a",{"href":46},"\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview#networking-requirements",".",[18,49,51],{"id":50},"install-the-device-agent","Install the Device Agent",[14,53,54,55,47],{},"The Device Agent is published to npm as ",[44,56,60],{"href":57,"rel":58},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@flowfuse\u002Fdevice-agent",[59],"nofollow","@flowfuse\u002Fdevice-agent",[36,62,64],{"id":63},"linuxmacos","Linux\u002FmacOS",[66,67,72],"pre",{"className":68,"code":69,"language":70,"meta":71,"style":71},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sudo npm install -g @flowfuse\u002Fdevice-agent\n","bash","",[73,74,75],"code",{"__ignoreMap":71},[76,77,80,84,88,91,94],"span",{"class":78,"line":79},"line",1,[76,81,83],{"class":82},"sBMFI","sudo",[76,85,87],{"class":86},"sfazB"," npm",[76,89,90],{"class":86}," install",[76,92,93],{"class":86}," -g",[76,95,96],{"class":86}," @flowfuse\u002Fdevice-agent\n",[36,98,100,101,111],{"id":99},"windows-run-elevated1","Windows (run elevated",[102,103,104],"sup",{},[44,105,110],{"href":106,"ariaDescribedBy":107,"dataFootnoteRef":71,"id":109},"#user-content-fn-1",[108],"footnote-label","user-content-fnref-1","1",")",[66,113,115],{"className":68,"code":114,"language":70,"meta":71,"style":71},"npm install -g @flowfuse\u002Fdevice-agent\n",[73,116,117],{"__ignoreMap":71},[76,118,119,122,124,126],{"class":78,"line":79},[76,120,121],{"class":82},"npm",[76,123,90],{"class":86},[76,125,93],{"class":86},[76,127,96],{"class":86},[18,129,131],{"id":130},"working-directory","Working directory",[14,133,134,135,138,139,142,143,146],{},"By default the agent uses ",[73,136,137],{},"\u002Fopt\u002Fflowfuse-device"," (Linux\u002FmacOS) or ",[73,140,141],{},"c:\\opt\\flowfuse-device"," (Windows) as its working directory. Override with ",[73,144,145],{},"-d\u002F--dir"," if needed.",[14,148,149],{},"Ensure the directory exists and is writable by the service user.",[36,151,64],{"id":152},"linuxmacos-1",[66,154,156],{"className":68,"code":155,"language":70,"meta":71,"style":71},"sudo mkdir -p \u002Fopt\u002Fflowfuse-device\nsudo chown -R $USER \u002Fopt\u002Fflowfuse-device\n",[73,157,158,171],{"__ignoreMap":71},[76,159,160,162,165,168],{"class":78,"line":79},[76,161,83],{"class":82},[76,163,164],{"class":86}," mkdir",[76,166,167],{"class":86}," -p",[76,169,170],{"class":86}," \u002Fopt\u002Fflowfuse-device\n",[76,172,174,176,179,182,186],{"class":78,"line":173},2,[76,175,83],{"class":82},[76,177,178],{"class":86}," chown",[76,180,181],{"class":86}," -R",[76,183,185],{"class":184},"sTEyZ"," $USER ",[76,187,188],{"class":86},"\u002Fopt\u002Fflowfuse-device\n",[36,190,100,192,111],{"id":191},"windows-run-elevated1-1",[102,193,194],{},[44,195,110],{"href":106,"ariaDescribedBy":196,"dataFootnoteRef":71,"id":197},[108],"user-content-fnref-1-2",[66,199,201],{"className":68,"code":200,"language":70,"meta":71,"style":71},"mkdir c:\\opt\\flowfuse-device\nicacls c:\\opt\\flowfuse-device \u002Fgrant \"user\":F \u002FT\n",[73,202,203,223],{"__ignoreMap":71},[76,204,205,208,211,214,217,220],{"class":78,"line":79},[76,206,207],{"class":82},"mkdir",[76,209,210],{"class":86}," c:",[76,212,213],{"class":184},"\\o",[76,215,216],{"class":86},"pt",[76,218,219],{"class":184},"\\f",[76,221,222],{"class":86},"lowfuse-device\n",[76,224,225,228,230,232,234,236,239,242,246,249,252,255],{"class":78,"line":173},[76,226,227],{"class":82},"icacls",[76,229,210],{"class":86},[76,231,213],{"class":184},[76,233,216],{"class":86},[76,235,219],{"class":184},[76,237,238],{"class":86},"lowfuse-device",[76,240,241],{"class":86}," \u002Fgrant",[76,243,245],{"class":244},"sMK4o"," \"",[76,247,248],{"class":86},"user",[76,250,251],{"class":244},"\"",[76,253,254],{"class":86},":F",[76,256,257],{"class":86}," \u002FT\n",[14,259,260],{},"Where \"user\" is the service account that will run the device agent (ideally, not an admin account).",[18,262,264],{"id":263},"configuration","Configuration",[14,266,267,268,271,272,276],{},"Place a ",[73,269,270],{},"device.yml"," in the working directory. See ",[44,273,275],{"href":274},"\u002Fdocs\u002Fdevice-agent\u002Fregister","Register your Remote Instance"," for obtaining the configuration via Quick Connect or provisioning.",[18,278,280],{"id":279},"listen-port","Listen Port",[14,282,283,284,287,288,291],{},"Node-RED listens on port ",[73,285,286],{},"1880"," by default. Change with ",[73,289,290],{},"-p\u002F--port",":",[66,293,295],{"className":68,"code":294,"language":70,"meta":71,"style":71},"flowfuse-device-agent --port 1881\n",[73,296,297],{"__ignoreMap":71},[76,298,299,302,305],{"class":78,"line":79},[76,300,301],{"class":82},"flowfuse-device-agent",[76,303,304],{"class":86}," --port",[76,306,308],{"class":307},"sbssI"," 1881\n",[18,310,312],{"id":311},"start-on-system-boot","Start on system boot",[14,314,315],{},"Use the provided systemd service file on Linux to run the agent as a service.",[317,318,319],"ol",{},[26,320,321],{},"Download the service file:",[66,323,325],{"className":68,"code":324,"language":70,"meta":71,"style":71},"curl -L https:\u002F\u002Fraw.githubusercontent.com\u002FFlowFuse\u002Fdevice-agent\u002Fmain\u002Fservice\u002Fflowfuse-device.service -o flowfuse-device.service\n",[73,326,327],{"__ignoreMap":71},[76,328,329,332,335,338,341],{"class":78,"line":79},[76,330,331],{"class":82},"curl",[76,333,334],{"class":86}," -L",[76,336,337],{"class":86}," https:\u002F\u002Fraw.githubusercontent.com\u002FFlowFuse\u002Fdevice-agent\u002Fmain\u002Fservice\u002Fflowfuse-device.service",[76,339,340],{"class":86}," -o",[76,342,343],{"class":86}," flowfuse-device.service\n",[317,345,346,360,367],{"start":173},[26,347,348,349,352,353,356,357,146],{},"Adjust ",[73,350,351],{},"User",", ",[73,354,355],{},"Group",", and ",[73,358,359],{},"WorkingDirectory",[26,361,362,363,366],{},"Update ",[73,364,365],{},"ExecStart"," to include a custom port if required.",[26,368,369],{},"Move the file into place and enable the service:",[66,371,373],{"className":68,"code":372,"language":70,"meta":71,"style":71},"sudo mv flowfuse-device.service \u002Fetc\u002Fsystemd\u002Fsystem\u002F\nsudo systemctl daemon-reload\nsudo systemctl enable flowfuse-device\nsudo systemctl start flowfuse-device\n",[73,374,375,388,398,411],{"__ignoreMap":71},[76,376,377,379,382,385],{"class":78,"line":79},[76,378,83],{"class":82},[76,380,381],{"class":86}," mv",[76,383,384],{"class":86}," flowfuse-device.service",[76,386,387],{"class":86}," \u002Fetc\u002Fsystemd\u002Fsystem\u002F\n",[76,389,390,392,395],{"class":78,"line":173},[76,391,83],{"class":82},[76,393,394],{"class":86}," systemctl",[76,396,397],{"class":86}," daemon-reload\n",[76,399,401,403,405,408],{"class":78,"line":400},3,[76,402,83],{"class":82},[76,404,394],{"class":86},[76,406,407],{"class":86}," enable",[76,409,410],{"class":86}," flowfuse-device\n",[76,412,414,416,418,421],{"class":78,"line":413},4,[76,415,83],{"class":82},[76,417,394],{"class":86},[76,419,420],{"class":86}," start",[76,422,410],{"class":86},[14,424,425,426,430],{},"On Windows or macOS, consider using the ",[44,427,429],{"href":428},"\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdevice-agent-installer","Installer"," to set up services automatically.",[18,432,434],{"id":433},"verify","Verify",[14,436,437],{},"Start the agent from a terminal to confirm it runs:",[66,439,441],{"className":68,"code":440,"language":70,"meta":71,"style":71},"flowfuse-device-agent -v\n",[73,442,443],{"__ignoreMap":71},[76,444,445,447],{"class":78,"line":79},[76,446,301],{"class":82},[76,448,449],{"class":86}," -v\n",[14,451,452,453,47],{},"Once assigned, access the Node-RED editor at ",[73,454,455],{},"http:\u002F\u002F\u003Cdevice-ip>:1880",[18,457,459],{"id":458},"upgrading-the-agent","Upgrading the agent",[14,461,462,463,466,467,291],{},"With Device Agent 1.13+, the package moved from the ",[73,464,465],{},"@flowforge"," scope to ",[73,468,469],{},"@flowfuse",[23,471,472],{},[26,473,474,475,478,479],{},"npm: ",[73,476,477],{},"@flowforge\u002Fflowforge-device-agent"," ➜ ",[73,480,60],{},[36,482,64],{"id":483},"linuxmacos-2",[66,485,487],{"className":68,"code":486,"language":70,"meta":71,"style":71},"sudo npm install -g @flowfuse\u002Fdevice-agent@latest\n",[73,488,489],{"__ignoreMap":71},[76,490,491,493,495,497,499],{"class":78,"line":79},[76,492,83],{"class":82},[76,494,87],{"class":86},[76,496,90],{"class":86},[76,498,93],{"class":86},[76,500,501],{"class":86}," @flowfuse\u002Fdevice-agent@latest\n",[36,503,100,505,111],{"id":504},"windows-run-elevated1-2",[102,506,507],{},[44,508,110],{"href":106,"ariaDescribedBy":509,"dataFootnoteRef":71,"id":510},[108],"user-content-fnref-1-3",[66,512,514],{"className":68,"code":513,"language":70,"meta":71,"style":71},"npm install -g @flowfuse\u002Fdevice-agent@latest\n",[73,515,516],{"__ignoreMap":71},[76,517,518,520,522,524],{"class":78,"line":79},[76,519,121],{"class":82},[76,521,90],{"class":86},[76,523,93],{"class":86},[76,525,501],{"class":86},[14,527,528,529,532],{},"If you must stay on 2.x, use ",[73,530,531],{},"@2.x",". Device Agent 3.x requires Node.js 18+. Device Agent 4.x defaults to Node.js 22 and supports Node.js 18, 20, 22, and 24.",[534,535,538,543],"section",{"className":536,"dataFootnotes":71},[537],"footnotes",[18,539,542],{"className":540,"id":108},[541],"sr-only","Footnotes",[317,544,545],{},[26,546,548,549,552,553,560,561,560,569],{"id":547},"user-content-fn-1","Run ",[73,550,551],{},"powershell -Command \"Start-Process 'cmd' -Verb RunAs\""," to launch an elevated command prompt (e.g. as an admin user) ",[44,554,559],{"href":555,"ariaLabel":556,"className":557,"dataFootnoteBackref":71},"#user-content-fnref-1","Back to reference 1",[558],"data-footnote-backref","↩"," ",[44,562,559,566],{"href":563,"ariaLabel":564,"className":565,"dataFootnoteBackref":71},"#user-content-fnref-1-2","Back to reference 1-2",[558],[102,567,568],{},"2",[44,570,559,574],{"href":571,"ariaLabel":572,"className":573,"dataFootnoteBackref":71},"#user-content-fnref-1-3","Back to reference 1-3",[558],[102,575,576],{},"3",[578,579,580],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":71,"searchDepth":413,"depth":413,"links":582},[583,586,591,595,596,597,598,599,603],{"id":20,"depth":173,"text":21,"children":584},[585],{"id":38,"depth":400,"text":39},{"id":50,"depth":173,"text":51,"children":587},[588,589],{"id":63,"depth":400,"text":64},{"id":99,"depth":400,"text":590},"Windows (run elevated1)",{"id":130,"depth":173,"text":131,"children":592},[593,594],{"id":152,"depth":400,"text":64},{"id":191,"depth":400,"text":590},{"id":263,"depth":173,"text":264},{"id":279,"depth":173,"text":280},{"id":311,"depth":173,"text":312},{"id":433,"depth":173,"text":434},{"id":458,"depth":173,"text":459,"children":600},[601,602],{"id":483,"depth":400,"text":64},{"id":504,"depth":400,"text":590},{"id":108,"depth":173,"text":542},"md",null,{},"DeviceAgentInstallation",5,"Manual Install with NPM",true,"device-agent\u002Finstall\u002Fmanual.md","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual",{"title":5,"description":16},"docs\u002Fdevice-agent\u002Finstall\u002Fmanual","2026-07-02 16:30:21 +0100","2.33.2","4VEXvSPnXdFYzHFJZer6WA8cOH9vfhJyewLOoHiVNdY",[619,626,645,656],{"name":620,"order":79,"children":621},"FlowFuse User Manuals",[622],{"title":623,"path":624,"group":620,"groupOrder":79,"order":173,"children":625},"FlowFuse API","\u002Fdocs\u002Fapi",[],{"name":627,"order":413,"children":628},"FlowFuse Self-Hosted",[629,633],{"title":630,"path":631,"group":627,"groupOrder":413,"order":79,"children":632},"Quick Start","\u002Fdocs\u002Fquick-start",[],{"title":634,"path":635,"group":627,"groupOrder":413,"order":400,"children":636},"Upgrading FlowFuse","\u002Fdocs\u002Fupgrade",[637,641],{"title":638,"path":639,"order":605,"children":640},"Installing a license","\u002Fdocs\u002Fupgrade\u002Fopen-source-to-premium",[],{"title":642,"path":643,"order":605,"children":644},"Upgrading the Node-RED version","\u002Fdocs\u002Fupgrade\u002Fnodered-version",[],{"name":646,"order":608,"children":647},"Support",[648,652],{"title":649,"path":650,"group":646,"groupOrder":608,"order":400,"children":651},"Premium Support","\u002Fdocs\u002Fpremium-support",[],{"title":653,"path":654,"group":646,"groupOrder":608,"order":605,"children":655},"Debugging Node-RED issues","\u002Fdocs\u002Fdebugging",[],{"name":657,"order":605,"children":658},"Other",[659,707,719,798,841,860,934,945],{"title":660,"path":661,"order":605,"children":662},"admin","\u002Fdocs\u002Fadmin",[663,667,679,687,691,695,699,703],{"title":664,"path":665,"order":79,"children":666},"Administering FlowFuse","\u002Fdocs\u002Fadmin\u002Fintroduction",[],{"title":668,"path":669,"order":605,"children":670},"Configuring Single Sign-On (SSO)","\u002Fdocs\u002Fadmin\u002Fsso",[671,675],{"title":672,"path":673,"order":605,"children":674},"LDAP SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap",[],{"title":676,"path":677,"order":605,"children":678},"SAML SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fsaml",[],{"title":680,"path":681,"order":605,"children":682},"hardening","\u002Fdocs\u002Fadmin\u002Fhardening",[683],{"title":684,"path":685,"order":605,"children":686},"Kubernetes Hardening","\u002Fdocs\u002Fadmin\u002Fhardening\u002Fkubernetes",[],{"title":688,"path":689,"order":605,"children":690},"Monitoring","\u002Fdocs\u002Fadmin\u002Fmonitoring",[],{"title":692,"path":693,"order":605,"children":694},"Observability","\u002Fdocs\u002Fadmin\u002Fobservability",[],{"title":696,"path":697,"order":605,"children":698},"Soft Launch Enablement","\u002Fdocs\u002Fadmin\u002Ffeature-flags",[],{"title":700,"path":701,"order":605,"children":702},"Telemetry","\u002Fdocs\u002Fadmin\u002Ftelemetry",[],{"title":704,"path":705,"order":605,"children":706},"User Management","\u002Fdocs\u002Fadmin\u002Fuser-management",[],{"title":708,"path":709,"order":605,"children":710},"cloud","\u002Fdocs\u002Fcloud",[711,715],{"title":712,"path":713,"order":79,"children":714},"Introduction","\u002Fdocs\u002Fcloud\u002Fintroduction",[],{"title":716,"path":717,"order":605,"children":718},"FlowFuse Cloud Billing","\u002Fdocs\u002Fcloud\u002Fbilling",[],{"title":720,"path":721,"order":605,"children":722},"contribute","\u002Fdocs\u002Fcontribute",[723,726,730,734,738,742,746,754,790,794],{"title":712,"path":724,"order":79,"children":725},"\u002Fdocs\u002Fcontribute\u002Fintroduction",[],{"title":727,"path":728,"order":605,"children":729},"Adding Template Settings","\u002Fdocs\u002Fcontribute\u002Fadding-template-settings",[],{"title":731,"path":732,"order":605,"children":733},"API Design","\u002Fdocs\u002Fcontribute\u002Fapi-design",[],{"title":735,"path":736,"order":605,"children":737},"Creating debug stack containers","\u002Fdocs\u002Fcontribute\u002Fcreating-debug-stack-containers",[],{"title":739,"path":740,"order":605,"children":741},"Database migrations","\u002Fdocs\u002Fcontribute\u002Fdb-migrations",[],{"title":743,"path":744,"order":605,"children":745},"FlowFuse Architecture","\u002Fdocs\u002Fcontribute\u002Farchitecture",[],{"title":747,"path":748,"order":605,"children":749},"Local Install","\u002Fdocs\u002Fcontribute\u002Flocal",[750],{"title":751,"path":752,"order":605,"children":753},"Local Stacks","\u002Fdocs\u002Fcontribute\u002Flocal\u002Fstacks",[],{"title":755,"path":756,"order":605,"children":757},"State Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows",[758,762,766,770,774,778,782,786],{"title":759,"path":760,"order":605,"children":761},"Device Editor","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fdevice-editor",[],{"title":763,"path":764,"order":605,"children":765},"Instance states","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-states",[],{"title":767,"path":768,"order":605,"children":769},"Invite External Users","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Finvite-external-user",[],{"title":771,"path":772,"order":605,"children":773},"Project Creation","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-create",[],{"title":775,"path":776,"order":605,"children":777},"Reset Password Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fpassword-reset",[],{"title":779,"path":780,"order":605,"children":781},"Team creation Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fteam-create",[],{"title":783,"path":784,"order":605,"children":785},"User Login Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Flogin",[],{"title":787,"path":788,"order":605,"children":789},"User Sign up Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fsignup",[],{"title":791,"path":792,"order":605,"children":793},"Team Broker","\u002Fdocs\u002Fcontribute\u002Fteam-broker",[],{"title":795,"path":796,"order":605,"children":797},"Working with Feature Flags","\u002Fdocs\u002Fcontribute\u002Ffeature-flags",[],{"title":799,"path":800,"order":605,"children":801},"device-agent","\u002Fdocs\u002Fdevice-agent",[802,806,809,811,815,820],{"title":803,"path":804,"order":79,"children":805},"FlowFuse Device Agent Introduction","\u002Fdocs\u002Fdevice-agent\u002Fintroduction",[],{"title":630,"path":807,"order":173,"children":808},"\u002Fdocs\u002Fdevice-agent\u002Fquickstart",[],{"title":275,"path":274,"order":413,"children":810},[],{"title":812,"path":813,"order":608,"children":814},"Running the Agent","\u002Fdocs\u002Fdevice-agent\u002Frunning",[],{"title":816,"path":817,"order":818,"children":819},"Deploying your Flows","\u002Fdocs\u002Fdevice-agent\u002Fdeploy",6,[],{"title":821,"path":822,"order":605,"children":823},"install","\u002Fdocs\u002Fdevice-agent\u002Finstall",[824,828,831,835,839],{"title":825,"path":826,"group":607,"order":79,"children":827},"Overview","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview",[],{"title":829,"path":428,"group":607,"order":173,"children":830},"Device Agent Installer",[],{"title":832,"path":833,"group":607,"order":400,"children":834},"Docker Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdocker",[],{"title":836,"path":837,"group":607,"order":413,"children":838},"Kubernetes Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes",[],{"title":609,"path":612,"group":607,"order":608,"children":840},[],{"title":842,"path":843,"order":605,"children":844},"hardware","\u002Fdocs\u002Fhardware",[845,848,852,856],{"title":825,"path":846,"order":79,"children":847},"\u002Fdocs\u002Fhardware\u002Fintroduction",[],{"title":849,"path":850,"order":173,"children":851},"ctrlX - Node-RED","\u002Fdocs\u002Fhardware\u002Fctrlx-node-red",[],{"title":853,"path":854,"order":400,"children":855},"ctrlX - Device Agent","\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent",[],{"title":857,"path":858,"order":400,"children":859},"Raspberry Pi with Raspbian","\u002Fdocs\u002Fhardware\u002Fraspbian",[],{"title":821,"path":861,"order":605,"children":862},"\u002Fdocs\u002Finstall",[863,866,870,874,894,898,902,906],{"title":825,"path":864,"order":79,"children":865},"\u002Fdocs\u002Finstall\u002Fintroduction",[],{"title":867,"path":868,"order":605,"children":869},"Configuring FlowFuse","\u002Fdocs\u002Finstall\u002Fconfiguration",[],{"title":871,"path":872,"order":605,"children":873},"DNS Setup","\u002Fdocs\u002Finstall\u002Fdns-setup",[],{"title":875,"path":876,"order":605,"children":877},"Docker install","\u002Fdocs\u002Finstall\u002Fdocker",[878,882,886,890],{"title":879,"path":880,"order":605,"children":881},"Add Project Stacks on Docker","\u002Fdocs\u002Finstall\u002Fdocker\u002Fstacks",[],{"title":883,"path":884,"order":605,"children":885},"Docker Engine on Windows","\u002Fdocs\u002Finstall\u002Fdocker\u002Fwindows-docker-ce",[],{"title":887,"path":888,"order":605,"children":889},"Docker from AWS Market Place","\u002Fdocs\u002Finstall\u002Fdocker\u002Faws-marketplace",[],{"title":891,"path":892,"order":605,"children":893},"Docker on Digital Ocean","\u002Fdocs\u002Finstall\u002Fdocker\u002Fdigital-ocean",[],{"title":895,"path":896,"order":605,"children":897},"Email configuration","\u002Fdocs\u002Finstall\u002Femail-providers",[],{"title":899,"path":900,"order":605,"children":901},"First Run Setup","\u002Fdocs\u002Finstall\u002Ffirst-run",[],{"title":903,"path":904,"order":605,"children":905},"FlowFuse File Storage","\u002Fdocs\u002Finstall\u002Ffile-storage",[],{"title":907,"path":908,"order":605,"children":909},"Install FlowFuse on Kubernetes","\u002Fdocs\u002Finstall\u002Fkubernetes",[910,914,918,922,926,930],{"title":911,"path":912,"order":605,"children":913},"AWS EKS Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws",[],{"title":915,"path":916,"order":605,"children":917},"AWS EKS Installation with Terraform and Helm","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws-terraform",[],{"title":919,"path":920,"order":605,"children":921},"Digital Ocean Kubernetes Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fdigital-ocean",[],{"title":923,"path":924,"order":605,"children":925},"Ingress Controller Migration","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fingress-controller-migration",[],{"title":927,"path":928,"order":605,"children":929},"Kubernetes Project Stacks","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fstacks",[],{"title":931,"path":932,"order":605,"children":933},"OpenShift Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fopenshift",[],{"title":935,"path":936,"order":605,"children":937},"migration","\u002Fdocs\u002Fmigration",[938,941],{"title":712,"path":939,"order":79,"children":940},"\u002Fdocs\u002Fmigration\u002Fintroduction",[],{"title":942,"path":943,"order":605,"children":944},"Node-RED Tools plugin","\u002Fdocs\u002Fmigration\u002Fnode-red-tools",[],{"title":248,"path":946,"order":605,"children":947},"\u002Fdocs\u002Fuser",[948,952,956,960,964,969,973,977,981,985,989,993,1005,1009,1013,1017,1021,1025,1029,1033,1037,1041,1045,1049,1053,1057,1060,1064],{"title":949,"path":950,"order":79,"children":951},"Getting Started","\u002Fdocs\u002Fuser\u002Fintroduction",[],{"title":953,"path":954,"order":79,"children":955},"Static asset service","\u002Fdocs\u002Fuser\u002Fstatic-asset-service",[],{"title":957,"path":958,"order":173,"children":959},"Bill of Materials","\u002Fdocs\u002Fuser\u002Fbill-of-materials",[],{"title":961,"path":962,"order":173,"children":963},"FlowFuse Concepts","\u002Fdocs\u002Fuser\u002Fconcepts",[],{"title":965,"path":966,"order":967,"children":968},"Instance States","\u002Fdocs\u002Fuser\u002Finstance-states",10,[],{"title":970,"path":971,"order":605,"children":972},"Changing the Stack","\u002Fdocs\u002Fuser\u002Fchangestack",[],{"title":974,"path":975,"order":605,"children":976},"Custom Hostnames","\u002Fdocs\u002Fuser\u002Fcustom-hostnames",[],{"title":978,"path":979,"order":605,"children":980},"Custom Node Packages","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages",[],{"title":982,"path":983,"order":605,"children":984},"Dashboards","\u002Fdocs\u002Fuser\u002Fdashboards",[],{"title":986,"path":987,"order":605,"children":988},"DevOps Pipelines","\u002Fdocs\u002Fuser\u002Fdevops-pipelines",[],{"title":990,"path":991,"order":605,"children":992},"Environment Variables","\u002Fdocs\u002Fuser\u002Fenvvar",[],{"title":994,"path":995,"order":605,"children":996},"FlowFuse Expert","\u002Fdocs\u002Fuser\u002Fexpert",[997,1001],{"title":998,"path":999,"order":605,"children":1000},"AI in Node-RED","\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai",[],{"title":1002,"path":1003,"order":605,"children":1004},"Chat Interface","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat",[],{"title":1006,"path":1007,"order":605,"children":1008},"FlowFuse File Nodes","\u002Fdocs\u002Fuser\u002Ffilenodes",[],{"title":1010,"path":1011,"order":605,"children":1012},"FlowFuse MQTT Nodes","\u002Fdocs\u002Fuser\u002Fmqtt-nodes",[],{"title":1014,"path":1015,"order":605,"children":1016},"FlowFuse Persistent Context","\u002Fdocs\u002Fuser\u002Fpersistent-context",[],{"title":1018,"path":1019,"order":605,"children":1020},"FlowFuse Project Nodes","\u002Fdocs\u002Fuser\u002Fprojectnodes",[],{"title":1022,"path":1023,"order":605,"children":1024},"FlowFuse Tables","\u002Fdocs\u002Fuser\u002Fff-tables",[],{"title":1026,"path":1027,"order":605,"children":1028},"Groups","\u002Fdocs\u002Fuser\u002Fdevice-groups",[],{"title":1030,"path":1031,"order":605,"children":1032},"High Availability mode","\u002Fdocs\u002Fuser\u002Fhigh-availability",[],{"title":1034,"path":1035,"order":605,"children":1036},"HTTP Access Tokens","\u002Fdocs\u002Fuser\u002Fhttp-access-tokens",[],{"title":1038,"path":1039,"order":605,"children":1040},"Instance Settings","\u002Fdocs\u002Fuser\u002Finstance-settings",[],{"title":1042,"path":1043,"order":605,"children":1044},"Logging","\u002Fdocs\u002Fuser\u002Flogs",[],{"title":1046,"path":1047,"order":605,"children":1048},"Role-Based Access Control","\u002Fdocs\u002Fuser\u002Frole-based-access-control",[],{"title":1050,"path":1051,"order":605,"children":1052},"Shared Team Library","\u002Fdocs\u002Fuser\u002Fshared-library",[],{"title":1054,"path":1055,"order":605,"children":1056},"Snapshots","\u002Fdocs\u002Fuser\u002Fsnapshots",[],{"title":791,"path":1058,"order":605,"children":1059},"\u002Fdocs\u002Fuser\u002Fteambroker",[],{"title":1061,"path":1062,"order":605,"children":1063},"Teams","\u002Fdocs\u002Fuser\u002Fteam",[],{"title":1065,"path":1066,"order":605,"children":1067},"User Settings","\u002Fdocs\u002Fuser\u002Fuser-settings",[],1786546040096]