[{"data":1,"prerenderedAt":418},["ShallowReactive",2],{"\u002Fdocs\u002Fserver\u002Fconfiguration":3},{"id":4,"title":5,"body":6,"description":410,"extension":411,"meta":412,"navigation":413,"path":414,"seo":415,"stem":416,"__hash__":417},"docs\u002Fdocs\u002Fserver\u002Fconfiguration.md","Configuration",{"type":7,"value":8,"toc":404},"minimark",[9,13,17,22,34,84,141,144,148,242,249,253,260,303,310,314,320,383,400],[10,11,5],"h1",{"id":12},"configuration",[14,15,16],"p",{},"The NetIgnite server is configured with a JSON file and a few environment variables. Agents and\ndevices are not part of the configuration. They live in the database and are managed in the\ndashboard.",[18,19,21],"h2",{"id":20},"configjson","config.json",[14,23,24,25,29,30,33],{},"The server reads ",[26,27,28],"code",{},"config\u002Fconfig.json"," relative to its working directory (in Docker:\n",[26,31,32],{},"\u002Fopt\u002Fnetignite\u002Fconfig\u002Fconfig.json","). If the file is missing, the server copies the sample config\nthere on startup. The sample is an empty object, so all settings use their defaults.",[35,36,41],"pre",{"className":37,"code":38,"filename":21,"language":39,"meta":40,"style":40},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n    \"logLevel\": \"info\"\n}\n","json","",[26,42,43,52,78],{"__ignoreMap":40},[44,45,48],"span",{"class":46,"line":47},"line",1,[44,49,51],{"class":50},"sMK4o","{\n",[44,53,55,58,62,65,68,71,75],{"class":46,"line":54},2,[44,56,57],{"class":50},"    \"",[44,59,61],{"class":60},"spNyl","logLevel",[44,63,64],{"class":50},"\"",[44,66,67],{"class":50},":",[44,69,70],{"class":50}," \"",[44,72,74],{"class":73},"sfazB","info",[44,76,77],{"class":50},"\"\n",[44,79,81],{"class":46,"line":80},3,[44,82,83],{"class":50},"}\n",[85,86,87,106],"table",{},[88,89,90],"thead",{},[91,92,93,97,100,103],"tr",{},[94,95,96],"th",{},"Key",[94,98,99],{},"Type",[94,101,102],{},"Default",[94,104,105],{},"Description",[107,108,109],"tbody",{},[91,110,111,116,134,138],{},[112,113,114],"td",{},[26,115,61],{},[112,117,118,121,122,121,125,121,128,121,131],{},[26,119,120],{},"\"debug\""," | ",[26,123,124],{},"\"info\"",[26,126,127],{},"\"warn\"",[26,129,130],{},"\"error\"",[26,132,133],{},"\"critical\"",[112,135,136],{},[26,137,124],{},[112,139,140],{},"Minimum level of log messages written to the console.",[14,142,143],{},"The file is read once at startup; restart the server after changing it. Invalid JSON or an unknown\nlog level stops the server.",[18,145,147],{"id":146},"environment-variables","Environment variables",[85,149,150,161],{},[88,151,152],{},[91,153,154,157,159],{},[94,155,156],{},"Variable",[94,158,102],{},[94,160,105],{},[107,162,163,187,206,221],{},[91,164,165,170,180],{},[112,166,167],{},[26,168,169],{},"NITRO_PORT",[112,171,172,175,176,179],{},[26,173,174],{},"3000"," (",[26,177,178],{},"18232"," in Docker)",[112,181,182,183,186],{},"Port of the dashboard, API and agent WebSocket. ",[26,184,185],{},"PORT"," works as well.",[91,188,189,194,200],{},[112,190,191],{},[26,192,193],{},"NITRO_HOST",[112,195,196,197,179],{},"all interfaces (",[26,198,199],{},"0.0.0.0",[112,201,202,203,186],{},"Address the server binds to. ",[26,204,205],{},"HOST",[91,207,208,213,218],{},[112,209,210],{},[26,211,212],{},"CONFIG_FILE_PATH",[112,214,215],{},[26,216,217],{},".\u002Fconfig\u002Fconfig.json",[112,219,220],{},"Location of the config file.",[91,222,223,228,236],{},[112,224,225],{},[26,226,227],{},"NETIGNITE_SAMPLE_CONFIG_PATH",[112,229,230,175,233,179],{},[26,231,232],{},".\u002Fconfig\u002Fconfig.sample.json",[26,234,235],{},"\u002Fetc\u002Fnetignite\u002Fconfig.sample.json",[112,237,238,239,241],{},"File copied to ",[26,240,212],{}," when no config exists.",[14,243,244,245,248],{},"To change the port of the Docker image, change the published port instead:\n",[26,246,247],{},"\"8080:18232\"",".",[18,250,252],{"id":251},"data-paths","Data paths",[14,254,255,256,259],{},"All paths are relative to the working directory of the server process (",[26,257,258],{},"\u002Fopt\u002Fnetignite"," in\nDocker).",[85,261,262,272],{},[88,263,264],{},[91,265,266,269],{},[94,267,268],{},"Path",[94,270,271],{},"Content",[107,273,274,284,294],{},[91,275,276,281],{},[112,277,278],{},[26,279,280],{},"data\u002Fdb.sqlite",[112,282,283],{},"SQLite database with users, agents and devices. Back this file up.",[91,285,286,291],{},[112,287,288],{},[26,289,290],{},"data\u002Finitial_admin_credentials",[112,292,293],{},"Admin password generated on first start. Delete it after logging in.",[91,295,296,300],{},[112,297,298],{},[26,299,28],{},[112,301,302],{},"The config file above.",[14,304,305,306,309],{},"The database schema is created automatically on startup. To back up the server, stop it and copy\nthe ",[26,307,308],{},"data\u002F"," directory.",[18,311,313],{"id":312},"logging","Logging",[14,315,316,317,248],{},"The server logs to stdout\u002Fstderr only. With Docker, read the logs with\n",[26,318,319],{},"docker logs netignite-server",[85,321,322,332],{},[88,323,324],{},[91,325,326,329],{},[94,327,328],{},"Level",[94,330,331],{},"Used for",[107,333,334,344,353,363,373],{},[91,335,336,341],{},[112,337,338],{},[26,339,340],{},"debug",[112,342,343],{},"Detailed diagnostics",[91,345,346,350],{},[112,347,348],{},[26,349,74],{},[112,351,352],{},"Startup steps, agent connects and disconnects",[91,354,355,360],{},[112,356,357],{},[26,358,359],{},"warn",[112,361,362],{},"Recoverable problems",[91,364,365,370],{},[112,366,367],{},[26,368,369],{},"error",[112,371,372],{},"Failed operations, WebSocket errors",[91,374,375,380],{},[112,376,377],{},[26,378,379],{},"critical",[112,381,382],{},"Errors that stop the server",[384,385,386],"note",{},[14,387,388,389,391,392,394,395,397,398,248],{},"The initial admin password is logged at level ",[26,390,74],{},". With ",[26,393,61],{}," set to ",[26,396,359],{}," or higher,\nit is only written to ",[26,399,290],{},[401,402,403],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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);}",{"title":40,"searchDepth":54,"depth":54,"links":405},[406,407,408,409],{"id":20,"depth":54,"text":21},{"id":146,"depth":54,"text":147},{"id":251,"depth":54,"text":252},{"id":312,"depth":54,"text":313},"Configure the NetIgnite server: config.json, environment variables, data paths and log levels.","md",{},{"title":5},"\u002Fdocs\u002Fserver\u002Fconfiguration",{"title":5,"description":410},"docs\u002Fserver\u002Fconfiguration","09RtARvxPHiKbKBMSxMynYROJsDnbrqdzZH0Dv3tGh8",1792355946317]