[{"data":1,"prerenderedAt":1781},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes\u002F":3,"docs-nav":1329},{"id":4,"title":5,"body":6,"description":83,"extension":1317,"layout":1318,"meta":1319,"navGroup":1320,"navGroupOrder":1318,"navOrder":156,"navTitle":5,"navigation":1321,"originalPath":1322,"path":1323,"redirect":1318,"seo":1324,"stem":1325,"updated":1326,"version":1327,"__hash__":1328},"docs\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes.md","Kubernetes Install",{"type":7,"value":8,"toc":1312},"minimark",[9,13,18,22,25,52,55,65,68,71,77,111,114,615,618,621,627,633,653,656,662,1308],[10,11,5],"h1",{"id":12},"kubernetes-install",[14,15,17],"h2",{"id":16},"when-to-use-each-option","When to Use Each Option",[19,20,21],"p",{},"Running the Device Agent in Kubernetes is appropriate when devices are containerized or managed as part of a Kubernetes-based edge or infrastructure platform.",[19,23,24],{},"Choose your deployment pattern based on how you manage device identity:",[26,27,28,44],"ul",{},[29,30,31,35,38,39,43],"li",{},[32,33,34],"strong",{},"Fixed Configuration",[36,37],"br",{},"\nUse when the device already exists in FlowFuse and you have a ",[40,41,42],"code",{},"device.yml"," with its credentials. One deployment maps to one device identity.",[29,45,46,49,51],{},[32,47,48],{},"Automatic Provisioning",[36,50],{},"\nUse when devices should register themselves at startup using a Provisioning Token. Each instance requires writable persistent storage.",[19,53,54],{},"Any deployment on Kubernetes is going to be specific to the environment and requirements of the solution. The following examples show two common patterns for running the FlowFuse Device Agent on Kubernetes:",[26,56,57,62],{},[29,58,59,60],{},"Fixed configuration using a static ",[40,61,42],{},[29,63,64],{},"Automatic provisioning using a FlowFuse Provisioning Token",[19,66,67],{},"Choose the approach that matches how you manage device lifecycle and credentials.",[14,69,34],{"id":70},"fixed-configuration",[19,72,73,74,76],{},"If you have an existing ",[40,75,42],{}," file containing a set of Device Agent credentials.",[78,79,84],"pre",{"className":80,"code":81,"language":82,"meta":83,"style":83},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","kubectl create secret generic device-one-secret --from-file=device.yml=.\u002Fdevice.yml\n","bash","",[40,85,86],{"__ignoreMap":83},[87,88,91,95,99,102,105,108],"span",{"class":89,"line":90},"line",1,[87,92,94],{"class":93},"sBMFI","kubectl",[87,96,98],{"class":97},"sfazB"," create",[87,100,101],{"class":97}," secret",[87,103,104],{"class":97}," generic",[87,106,107],{"class":97}," device-one-secret",[87,109,110],{"class":97}," --from-file=device.yml=.\u002Fdevice.yml\n",[19,112,113],{},"The following manifest will create a Deployment and Service for a device using the supplied Secret as its credentials",[78,115,119],{"className":116,"code":117,"language":118,"meta":83,"style":83},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","apiVersion: apps\u002Fv1\nkind: Deployment\nmetadata:\n  name: device-one\n  labels:\n    app: device-one\nspec:\n  replicas: 1 # there can only be one replica as there is one configuration\n  revisionHistoryLimit: 10\n  selector:\n    matchLabels:\n      app: device-one\n  template:\n    metadata:\n      labels:\n        app: device-one\n    spec:\n      containers:\n      - name: device-one\n        image: flowfuse\u002Fdevice-agent:latest\n        ports:\n        - containerPort: 1880\n        volumeMounts:\n        - name: config\n          mountPath: \"\u002Fopt\u002Fflowfuse-device\u002Fdevice.yml\"\n          subPath: \"device.yml\"\n          readOnly: true\n        resources:\n          limits:\n            cpu: 1000m\n            memory: 256Mi\n          requests:\n            cpu: 500m\n            memory: 128Mi\n      volumes:\n      - name: config\n        secret:\n          secretName: device-one-secret\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: device-one-service\nspec:\n  selector:\n    app: device-one\n  ports:\n  - protocol: TCP\n    port: 1880\n    targetPort: 1880\n","yaml",[40,120,121,134,145,154,165,173,183,191,207,218,226,234,244,252,260,268,278,286,294,307,318,326,340,348,360,377,391,403,411,419,430,441,449,459,469,477,488,496,507,513,523,533,540,550,557,564,573,581,595,605],{"__ignoreMap":83},[87,122,123,127,131],{"class":89,"line":90},[87,124,126],{"class":125},"swJcz","apiVersion",[87,128,130],{"class":129},"sMK4o",":",[87,132,133],{"class":97}," apps\u002Fv1\n",[87,135,137,140,142],{"class":89,"line":136},2,[87,138,139],{"class":125},"kind",[87,141,130],{"class":129},[87,143,144],{"class":97}," Deployment\n",[87,146,148,151],{"class":89,"line":147},3,[87,149,150],{"class":125},"metadata",[87,152,153],{"class":129},":\n",[87,155,157,160,162],{"class":89,"line":156},4,[87,158,159],{"class":125},"  name",[87,161,130],{"class":129},[87,163,164],{"class":97}," device-one\n",[87,166,168,171],{"class":89,"line":167},5,[87,169,170],{"class":125},"  labels",[87,172,153],{"class":129},[87,174,176,179,181],{"class":89,"line":175},6,[87,177,178],{"class":125},"    app",[87,180,130],{"class":129},[87,182,164],{"class":97},[87,184,186,189],{"class":89,"line":185},7,[87,187,188],{"class":125},"spec",[87,190,153],{"class":129},[87,192,194,197,199,203],{"class":89,"line":193},8,[87,195,196],{"class":125},"  replicas",[87,198,130],{"class":129},[87,200,202],{"class":201},"sbssI"," 1",[87,204,206],{"class":205},"sHwdD"," # there can only be one replica as there is one configuration\n",[87,208,210,213,215],{"class":89,"line":209},9,[87,211,212],{"class":125},"  revisionHistoryLimit",[87,214,130],{"class":129},[87,216,217],{"class":201}," 10\n",[87,219,221,224],{"class":89,"line":220},10,[87,222,223],{"class":125},"  selector",[87,225,153],{"class":129},[87,227,229,232],{"class":89,"line":228},11,[87,230,231],{"class":125},"    matchLabels",[87,233,153],{"class":129},[87,235,237,240,242],{"class":89,"line":236},12,[87,238,239],{"class":125},"      app",[87,241,130],{"class":129},[87,243,164],{"class":97},[87,245,247,250],{"class":89,"line":246},13,[87,248,249],{"class":125},"  template",[87,251,153],{"class":129},[87,253,255,258],{"class":89,"line":254},14,[87,256,257],{"class":125},"    metadata",[87,259,153],{"class":129},[87,261,263,266],{"class":89,"line":262},15,[87,264,265],{"class":125},"      labels",[87,267,153],{"class":129},[87,269,271,274,276],{"class":89,"line":270},16,[87,272,273],{"class":125},"        app",[87,275,130],{"class":129},[87,277,164],{"class":97},[87,279,281,284],{"class":89,"line":280},17,[87,282,283],{"class":125},"    spec",[87,285,153],{"class":129},[87,287,289,292],{"class":89,"line":288},18,[87,290,291],{"class":125},"      containers",[87,293,153],{"class":129},[87,295,297,300,303,305],{"class":89,"line":296},19,[87,298,299],{"class":129},"      -",[87,301,302],{"class":125}," name",[87,304,130],{"class":129},[87,306,164],{"class":97},[87,308,310,313,315],{"class":89,"line":309},20,[87,311,312],{"class":125},"        image",[87,314,130],{"class":129},[87,316,317],{"class":97}," flowfuse\u002Fdevice-agent:latest\n",[87,319,321,324],{"class":89,"line":320},21,[87,322,323],{"class":125},"        ports",[87,325,153],{"class":129},[87,327,329,332,335,337],{"class":89,"line":328},22,[87,330,331],{"class":129},"        -",[87,333,334],{"class":125}," containerPort",[87,336,130],{"class":129},[87,338,339],{"class":201}," 1880\n",[87,341,343,346],{"class":89,"line":342},23,[87,344,345],{"class":125},"        volumeMounts",[87,347,153],{"class":129},[87,349,351,353,355,357],{"class":89,"line":350},24,[87,352,331],{"class":129},[87,354,302],{"class":125},[87,356,130],{"class":129},[87,358,359],{"class":97}," config\n",[87,361,363,366,368,371,374],{"class":89,"line":362},25,[87,364,365],{"class":125},"          mountPath",[87,367,130],{"class":129},[87,369,370],{"class":129}," \"",[87,372,373],{"class":97},"\u002Fopt\u002Fflowfuse-device\u002Fdevice.yml",[87,375,376],{"class":129},"\"\n",[87,378,380,383,385,387,389],{"class":89,"line":379},26,[87,381,382],{"class":125},"          subPath",[87,384,130],{"class":129},[87,386,370],{"class":129},[87,388,42],{"class":97},[87,390,376],{"class":129},[87,392,394,397,399],{"class":89,"line":393},27,[87,395,396],{"class":125},"          readOnly",[87,398,130],{"class":129},[87,400,402],{"class":401},"sfNiH"," true\n",[87,404,406,409],{"class":89,"line":405},28,[87,407,408],{"class":125},"        resources",[87,410,153],{"class":129},[87,412,414,417],{"class":89,"line":413},29,[87,415,416],{"class":125},"          limits",[87,418,153],{"class":129},[87,420,422,425,427],{"class":89,"line":421},30,[87,423,424],{"class":125},"            cpu",[87,426,130],{"class":129},[87,428,429],{"class":97}," 1000m\n",[87,431,433,436,438],{"class":89,"line":432},31,[87,434,435],{"class":125},"            memory",[87,437,130],{"class":129},[87,439,440],{"class":97}," 256Mi\n",[87,442,444,447],{"class":89,"line":443},32,[87,445,446],{"class":125},"          requests",[87,448,153],{"class":129},[87,450,452,454,456],{"class":89,"line":451},33,[87,453,424],{"class":125},[87,455,130],{"class":129},[87,457,458],{"class":97}," 500m\n",[87,460,462,464,466],{"class":89,"line":461},34,[87,463,435],{"class":125},[87,465,130],{"class":129},[87,467,468],{"class":97}," 128Mi\n",[87,470,472,475],{"class":89,"line":471},35,[87,473,474],{"class":125},"      volumes",[87,476,153],{"class":129},[87,478,480,482,484,486],{"class":89,"line":479},36,[87,481,299],{"class":129},[87,483,302],{"class":125},[87,485,130],{"class":129},[87,487,359],{"class":97},[87,489,491,494],{"class":89,"line":490},37,[87,492,493],{"class":125},"        secret",[87,495,153],{"class":129},[87,497,499,502,504],{"class":89,"line":498},38,[87,500,501],{"class":125},"          secretName",[87,503,130],{"class":129},[87,505,506],{"class":97}," device-one-secret\n",[87,508,510],{"class":89,"line":509},39,[87,511,512],{"class":93},"---\n",[87,514,516,518,520],{"class":89,"line":515},40,[87,517,126],{"class":125},[87,519,130],{"class":129},[87,521,522],{"class":97}," v1\n",[87,524,526,528,530],{"class":89,"line":525},41,[87,527,139],{"class":125},[87,529,130],{"class":129},[87,531,532],{"class":97}," Service\n",[87,534,536,538],{"class":89,"line":535},42,[87,537,150],{"class":125},[87,539,153],{"class":129},[87,541,543,545,547],{"class":89,"line":542},43,[87,544,159],{"class":125},[87,546,130],{"class":129},[87,548,549],{"class":97}," device-one-service\n",[87,551,553,555],{"class":89,"line":552},44,[87,554,188],{"class":125},[87,556,153],{"class":129},[87,558,560,562],{"class":89,"line":559},45,[87,561,223],{"class":125},[87,563,153],{"class":129},[87,565,567,569,571],{"class":89,"line":566},46,[87,568,178],{"class":125},[87,570,130],{"class":129},[87,572,164],{"class":97},[87,574,576,579],{"class":89,"line":575},47,[87,577,578],{"class":125},"  ports",[87,580,153],{"class":129},[87,582,584,587,590,592],{"class":89,"line":583},48,[87,585,586],{"class":129},"  -",[87,588,589],{"class":125}," protocol",[87,591,130],{"class":129},[87,593,594],{"class":97}," TCP\n",[87,596,598,601,603],{"class":89,"line":597},49,[87,599,600],{"class":125},"    port",[87,602,130],{"class":129},[87,604,339],{"class":201},[87,606,608,611,613],{"class":89,"line":607},50,[87,609,610],{"class":125},"    targetPort",[87,612,130],{"class":129},[87,614,339],{"class":201},[14,616,48],{"id":617},"automatic-provisioning",[19,619,620],{},"Using a FlowFuse Provisioning Token to automatically configure a new Device Agent on deployment.",[19,622,623,624,626],{},"Because the Device Agent will need to re-write the ",[40,625,42],{}," file it can no longer be stored in a Secret and a PersistentVolume must be used for each instance of the Device Agent.",[19,628,629,630,632],{},"A Secret is used to hold the initial ",[40,631,42],{}," which contains the provisioning token.",[78,634,636],{"className":80,"code":635,"language":82,"meta":83,"style":83},"kubectl create secret generic device-provisioning-secret --from-file=device.yml=.\u002Fdevice.yml\n",[40,637,638],{"__ignoreMap":83},[87,639,640,642,644,646,648,651],{"class":89,"line":90},[87,641,94],{"class":93},[87,643,98],{"class":97},[87,645,101],{"class":97},[87,647,104],{"class":97},[87,649,650],{"class":97}," device-provisioning-secret",[87,652,110],{"class":97},[19,654,655],{},"The following manifest will create a Deployment, Service and PVC for a device using the supplied Secret as the source of the Provisioning token.",[19,657,658,659,661],{},"The PVC will be used to store the updated ",[40,660,42],{}," and the Node-RED nodes installed by the Remote Instance.",[78,663,665],{"className":116,"code":664,"language":118,"meta":83,"style":83},"apiVersion: apps\u002Fv1\nkind: Deployment\nmetadata:\n  name: device-one\n  labels:\n    app: device-one\nspec:\n  replicas: 1 # to scale to more than one instance you should modify this to use a StatefulSet\n  revisionHistoryLimit: 10\n  selector:\n    matchLabels:\n      app: device-one\n  template:\n    metadata:\n      labels:\n        app: device-one\n    spec:\n      initContainers: # on first run copies the device.yml from Secret to PVC volume\n      - name: config-copy\n        image: busybox:latest\n        command: \n        - \"\u002Fbin\u002Fsh\"\n        - \"-c\"\n        - \"if [ ! -f \u002Fopt\u002Fflowfuse-device\u002Fdevice.yml ]; then cp \u002Ftmp\u002Fdevice.yml \u002Fopt\u002Fflowfuse-device\u002Fdevice.yml; fi\"\n        volumeMounts:\n        - name: config\n          mountPath: \"\u002Fopt\u002Fflowfuse-device\"\n        - name: initial-config\n          mountPath: \"\u002Ftmp\u002Fdevice.yml\"\n          subPath: \"device.yml\"\n          readOnly: true\n      containers:\n      - name: device-one\n        image: flowfuse\u002Fdevice-agent:latest\n        ports:\n        - containerPort: 1880\n        volumeMounts:\n        - name: config\n          mountPath: \"\u002Fopt\u002Fflowfuse-device\"\n        resources:\n          limits:\n            cpu: 1000m\n            memory: 256Mi\n          requests:\n            cpu: 500m\n            memory: 128Mi\n      volumes:\n      - name: initial-config\n        secret:\n          secretName: device-provisioning-secret\n      - name: config\n        persistentVolumeClaim:\n          claimName: device-one-pvc\n        \n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: device-one-service\nspec:\n  selector:\n    app: device-one\n  ports:\n  - protocol: TCP\n    port: 1880\n    targetPort: 1880\n---\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: device-one-pvc\nspec:\n  accessModes:\n  - ReadWriteOnce\n  resources:\n    requests:\n      storage: 1Gi\n",[40,666,667,675,683,689,697,703,711,717,728,736,742,748,756,762,768,774,782,788,798,809,818,829,840,851,862,868,878,891,902,915,927,935,941,951,959,965,975,981,991,1003,1009,1015,1023,1031,1037,1045,1053,1059,1069,1075,1084,1095,1103,1114,1120,1125,1134,1143,1150,1159,1166,1173,1182,1189,1200,1209,1218,1223,1232,1242,1249,1258,1265,1273,1281,1289,1297],{"__ignoreMap":83},[87,668,669,671,673],{"class":89,"line":90},[87,670,126],{"class":125},[87,672,130],{"class":129},[87,674,133],{"class":97},[87,676,677,679,681],{"class":89,"line":136},[87,678,139],{"class":125},[87,680,130],{"class":129},[87,682,144],{"class":97},[87,684,685,687],{"class":89,"line":147},[87,686,150],{"class":125},[87,688,153],{"class":129},[87,690,691,693,695],{"class":89,"line":156},[87,692,159],{"class":125},[87,694,130],{"class":129},[87,696,164],{"class":97},[87,698,699,701],{"class":89,"line":167},[87,700,170],{"class":125},[87,702,153],{"class":129},[87,704,705,707,709],{"class":89,"line":175},[87,706,178],{"class":125},[87,708,130],{"class":129},[87,710,164],{"class":97},[87,712,713,715],{"class":89,"line":185},[87,714,188],{"class":125},[87,716,153],{"class":129},[87,718,719,721,723,725],{"class":89,"line":193},[87,720,196],{"class":125},[87,722,130],{"class":129},[87,724,202],{"class":201},[87,726,727],{"class":205}," # to scale to more than one instance you should modify this to use a StatefulSet\n",[87,729,730,732,734],{"class":89,"line":209},[87,731,212],{"class":125},[87,733,130],{"class":129},[87,735,217],{"class":201},[87,737,738,740],{"class":89,"line":220},[87,739,223],{"class":125},[87,741,153],{"class":129},[87,743,744,746],{"class":89,"line":228},[87,745,231],{"class":125},[87,747,153],{"class":129},[87,749,750,752,754],{"class":89,"line":236},[87,751,239],{"class":125},[87,753,130],{"class":129},[87,755,164],{"class":97},[87,757,758,760],{"class":89,"line":246},[87,759,249],{"class":125},[87,761,153],{"class":129},[87,763,764,766],{"class":89,"line":254},[87,765,257],{"class":125},[87,767,153],{"class":129},[87,769,770,772],{"class":89,"line":262},[87,771,265],{"class":125},[87,773,153],{"class":129},[87,775,776,778,780],{"class":89,"line":270},[87,777,273],{"class":125},[87,779,130],{"class":129},[87,781,164],{"class":97},[87,783,784,786],{"class":89,"line":280},[87,785,283],{"class":125},[87,787,153],{"class":129},[87,789,790,793,795],{"class":89,"line":288},[87,791,792],{"class":125},"      initContainers",[87,794,130],{"class":129},[87,796,797],{"class":205}," # on first run copies the device.yml from Secret to PVC volume\n",[87,799,800,802,804,806],{"class":89,"line":296},[87,801,299],{"class":129},[87,803,302],{"class":125},[87,805,130],{"class":129},[87,807,808],{"class":97}," config-copy\n",[87,810,811,813,815],{"class":89,"line":309},[87,812,312],{"class":125},[87,814,130],{"class":129},[87,816,817],{"class":97}," busybox:latest\n",[87,819,820,823,825],{"class":89,"line":320},[87,821,822],{"class":125},"        command",[87,824,130],{"class":129},[87,826,828],{"class":827},"sTEyZ"," \n",[87,830,831,833,835,838],{"class":89,"line":328},[87,832,331],{"class":129},[87,834,370],{"class":129},[87,836,837],{"class":97},"\u002Fbin\u002Fsh",[87,839,376],{"class":129},[87,841,842,844,846,849],{"class":89,"line":342},[87,843,331],{"class":129},[87,845,370],{"class":129},[87,847,848],{"class":97},"-c",[87,850,376],{"class":129},[87,852,853,855,857,860],{"class":89,"line":350},[87,854,331],{"class":129},[87,856,370],{"class":129},[87,858,859],{"class":97},"if [ ! -f \u002Fopt\u002Fflowfuse-device\u002Fdevice.yml ]; then cp \u002Ftmp\u002Fdevice.yml \u002Fopt\u002Fflowfuse-device\u002Fdevice.yml; fi",[87,861,376],{"class":129},[87,863,864,866],{"class":89,"line":362},[87,865,345],{"class":125},[87,867,153],{"class":129},[87,869,870,872,874,876],{"class":89,"line":379},[87,871,331],{"class":129},[87,873,302],{"class":125},[87,875,130],{"class":129},[87,877,359],{"class":97},[87,879,880,882,884,886,889],{"class":89,"line":393},[87,881,365],{"class":125},[87,883,130],{"class":129},[87,885,370],{"class":129},[87,887,888],{"class":97},"\u002Fopt\u002Fflowfuse-device",[87,890,376],{"class":129},[87,892,893,895,897,899],{"class":89,"line":405},[87,894,331],{"class":129},[87,896,302],{"class":125},[87,898,130],{"class":129},[87,900,901],{"class":97}," initial-config\n",[87,903,904,906,908,910,913],{"class":89,"line":413},[87,905,365],{"class":125},[87,907,130],{"class":129},[87,909,370],{"class":129},[87,911,912],{"class":97},"\u002Ftmp\u002Fdevice.yml",[87,914,376],{"class":129},[87,916,917,919,921,923,925],{"class":89,"line":421},[87,918,382],{"class":125},[87,920,130],{"class":129},[87,922,370],{"class":129},[87,924,42],{"class":97},[87,926,376],{"class":129},[87,928,929,931,933],{"class":89,"line":432},[87,930,396],{"class":125},[87,932,130],{"class":129},[87,934,402],{"class":401},[87,936,937,939],{"class":89,"line":443},[87,938,291],{"class":125},[87,940,153],{"class":129},[87,942,943,945,947,949],{"class":89,"line":451},[87,944,299],{"class":129},[87,946,302],{"class":125},[87,948,130],{"class":129},[87,950,164],{"class":97},[87,952,953,955,957],{"class":89,"line":461},[87,954,312],{"class":125},[87,956,130],{"class":129},[87,958,317],{"class":97},[87,960,961,963],{"class":89,"line":471},[87,962,323],{"class":125},[87,964,153],{"class":129},[87,966,967,969,971,973],{"class":89,"line":479},[87,968,331],{"class":129},[87,970,334],{"class":125},[87,972,130],{"class":129},[87,974,339],{"class":201},[87,976,977,979],{"class":89,"line":490},[87,978,345],{"class":125},[87,980,153],{"class":129},[87,982,983,985,987,989],{"class":89,"line":498},[87,984,331],{"class":129},[87,986,302],{"class":125},[87,988,130],{"class":129},[87,990,359],{"class":97},[87,992,993,995,997,999,1001],{"class":89,"line":509},[87,994,365],{"class":125},[87,996,130],{"class":129},[87,998,370],{"class":129},[87,1000,888],{"class":97},[87,1002,376],{"class":129},[87,1004,1005,1007],{"class":89,"line":515},[87,1006,408],{"class":125},[87,1008,153],{"class":129},[87,1010,1011,1013],{"class":89,"line":525},[87,1012,416],{"class":125},[87,1014,153],{"class":129},[87,1016,1017,1019,1021],{"class":89,"line":535},[87,1018,424],{"class":125},[87,1020,130],{"class":129},[87,1022,429],{"class":97},[87,1024,1025,1027,1029],{"class":89,"line":542},[87,1026,435],{"class":125},[87,1028,130],{"class":129},[87,1030,440],{"class":97},[87,1032,1033,1035],{"class":89,"line":552},[87,1034,446],{"class":125},[87,1036,153],{"class":129},[87,1038,1039,1041,1043],{"class":89,"line":559},[87,1040,424],{"class":125},[87,1042,130],{"class":129},[87,1044,458],{"class":97},[87,1046,1047,1049,1051],{"class":89,"line":566},[87,1048,435],{"class":125},[87,1050,130],{"class":129},[87,1052,468],{"class":97},[87,1054,1055,1057],{"class":89,"line":575},[87,1056,474],{"class":125},[87,1058,153],{"class":129},[87,1060,1061,1063,1065,1067],{"class":89,"line":583},[87,1062,299],{"class":129},[87,1064,302],{"class":125},[87,1066,130],{"class":129},[87,1068,901],{"class":97},[87,1070,1071,1073],{"class":89,"line":597},[87,1072,493],{"class":125},[87,1074,153],{"class":129},[87,1076,1077,1079,1081],{"class":89,"line":607},[87,1078,501],{"class":125},[87,1080,130],{"class":129},[87,1082,1083],{"class":97}," device-provisioning-secret\n",[87,1085,1087,1089,1091,1093],{"class":89,"line":1086},51,[87,1088,299],{"class":129},[87,1090,302],{"class":125},[87,1092,130],{"class":129},[87,1094,359],{"class":97},[87,1096,1098,1101],{"class":89,"line":1097},52,[87,1099,1100],{"class":125},"        persistentVolumeClaim",[87,1102,153],{"class":129},[87,1104,1106,1109,1111],{"class":89,"line":1105},53,[87,1107,1108],{"class":125},"          claimName",[87,1110,130],{"class":129},[87,1112,1113],{"class":97}," device-one-pvc\n",[87,1115,1117],{"class":89,"line":1116},54,[87,1118,1119],{"class":827},"        \n",[87,1121,1123],{"class":89,"line":1122},55,[87,1124,512],{"class":93},[87,1126,1128,1130,1132],{"class":89,"line":1127},56,[87,1129,126],{"class":125},[87,1131,130],{"class":129},[87,1133,522],{"class":97},[87,1135,1137,1139,1141],{"class":89,"line":1136},57,[87,1138,139],{"class":125},[87,1140,130],{"class":129},[87,1142,532],{"class":97},[87,1144,1146,1148],{"class":89,"line":1145},58,[87,1147,150],{"class":125},[87,1149,153],{"class":129},[87,1151,1153,1155,1157],{"class":89,"line":1152},59,[87,1154,159],{"class":125},[87,1156,130],{"class":129},[87,1158,549],{"class":97},[87,1160,1162,1164],{"class":89,"line":1161},60,[87,1163,188],{"class":125},[87,1165,153],{"class":129},[87,1167,1169,1171],{"class":89,"line":1168},61,[87,1170,223],{"class":125},[87,1172,153],{"class":129},[87,1174,1176,1178,1180],{"class":89,"line":1175},62,[87,1177,178],{"class":125},[87,1179,130],{"class":129},[87,1181,164],{"class":97},[87,1183,1185,1187],{"class":89,"line":1184},63,[87,1186,578],{"class":125},[87,1188,153],{"class":129},[87,1190,1192,1194,1196,1198],{"class":89,"line":1191},64,[87,1193,586],{"class":129},[87,1195,589],{"class":125},[87,1197,130],{"class":129},[87,1199,594],{"class":97},[87,1201,1203,1205,1207],{"class":89,"line":1202},65,[87,1204,600],{"class":125},[87,1206,130],{"class":129},[87,1208,339],{"class":201},[87,1210,1212,1214,1216],{"class":89,"line":1211},66,[87,1213,610],{"class":125},[87,1215,130],{"class":129},[87,1217,339],{"class":201},[87,1219,1221],{"class":89,"line":1220},67,[87,1222,512],{"class":93},[87,1224,1226,1228,1230],{"class":89,"line":1225},68,[87,1227,126],{"class":125},[87,1229,130],{"class":129},[87,1231,522],{"class":97},[87,1233,1235,1237,1239],{"class":89,"line":1234},69,[87,1236,139],{"class":125},[87,1238,130],{"class":129},[87,1240,1241],{"class":97}," PersistentVolumeClaim\n",[87,1243,1245,1247],{"class":89,"line":1244},70,[87,1246,150],{"class":125},[87,1248,153],{"class":129},[87,1250,1252,1254,1256],{"class":89,"line":1251},71,[87,1253,159],{"class":125},[87,1255,130],{"class":129},[87,1257,1113],{"class":97},[87,1259,1261,1263],{"class":89,"line":1260},72,[87,1262,188],{"class":125},[87,1264,153],{"class":129},[87,1266,1268,1271],{"class":89,"line":1267},73,[87,1269,1270],{"class":125},"  accessModes",[87,1272,153],{"class":129},[87,1274,1276,1278],{"class":89,"line":1275},74,[87,1277,586],{"class":129},[87,1279,1280],{"class":97}," ReadWriteOnce\n",[87,1282,1284,1287],{"class":89,"line":1283},75,[87,1285,1286],{"class":125},"  resources",[87,1288,153],{"class":129},[87,1290,1292,1295],{"class":89,"line":1291},76,[87,1293,1294],{"class":125},"    requests",[87,1296,153],{"class":129},[87,1298,1300,1303,1305],{"class":89,"line":1299},77,[87,1301,1302],{"class":125},"      storage",[87,1304,130],{"class":129},[87,1306,1307],{"class":97}," 1Gi\n",[1309,1310,1311],"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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":83,"searchDepth":156,"depth":156,"links":1313},[1314,1315,1316],{"id":16,"depth":136,"text":17},{"id":70,"depth":136,"text":34},{"id":617,"depth":136,"text":48},"md",null,{},"DeviceAgentInstallation",true,"device-agent\u002Finstall\u002Fkubernetes.md","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes",{"title":5,"description":83},"docs\u002Fdevice-agent\u002Finstall\u002Fkubernetes","2026-02-27 11:50:31 +0000","2.33.2","Q9YVsMQtHMm_fhJwffpB5YJbkOo9k1MzEN0rBC-GFPA",[1330,1337,1356,1367],{"name":1331,"order":90,"children":1332},"FlowFuse User Manuals",[1333],{"title":1334,"path":1335,"group":1331,"groupOrder":90,"order":136,"children":1336},"FlowFuse API","\u002Fdocs\u002Fapi",[],{"name":1338,"order":156,"children":1339},"FlowFuse Self-Hosted",[1340,1344],{"title":1341,"path":1342,"group":1338,"groupOrder":156,"order":90,"children":1343},"Quick Start","\u002Fdocs\u002Fquick-start",[],{"title":1345,"path":1346,"group":1338,"groupOrder":156,"order":147,"children":1347},"Upgrading FlowFuse","\u002Fdocs\u002Fupgrade",[1348,1352],{"title":1349,"path":1350,"order":1318,"children":1351},"Installing a license","\u002Fdocs\u002Fupgrade\u002Fopen-source-to-premium",[],{"title":1353,"path":1354,"order":1318,"children":1355},"Upgrading the Node-RED version","\u002Fdocs\u002Fupgrade\u002Fnodered-version",[],{"name":1357,"order":167,"children":1358},"Support",[1359,1363],{"title":1360,"path":1361,"group":1357,"groupOrder":167,"order":147,"children":1362},"Premium Support","\u002Fdocs\u002Fpremium-support",[],{"title":1364,"path":1365,"group":1357,"groupOrder":167,"order":1318,"children":1366},"Debugging Node-RED issues","\u002Fdocs\u002Fdebugging",[],{"name":1368,"order":1318,"children":1369},"Other",[1370,1418,1430,1509,1554,1573,1647,1658],{"title":1371,"path":1372,"order":1318,"children":1373},"admin","\u002Fdocs\u002Fadmin",[1374,1378,1390,1398,1402,1406,1410,1414],{"title":1375,"path":1376,"order":90,"children":1377},"Administering FlowFuse","\u002Fdocs\u002Fadmin\u002Fintroduction",[],{"title":1379,"path":1380,"order":1318,"children":1381},"Configuring Single Sign-On (SSO)","\u002Fdocs\u002Fadmin\u002Fsso",[1382,1386],{"title":1383,"path":1384,"order":1318,"children":1385},"LDAP SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap",[],{"title":1387,"path":1388,"order":1318,"children":1389},"SAML SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fsaml",[],{"title":1391,"path":1392,"order":1318,"children":1393},"hardening","\u002Fdocs\u002Fadmin\u002Fhardening",[1394],{"title":1395,"path":1396,"order":1318,"children":1397},"Kubernetes Hardening","\u002Fdocs\u002Fadmin\u002Fhardening\u002Fkubernetes",[],{"title":1399,"path":1400,"order":1318,"children":1401},"Monitoring","\u002Fdocs\u002Fadmin\u002Fmonitoring",[],{"title":1403,"path":1404,"order":1318,"children":1405},"Observability","\u002Fdocs\u002Fadmin\u002Fobservability",[],{"title":1407,"path":1408,"order":1318,"children":1409},"Soft Launch Enablement","\u002Fdocs\u002Fadmin\u002Ffeature-flags",[],{"title":1411,"path":1412,"order":1318,"children":1413},"Telemetry","\u002Fdocs\u002Fadmin\u002Ftelemetry",[],{"title":1415,"path":1416,"order":1318,"children":1417},"User Management","\u002Fdocs\u002Fadmin\u002Fuser-management",[],{"title":1419,"path":1420,"order":1318,"children":1421},"cloud","\u002Fdocs\u002Fcloud",[1422,1426],{"title":1423,"path":1424,"order":90,"children":1425},"Introduction","\u002Fdocs\u002Fcloud\u002Fintroduction",[],{"title":1427,"path":1428,"order":1318,"children":1429},"FlowFuse Cloud Billing","\u002Fdocs\u002Fcloud\u002Fbilling",[],{"title":1431,"path":1432,"order":1318,"children":1433},"contribute","\u002Fdocs\u002Fcontribute",[1434,1437,1441,1445,1449,1453,1457,1465,1501,1505],{"title":1423,"path":1435,"order":90,"children":1436},"\u002Fdocs\u002Fcontribute\u002Fintroduction",[],{"title":1438,"path":1439,"order":1318,"children":1440},"Adding Template Settings","\u002Fdocs\u002Fcontribute\u002Fadding-template-settings",[],{"title":1442,"path":1443,"order":1318,"children":1444},"API Design","\u002Fdocs\u002Fcontribute\u002Fapi-design",[],{"title":1446,"path":1447,"order":1318,"children":1448},"Creating debug stack containers","\u002Fdocs\u002Fcontribute\u002Fcreating-debug-stack-containers",[],{"title":1450,"path":1451,"order":1318,"children":1452},"Database migrations","\u002Fdocs\u002Fcontribute\u002Fdb-migrations",[],{"title":1454,"path":1455,"order":1318,"children":1456},"FlowFuse Architecture","\u002Fdocs\u002Fcontribute\u002Farchitecture",[],{"title":1458,"path":1459,"order":1318,"children":1460},"Local Install","\u002Fdocs\u002Fcontribute\u002Flocal",[1461],{"title":1462,"path":1463,"order":1318,"children":1464},"Local Stacks","\u002Fdocs\u002Fcontribute\u002Flocal\u002Fstacks",[],{"title":1466,"path":1467,"order":1318,"children":1468},"State Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows",[1469,1473,1477,1481,1485,1489,1493,1497],{"title":1470,"path":1471,"order":1318,"children":1472},"Device Editor","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fdevice-editor",[],{"title":1474,"path":1475,"order":1318,"children":1476},"Instance states","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-states",[],{"title":1478,"path":1479,"order":1318,"children":1480},"Invite External Users","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Finvite-external-user",[],{"title":1482,"path":1483,"order":1318,"children":1484},"Project Creation","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-create",[],{"title":1486,"path":1487,"order":1318,"children":1488},"Reset Password Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fpassword-reset",[],{"title":1490,"path":1491,"order":1318,"children":1492},"Team creation Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fteam-create",[],{"title":1494,"path":1495,"order":1318,"children":1496},"User Login Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Flogin",[],{"title":1498,"path":1499,"order":1318,"children":1500},"User Sign up Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fsignup",[],{"title":1502,"path":1503,"order":1318,"children":1504},"Team Broker","\u002Fdocs\u002Fcontribute\u002Fteam-broker",[],{"title":1506,"path":1507,"order":1318,"children":1508},"Working with Feature Flags","\u002Fdocs\u002Fcontribute\u002Ffeature-flags",[],{"title":1510,"path":1511,"order":1318,"children":1512},"device-agent","\u002Fdocs\u002Fdevice-agent",[1513,1517,1520,1524,1528,1532],{"title":1514,"path":1515,"order":90,"children":1516},"FlowFuse Device Agent Introduction","\u002Fdocs\u002Fdevice-agent\u002Fintroduction",[],{"title":1341,"path":1518,"order":136,"children":1519},"\u002Fdocs\u002Fdevice-agent\u002Fquickstart",[],{"title":1521,"path":1522,"order":156,"children":1523},"Register your Remote Instance","\u002Fdocs\u002Fdevice-agent\u002Fregister",[],{"title":1525,"path":1526,"order":167,"children":1527},"Running the Agent","\u002Fdocs\u002Fdevice-agent\u002Frunning",[],{"title":1529,"path":1530,"order":175,"children":1531},"Deploying your Flows","\u002Fdocs\u002Fdevice-agent\u002Fdeploy",[],{"title":1533,"path":1534,"order":1318,"children":1535},"install","\u002Fdocs\u002Fdevice-agent\u002Finstall",[1536,1540,1544,1548,1550],{"title":1537,"path":1538,"group":1320,"order":90,"children":1539},"Overview","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview",[],{"title":1541,"path":1542,"group":1320,"order":136,"children":1543},"Device Agent Installer","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdevice-agent-installer",[],{"title":1545,"path":1546,"group":1320,"order":147,"children":1547},"Docker Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdocker",[],{"title":5,"path":1323,"group":1320,"order":156,"children":1549},[],{"title":1551,"path":1552,"group":1320,"order":167,"children":1553},"Manual Install with NPM","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual",[],{"title":1555,"path":1556,"order":1318,"children":1557},"hardware","\u002Fdocs\u002Fhardware",[1558,1561,1565,1569],{"title":1537,"path":1559,"order":90,"children":1560},"\u002Fdocs\u002Fhardware\u002Fintroduction",[],{"title":1562,"path":1563,"order":136,"children":1564},"ctrlX - Node-RED","\u002Fdocs\u002Fhardware\u002Fctrlx-node-red",[],{"title":1566,"path":1567,"order":147,"children":1568},"ctrlX - Device Agent","\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent",[],{"title":1570,"path":1571,"order":147,"children":1572},"Raspberry Pi with Raspbian","\u002Fdocs\u002Fhardware\u002Fraspbian",[],{"title":1533,"path":1574,"order":1318,"children":1575},"\u002Fdocs\u002Finstall",[1576,1579,1583,1587,1607,1611,1615,1619],{"title":1537,"path":1577,"order":90,"children":1578},"\u002Fdocs\u002Finstall\u002Fintroduction",[],{"title":1580,"path":1581,"order":1318,"children":1582},"Configuring FlowFuse","\u002Fdocs\u002Finstall\u002Fconfiguration",[],{"title":1584,"path":1585,"order":1318,"children":1586},"DNS Setup","\u002Fdocs\u002Finstall\u002Fdns-setup",[],{"title":1588,"path":1589,"order":1318,"children":1590},"Docker install","\u002Fdocs\u002Finstall\u002Fdocker",[1591,1595,1599,1603],{"title":1592,"path":1593,"order":1318,"children":1594},"Add Project Stacks on Docker","\u002Fdocs\u002Finstall\u002Fdocker\u002Fstacks",[],{"title":1596,"path":1597,"order":1318,"children":1598},"Docker Engine on Windows","\u002Fdocs\u002Finstall\u002Fdocker\u002Fwindows-docker-ce",[],{"title":1600,"path":1601,"order":1318,"children":1602},"Docker from AWS Market Place","\u002Fdocs\u002Finstall\u002Fdocker\u002Faws-marketplace",[],{"title":1604,"path":1605,"order":1318,"children":1606},"Docker on Digital Ocean","\u002Fdocs\u002Finstall\u002Fdocker\u002Fdigital-ocean",[],{"title":1608,"path":1609,"order":1318,"children":1610},"Email configuration","\u002Fdocs\u002Finstall\u002Femail-providers",[],{"title":1612,"path":1613,"order":1318,"children":1614},"First Run Setup","\u002Fdocs\u002Finstall\u002Ffirst-run",[],{"title":1616,"path":1617,"order":1318,"children":1618},"FlowFuse File Storage","\u002Fdocs\u002Finstall\u002Ffile-storage",[],{"title":1620,"path":1621,"order":1318,"children":1622},"Install FlowFuse on Kubernetes","\u002Fdocs\u002Finstall\u002Fkubernetes",[1623,1627,1631,1635,1639,1643],{"title":1624,"path":1625,"order":1318,"children":1626},"AWS EKS Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws",[],{"title":1628,"path":1629,"order":1318,"children":1630},"AWS EKS Installation with Terraform and Helm","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws-terraform",[],{"title":1632,"path":1633,"order":1318,"children":1634},"Digital Ocean Kubernetes Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fdigital-ocean",[],{"title":1636,"path":1637,"order":1318,"children":1638},"Ingress Controller Migration","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fingress-controller-migration",[],{"title":1640,"path":1641,"order":1318,"children":1642},"Kubernetes Project Stacks","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fstacks",[],{"title":1644,"path":1645,"order":1318,"children":1646},"OpenShift Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fopenshift",[],{"title":1648,"path":1649,"order":1318,"children":1650},"migration","\u002Fdocs\u002Fmigration",[1651,1654],{"title":1423,"path":1652,"order":90,"children":1653},"\u002Fdocs\u002Fmigration\u002Fintroduction",[],{"title":1655,"path":1656,"order":1318,"children":1657},"Node-RED Tools plugin","\u002Fdocs\u002Fmigration\u002Fnode-red-tools",[],{"title":1659,"path":1660,"order":1318,"children":1661},"user","\u002Fdocs\u002Fuser",[1662,1666,1670,1674,1678,1682,1686,1690,1694,1698,1702,1706,1718,1722,1726,1730,1734,1738,1742,1746,1750,1754,1758,1762,1766,1770,1773,1777],{"title":1663,"path":1664,"order":90,"children":1665},"Getting Started","\u002Fdocs\u002Fuser\u002Fintroduction",[],{"title":1667,"path":1668,"order":90,"children":1669},"Static asset service","\u002Fdocs\u002Fuser\u002Fstatic-asset-service",[],{"title":1671,"path":1672,"order":136,"children":1673},"Bill of Materials","\u002Fdocs\u002Fuser\u002Fbill-of-materials",[],{"title":1675,"path":1676,"order":136,"children":1677},"FlowFuse Concepts","\u002Fdocs\u002Fuser\u002Fconcepts",[],{"title":1679,"path":1680,"order":220,"children":1681},"Instance States","\u002Fdocs\u002Fuser\u002Finstance-states",[],{"title":1683,"path":1684,"order":1318,"children":1685},"Changing the Stack","\u002Fdocs\u002Fuser\u002Fchangestack",[],{"title":1687,"path":1688,"order":1318,"children":1689},"Custom Hostnames","\u002Fdocs\u002Fuser\u002Fcustom-hostnames",[],{"title":1691,"path":1692,"order":1318,"children":1693},"Custom Node Packages","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages",[],{"title":1695,"path":1696,"order":1318,"children":1697},"Dashboards","\u002Fdocs\u002Fuser\u002Fdashboards",[],{"title":1699,"path":1700,"order":1318,"children":1701},"DevOps Pipelines","\u002Fdocs\u002Fuser\u002Fdevops-pipelines",[],{"title":1703,"path":1704,"order":1318,"children":1705},"Environment Variables","\u002Fdocs\u002Fuser\u002Fenvvar",[],{"title":1707,"path":1708,"order":1318,"children":1709},"FlowFuse Expert","\u002Fdocs\u002Fuser\u002Fexpert",[1710,1714],{"title":1711,"path":1712,"order":1318,"children":1713},"AI in Node-RED","\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai",[],{"title":1715,"path":1716,"order":1318,"children":1717},"Chat Interface","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat",[],{"title":1719,"path":1720,"order":1318,"children":1721},"FlowFuse File Nodes","\u002Fdocs\u002Fuser\u002Ffilenodes",[],{"title":1723,"path":1724,"order":1318,"children":1725},"FlowFuse MQTT Nodes","\u002Fdocs\u002Fuser\u002Fmqtt-nodes",[],{"title":1727,"path":1728,"order":1318,"children":1729},"FlowFuse Persistent Context","\u002Fdocs\u002Fuser\u002Fpersistent-context",[],{"title":1731,"path":1732,"order":1318,"children":1733},"FlowFuse Project Nodes","\u002Fdocs\u002Fuser\u002Fprojectnodes",[],{"title":1735,"path":1736,"order":1318,"children":1737},"FlowFuse Tables","\u002Fdocs\u002Fuser\u002Fff-tables",[],{"title":1739,"path":1740,"order":1318,"children":1741},"Groups","\u002Fdocs\u002Fuser\u002Fdevice-groups",[],{"title":1743,"path":1744,"order":1318,"children":1745},"High Availability mode","\u002Fdocs\u002Fuser\u002Fhigh-availability",[],{"title":1747,"path":1748,"order":1318,"children":1749},"HTTP Access Tokens","\u002Fdocs\u002Fuser\u002Fhttp-access-tokens",[],{"title":1751,"path":1752,"order":1318,"children":1753},"Instance Settings","\u002Fdocs\u002Fuser\u002Finstance-settings",[],{"title":1755,"path":1756,"order":1318,"children":1757},"Logging","\u002Fdocs\u002Fuser\u002Flogs",[],{"title":1759,"path":1760,"order":1318,"children":1761},"Role-Based Access Control","\u002Fdocs\u002Fuser\u002Frole-based-access-control",[],{"title":1763,"path":1764,"order":1318,"children":1765},"Shared Team Library","\u002Fdocs\u002Fuser\u002Fshared-library",[],{"title":1767,"path":1768,"order":1318,"children":1769},"Snapshots","\u002Fdocs\u002Fuser\u002Fsnapshots",[],{"title":1502,"path":1771,"order":1318,"children":1772},"\u002Fdocs\u002Fuser\u002Fteambroker",[],{"title":1774,"path":1775,"order":1318,"children":1776},"Teams","\u002Fdocs\u002Fuser\u002Fteam",[],{"title":1778,"path":1779,"order":1318,"children":1780},"User Settings","\u002Fdocs\u002Fuser\u002Fuser-settings",[],1786546039927]