[{"data":1,"prerenderedAt":500},["ShallowReactive",2],{"\u002Fdocs\u002Fgetting-started":3},{"id":4,"title":5,"body":6,"description":492,"extension":493,"meta":494,"navigation":495,"path":496,"seo":497,"stem":498,"__hash__":499},"docs\u002Fdocs\u002Fgetting-started.md","Getting Started",{"type":7,"value":8,"toc":484},"minimark",[9,13,17,43,62,473,480],[10,11,5],"h1",{"id":12},"getting-started",[14,15,16],"p",{},"This guide takes you from an empty machine to your first remote wake-up. You need:",[18,19,20,32,40],"ul",{},[21,22,23,24,31],"li",{},"a Linux host with ",[25,26,30],"a",{"href":27,"rel":28},"https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Finstall\u002F",[29],"nofollow","Docker"," and Docker Compose for the\nserver,",[21,33,34,35,39],{},"an ESP32 development board (",[36,37,38],"code",{},"esp32dev",") and a USB cable,",[21,41,42],{},"a device that supports Wake-on-LAN, in the same LAN as the ESP32.",[44,45,46],"tip",{},[14,47,48,49,54,55,57,58,61],{},"Using the hosted app at ",[25,50,53],{"href":51,"rel":52},"https:\u002F\u002Fapp.netignite.dev\u002F",[29],"app.netignite.dev","? Skip steps 1 and 2, log\nin, and continue with step 3. Use ",[36,56,53],{},", port ",[36,59,60],{},"443"," and SSL as the agent's server\nsettings.",[63,64,66,71,78,190,213,225,229,239,255,276,280,303,307,324,421,433,437,462,466],"steps",{"level":65},"3",[67,68,70],"h3",{"id":69},"start-the-server","Start the server",[14,72,73,74,77],{},"Create a ",[36,75,76],{},"docker-compose.yml"," and start it:",[79,80,85],"pre",{"className":81,"code":82,"filename":76,"language":83,"meta":84,"style":84},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","services:\n  netignite-server:\n    image: ghcr.io\u002Fnetignite-project\u002Fserver:latest\n    container_name: netignite-server\n    restart: unless-stopped\n    ports:\n      - \"18232:18232\"\n    volumes:\n      - \u002Fopt\u002Fnetignite\u002Fdata:\u002Fopt\u002Fnetignite\u002Fdata\n      - \u002Fopt\u002Fnetignite\u002Fconfig:\u002Fopt\u002Fnetignite\u002Fconfig\n","yaml","",[36,86,87,100,108,121,132,143,151,166,174,182],{"__ignoreMap":84},[88,89,92,96],"span",{"class":90,"line":91},"line",1,[88,93,95],{"class":94},"swJcz","services",[88,97,99],{"class":98},"sMK4o",":\n",[88,101,103,106],{"class":90,"line":102},2,[88,104,105],{"class":94},"  netignite-server",[88,107,99],{"class":98},[88,109,111,114,117],{"class":90,"line":110},3,[88,112,113],{"class":94},"    image",[88,115,116],{"class":98},":",[88,118,120],{"class":119},"sfazB"," ghcr.io\u002Fnetignite-project\u002Fserver:latest\n",[88,122,124,127,129],{"class":90,"line":123},4,[88,125,126],{"class":94},"    container_name",[88,128,116],{"class":98},[88,130,131],{"class":119}," netignite-server\n",[88,133,135,138,140],{"class":90,"line":134},5,[88,136,137],{"class":94},"    restart",[88,139,116],{"class":98},[88,141,142],{"class":119}," unless-stopped\n",[88,144,146,149],{"class":90,"line":145},6,[88,147,148],{"class":94},"    ports",[88,150,99],{"class":98},[88,152,154,157,160,163],{"class":90,"line":153},7,[88,155,156],{"class":98},"      -",[88,158,159],{"class":98}," \"",[88,161,162],{"class":119},"18232:18232",[88,164,165],{"class":98},"\"\n",[88,167,169,172],{"class":90,"line":168},8,[88,170,171],{"class":94},"    volumes",[88,173,99],{"class":98},[88,175,177,179],{"class":90,"line":176},9,[88,178,156],{"class":98},[88,180,181],{"class":119}," \u002Fopt\u002Fnetignite\u002Fdata:\u002Fopt\u002Fnetignite\u002Fdata\n",[88,183,185,187],{"class":90,"line":184},10,[88,186,156],{"class":98},[88,188,189],{"class":119}," \u002Fopt\u002Fnetignite\u002Fconfig:\u002Fopt\u002Fnetignite\u002Fconfig\n",[79,191,196],{"className":192,"code":193,"filename":194,"language":195,"meta":84,"style":84},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","docker compose up -d\n","Terminal","bash",[36,197,198],{"__ignoreMap":84},[88,199,200,204,207,210],{"class":90,"line":91},[88,201,203],{"class":202},"sBMFI","docker",[88,205,206],{"class":119}," compose",[88,208,209],{"class":119}," up",[88,211,212],{"class":119}," -d\n",[14,214,215,216,219,220,224],{},"The server listens on port ",[36,217,218],{},"18232",". See ",[25,221,223],{"href":222},"\u002Fdocs\u002Fserver\u002Finstallation","Installation"," for details and\nother ways to run it.",[67,226,228],{"id":227},"log-in-as-admin","Log in as admin",[14,230,231,232,235,236,116],{},"On first start, the server creates an ",[36,233,234],{},"admin"," account with a random password and writes it to\n",[36,237,238],{},"data\u002Finitial_admin_credentials",[79,240,242],{"className":192,"code":241,"filename":194,"language":195,"meta":84,"style":84},"sudo cat \u002Fopt\u002Fnetignite\u002Fdata\u002Finitial_admin_credentials\n",[36,243,244],{"__ignoreMap":84},[88,245,246,249,252],{"class":90,"line":91},[88,247,248],{"class":202},"sudo",[88,250,251],{"class":119}," cat",[88,253,254],{"class":119}," \u002Fopt\u002Fnetignite\u002Fdata\u002Finitial_admin_credentials\n",[14,256,257,258,261,262,265,266,270,271,275],{},"Open the dashboard and log in. The session cookie is only accepted over HTTPS or on ",[36,259,260],{},"localhost",",\nso either open ",[36,263,264],{},"http:\u002F\u002Flocalhost:18232"," on the server itself or put the server behind\n",[25,267,269],{"href":268},"\u002Fdocs\u002Fserver\u002Freverse-proxy","HTTPS"," first. Then change the password under ",[272,273,274],"strong",{},"Settings",".",[67,277,279],{"id":278},"create-an-agent","Create an agent",[14,281,282,283,286,287,290,291,294,295,298,299,275],{},"Go to ",[272,284,285],{},"Agents → Add New Agent",", enter a name, choose the type ",[272,288,289],{},"Microcontroller"," and save.\nThe agent page now shows the ",[272,292,293],{},"Connection ID"," and the ",[272,296,297],{},"Connection Secret",". You need both for\nthe next step. Copy the secret right away: it's shown only once. See\n",[25,300,302],{"href":301},"\u002Fdocs\u002Fguides\u002Fagents","Managing Agents",[67,304,306],{"id":305},"flash-the-esp32-agent","Flash the ESP32 agent",[14,308,309,310,315,316,319,320,323],{},"Clone the ",[25,311,314],{"href":312,"rel":313},"https:\u002F\u002Fgithub.com\u002FNetIgnite-project\u002FAgent-ESP32",[29],"Agent-ESP32"," repository, copy\n",[36,317,318],{},"src\u002Fconfig\u002Fconfig.sample.h"," to ",[36,321,322],{},"src\u002Fconfig\u002Fconfig.h"," and fill in your WiFi details, the server\naddress, and the Connection ID and Secret:",[79,325,330],{"className":326,"code":327,"filename":328,"language":329,"meta":84,"style":84},"language-cpp shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","#define C_CONTROL_SERVER_HOST \"netignite.example.com\"\n#define C_CONTROL_SERVER_PORT (uint16_t) 443\n#define C_CONTROL_SERVER_USE_SSL (bool) true\n\n#define C_CONTROL_SERVER_AUTH_ID \"1\"\n#define C_CONTROL_SERVER_AUTH_SECRET \"your-connection-secret\"\n","config.h","cpp",[36,331,332,349,370,387,393,407],{"__ignoreMap":84},[88,333,334,338,342,344,347],{"class":90,"line":91},[88,335,337],{"class":336},"s7zQu","#define",[88,339,341],{"class":340},"s2Zo4"," C_CONTROL_SERVER_HOST",[88,343,159],{"class":98},[88,345,346],{"class":119},"netignite.example.com",[88,348,165],{"class":98},[88,350,351,353,356,359,363,366],{"class":90,"line":102},[88,352,337],{"class":336},[88,354,355],{"class":340}," C_CONTROL_SERVER_PORT",[88,357,358],{"class":98}," (",[88,360,362],{"class":361},"sHdIc","uint16_t",[88,364,365],{"class":98},")",[88,367,369],{"class":368},"sbssI"," 443\n",[88,371,372,374,377,379,382,384],{"class":90,"line":110},[88,373,337],{"class":336},[88,375,376],{"class":340}," C_CONTROL_SERVER_USE_SSL",[88,378,358],{"class":98},[88,380,381],{"class":361},"bool",[88,383,365],{"class":98},[88,385,386],{"class":98}," true\n",[88,388,389],{"class":90,"line":123},[88,390,392],{"emptyLinePlaceholder":391},true,"\n",[88,394,395,397,400,402,405],{"class":90,"line":134},[88,396,337],{"class":336},[88,398,399],{"class":340}," C_CONTROL_SERVER_AUTH_ID",[88,401,159],{"class":98},[88,403,404],{"class":119},"1",[88,406,165],{"class":98},[88,408,409,411,414,416,419],{"class":90,"line":145},[88,410,337],{"class":336},[88,412,413],{"class":340}," C_CONTROL_SERVER_AUTH_SECRET",[88,415,159],{"class":98},[88,417,418],{"class":119},"your-connection-secret",[88,420,165],{"class":98},[14,422,423,424,428,429,432],{},"Then build and flash the firmware with PlatformIO. The ",[25,425,427],{"href":426},"\u002Fdocs\u002Fagents\u002Fesp32","ESP32 Agent"," page\nwalks through every setting and command. When the agent shows as ",[272,430,431],{},"online"," in the dashboard, it\nis connected.",[67,434,436],{"id":435},"add-a-device","Add a device",[14,438,282,439,442,443,446,447,450,451,358,454,457,458,275],{},[272,440,441],{},"Devices → Add New Device"," and enter a name, the device type, its ",[272,444,445],{},"MAC address"," (for\nexample ",[36,448,449],{},"AA:BB:CC:DD:EE:FF","), the Wake-on-LAN ",[272,452,453],{},"port",[36,455,456],{},"9"," unless you know otherwise) and the\nagent you just created. See ",[25,459,461],{"href":460},"\u002Fdocs\u002Fguides\u002Fdevices","Devices & Wake-on-LAN",[67,463,465],{"id":464},"power-it-on","Power it on",[14,467,468,469,472],{},"Shut the device down, then press ",[272,470,471],{},"Power On"," on the dashboard. The agent sends the magic packet\nand the device starts.",[14,474,475,476,275],{},"Nothing happened? Check ",[25,477,479],{"href":478},"\u002Fdocs\u002Freference\u002Ftroubleshooting","Troubleshooting",[481,482,483],"style",{},"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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":84,"searchDepth":102,"depth":102,"links":485},[486,487,488,489,490,491],{"id":69,"depth":110,"text":70},{"id":227,"depth":110,"text":228},{"id":278,"depth":110,"text":279},{"id":305,"depth":110,"text":306},{"id":435,"depth":110,"text":436},{"id":464,"depth":110,"text":465},"Set up a self-hosted NetIgnite server, connect an ESP32 agent and wake your first device.","md",{},{"title":5},"\u002Fdocs\u002Fgetting-started",{"title":5,"description":492},"docs\u002Fgetting-started","zr41I1pllqakuca_msnjpJl_DEKQ7nnxiZhRo7TDp2M",1792355946170]