1:"$Sreact.fragment" 3:I[39756,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"default"] 4:I[37457,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"default"] 5:I[55169,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"TOCProvider"] 6:I[769,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"Sidebar"] 7:I[47486,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"ClientWrapper"] 12:I[68027,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"default",1] :HL["/aie-studio/_next/static/chunks/04r~hr~scxq.3.css","style"] 0:{"P":null,"c":["","installation","queue-workers"],"q":"","i":false,"f":[[["",{"children":["installation",{"children":["queue-workers",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/aie-studio/_next/static/chunks/04r~hr~scxq.3.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/aie-studio/_next/static/chunks/0zro7kirewiu0.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/aie-studio/_next/static/chunks/020_l0tuo4z6d.js","async":true,"nonce":"$undefined"}]],"$L2"]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"className":"x:mx-auto x:flex x:max-w-(--nextra-content-width)","children":["$","$L5",null,{"value":[],"children":[["$","$L6",null,{}],["$","$L7",null,{"metadata":{"title":"Step 6: Configure Queue Workers","filePath":"app/installation/queue-workers/page.mdx","timestamp":1780176763000},"bottomContent":"$undefined","sourceCode":"# Step 6: Configure Queue Workers\n\nAI grading and other background tasks run via Laravel queues. Configure Supervisor to keep the queue worker running:\n\nCreate a Supervisor config file:\n\n```bash\nnano /etc/supervisor/conf.d/ai-education-worker.conf\n```\n\nAdd the following content:\n\n```ini\n[program:ai-education-worker]\nprocess_name=%(program_name)s_%(process_num)02d\ncommand=php /var/www/ai-education-studio/artisan queue:work database --sleep=3 --tries=3 --max-time=3600\ndirectory=/var/www/ai-education-studio\nautostart=true\nautorestart=true\nstopasgroup=true\nkillasgroup=true\nuser=www-data\nnumprocs=2\nredirect_stderr=true\nstdout_logfile=/var/www/ai-education-studio/storage/logs/worker.log\n```\n\nTell Supervisor to read the new config:\n\n```bash\nsupervisorctl reread\nsupervisorctl update\nsupervisorctl start ai-education-worker:*\n```\n\n> **Warning:** If queue workers are not running, students can submit exams but they will never be AI-graded. This is the most common cause of \"my exam is stuck\" issues.","children":[["$","div",null,{"id":"nextra-skip-nav"}],["$","main",null,{"data-pagefind-body":true,"children":[["$","h1",null,{"id":"$undefined","className":"x:tracking-tight x:text-slate-900 x:dark:text-slate-100 x:font-bold x:mt-2 x:text-4xl","children":["Step 6: Configure Queue Workers","$undefined"]}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"AI grading and other background tasks run via Laravel queues. Configure Supervisor to keep the queue worker running:"}],"\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Create a Supervisor config file:"}],"\n",["$","div",null,{"data-pagefind-ignore":"all","className":"nextra-code x:relative x:not-first:mt-[1.25em]","children":["$undefined",["$","pre",null,{"className":"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose","tabIndex":"0","children":[["$","div",null,{"className":"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2","children":["$L8",false]}],"$L9"]}]]}],"\n","$La","\n","$Lb","\n","$Lc","\n","$Ld","\n","$Le"]}]]}]]}]}],null,"$Lf"]}],{},null,false,null]},null,false,"$@10"]},null,false,"$@10"]},null,false,null],"$L11",false]],"m":"$undefined","G":["$12",["$L13"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"irBhPjOk2TMxfFT2bXCOe"} 14:I[83987,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"ToggleWordWrapButton"] 15:I[97367,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"OutletBoundary"] 16:"$Sreact.suspense" 19:I[97367,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"ViewportBoundary"] 1b:I[97367,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"MetadataBoundary"] 8:["$","$L14",null,{"children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"currentColor","height":"1em","children":["$","path",null,{"d":"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}]}]}] 9:["$","code",null,{"className":"nextra-code","dir":"ltr","children":["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},"children":"nano"}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":" /etc/supervisor/conf.d/ai-education-worker.conf"}]]}]}] a:["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Add the following content:"}] b:["$","div",null,{"data-pagefind-ignore":"all","className":"nextra-code x:relative x:not-first:mt-[1.25em]","children":["$undefined",["$","pre",null,{"className":"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose","tabIndex":"0","children":[["$","div",null,{"className":"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2","children":[["$","$L14",null,{"children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"currentColor","height":"1em","children":["$","path",null,{"d":"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}]}]}],false]}],["$","code",null,{"className":"nextra-code","dir":"ltr","children":[["$","span",null,{"children":["$","span",null,{"style":{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},"children":"[program:ai-education-worker]"}]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"process_name"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=%(program_name)s_%(process_num)02d"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"command"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=php /var/www/ai-education-studio/artisan queue:work database --"}],["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"sleep"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=3 --"}],["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"tries"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=3 --"}],["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"max-time"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=3600"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"directory"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=/var/www/ai-education-studio"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"autostart"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=true"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"autorestart"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=true"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"stopasgroup"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=true"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"killasgroup"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=true"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"user"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=www-data"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"numprocs"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=2"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"redirect_stderr"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=true"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},"children":"stdout_logfile"}],["$","span",null,{"style":{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},"children":"=/var/www/ai-education-studio/storage/logs/worker.log"}]]}]]}]]}]]}] c:["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":"Tell Supervisor to read the new config:"}] d:["$","div",null,{"data-pagefind-ignore":"all","className":"nextra-code x:relative x:not-first:mt-[1.25em]","children":["$undefined",["$","pre",null,{"className":"x:group x:focus-visible:nextra-focus x:overflow-x-auto x:subpixel-antialiased x:text-[.9em] x:bg-white x:dark:bg-black x:py-4 x:ring-1 x:ring-inset x:ring-gray-300 x:dark:ring-neutral-700 x:contrast-more:ring-gray-900 x:contrast-more:dark:ring-gray-50 x:contrast-more:contrast-150 x:rounded-md not-prose","tabIndex":"0","children":[["$","div",null,{"className":"x:group-hover:opacity-100 x:group-focus:opacity-100 x:opacity-0 x:transition x:focus-within:opacity-100 x:flex x:gap-1 x:absolute x:right-4 x:top-2","children":[["$","$L14",null,{"children":["$","svg",null,{"viewBox":"0 0 24 24","fill":"currentColor","height":"1em","children":["$","path",null,{"d":"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}]}]}],false]}],["$","code",null,{"className":"nextra-code","dir":"ltr","children":[["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},"children":"supervisorctl"}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":" reread"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},"children":"supervisorctl"}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":" update"}]]}],"\n",["$","span",null,{"children":[["$","span",null,{"style":{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},"children":"supervisorctl"}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":" start"}],["$","span",null,{"style":{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},"children":" ai-education-worker:"}],["$","span",null,{"style":{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},"children":"*"}]]}]]}]]}]]}] e:["$","blockquote",null,{"className":"x:not-first:mt-[1.25em] x:border-gray-300 x:italic x:text-gray-700 x:dark:border-gray-700 x:dark:text-gray-400 x:border-s-2 x:ps-[1.5em]","children":["\n",["$","p",null,{"className":"x:not-first:mt-[1.25em] x:leading-7","children":[["$","strong",null,{"children":"Warning:"}]," If queue workers are not running, students can submit exams but they will never be AI-graded. This is the most common cause of “my exam is stuck” issues."]}],"\n"]}] f:["$","$L15",null,{"children":["$","$16",null,{"name":"Next.MetadataOutlet","children":"$@17"}]}] 18:[] 10:"$W18" 11:["$","$1","h",{"children":[null,["$","$L19",null,{"children":"$L1a"}],["$","div",null,{"hidden":true,"children":["$","$L1b",null,{"children":["$","$16",null,{"name":"Next.Metadata","children":"$L1c"}]}]}],null]}] 13:["$","link","0",{"rel":"stylesheet","href":"/aie-studio/_next/static/chunks/04r~hr~scxq.3.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}] 1d:I[68386,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"ThemeConfigProvider"] 1e:I[6344,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"LastUpdated"] 1f:I[98091,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"Search"] 20:I[63178,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"ThemeProvider"] 21:I[91675,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"SkipNavLink"] 22:I[37985,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"ConfigProvider"] 2:["$","html",null,{"lang":"en","dir":"ltr","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$undefined",["$","style",null,{"children":":root {\n --nextra-primary-hue: 0deg;\n --nextra-primary-saturation: 100%;\n --nextra-primary-lightness: 45%;\n --nextra-bg: 254,252,232;\n --nextra-content-width: 90rem;\n}\n.dark {\n --nextra-primary-hue: 120deg;\n --nextra-primary-saturation: 100%;\n --nextra-primary-lightness: 55%;\n --nextra-bg: 15,23,42;\n}\n::selection {\n background: hsla(var(--nextra-primary-hue),var(--nextra-primary-saturation),var(--nextra-primary-lightness),.3);\n}\nhtml {\n background: rgb(var(--nextra-bg));\n}"}],["$","meta",null,{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"rgb(254,252,232)"}],["$","meta",null,{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"rgb(15,23,42)"}],"$undefined"]}],["$","body",null,{"children":["$","$L1d",null,{"value":{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","div",null,{"style":{"textAlign":"center","padding":"4rem 2rem"},"children":[["$","h1",null,{"children":"404 - Page Not Found"}],["$","p",null,{"children":"The page you are looking for does not exist."}]]}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],"copyPageButton":true,"darkMode":true,"docsRepositoryBase":"https://github.com/shuding/nextra","editLink":false,"feedback":{"content":null,"labels":"feedback"},"i18n":[],"lastUpdated":["$","$L1e",null,{}],"navigation":{"next":true,"prev":true},"search":["$","$L1f",null,{}],"sidebar":{"defaultMenuCollapseLevel":1,"defaultOpen":true,"toggleButton":true},"themeSwitch":{"dark":"Dark","light":"Light","system":"System"},"toc":{"backToTop":"Scroll to top","float":true,"title":"On This Page"}},"children":["$","$L20",null,{"attribute":"class","defaultTheme":"system","disableTransitionOnChange":true,"storageKey":"theme","children":[["$","$L21",null,{}],"$undefined",["$","$L22",null,{"pageMap":[{"data":{"index":{"title":"Introduction"},"installation":{"title":"Installation Guide"},"super-admin":{"title":"Super Admin Guide"},"institute-admin":{"title":"Institute Admin Guide"},"student":{"title":"Student Guide"},"api-reference":{"title":"API Reference"}}},{"name":"index","route":"/","frontMatter":{"title":"AI Education Studio","filePath":"app/page.mdx","timestamp":1780176763000},"title":"Introduction"},{"name":"installation","route":"/installation","children":[{"data":{"index":{"title":"Overview"},"system-dependencies":{"title":"Step 1: System Dependencies"},"mysql-config":{"title":"Step 2: Configure MySQL"},"application-setup":{"title":"Step 3: Application Setup"},"dependencies":{"title":"Step 4: Dependencies"},"install-wizard":{"title":"Step 5: Install Wizard"},"queue-workers":{"title":"Step 6: Queue Workers"},"scheduler":{"title":"Step 7: Scheduler"},"nginx-config":{"title":"Step 8: Nginx"},"ssl-setup":{"title":"Step 9: SSL"},"first-login":{"title":"Step 10: First Login"},"troubleshooting":{"title":"Troubleshooting"}}},{"name":"index","route":"/installation","frontMatter":{"title":"Installation Guide","filePath":"app/installation/page.mdx","timestamp":1780176763000},"title":"Overview"},{"name":"system-dependencies","route":"/installation/system-dependencies","frontMatter":{"title":"Step 1: Install System Dependencies","filePath":"app/installation/system-dependencies/page.mdx","timestamp":1780176763000},"title":"Step 1: System Dependencies"},{"name":"mysql-config","route":"/installation/mysql-config","frontMatter":{"title":"Step 2: Configure MySQL","filePath":"app/installation/mysql-config/page.mdx","timestamp":1780176763000},"title":"Step 2: Configure MySQL"},{"name":"application-setup","route":"/installation/application-setup","frontMatter":{"title":"Step 3: Configure the Application","filePath":"app/installation/application-setup/page.mdx","timestamp":1780176763000},"title":"Step 3: Application Setup"},{"name":"dependencies","route":"/installation/dependencies","frontMatter":{"title":"Step 4: Install PHP and Node Dependencies","filePath":"app/installation/dependencies/page.mdx","timestamp":1780176763000},"title":"Step 4: Dependencies"},{"name":"install-wizard","route":"/installation/install-wizard","frontMatter":{"title":"Step 5: Run the Install Wizard","filePath":"app/installation/install-wizard/page.mdx","timestamp":1780176763000},"title":"Step 5: Install Wizard"},{"name":"queue-workers","route":"/installation/queue-workers","frontMatter":{"title":"Step 6: Configure Queue Workers","filePath":"app/installation/queue-workers/page.mdx","timestamp":1780176763000},"title":"Step 6: Queue Workers"},{"name":"scheduler","route":"/installation/scheduler","frontMatter":{"title":"Step 7: Configure the Scheduler","filePath":"app/installation/scheduler/page.mdx","timestamp":1780176763000},"title":"Step 7: Scheduler"},{"name":"nginx-config","route":"/installation/nginx-config","frontMatter":{"title":"Step 8: Configure Nginx","filePath":"app/installation/nginx-config/page.mdx","timestamp":1780176763000},"title":"Step 8: Nginx"},{"name":"ssl-setup","route":"/installation/ssl-setup","frontMatter":{"title":"Step 9: Set Up SSL with Let's Encrypt","filePath":"app/installation/ssl-setup/page.mdx","timestamp":1780176763000},"title":"Step 9: SSL"},{"name":"first-login","route":"/installation/first-login","frontMatter":{"title":"Step 10: First Login","filePath":"app/installation/first-login/page.mdx","timestamp":1780176763000},"title":"Step 10: First Login"},{"name":"troubleshooting","route":"/installation/troubleshooting","frontMatter":{"title":"Troubleshooting","filePath":"app/installation/troubleshooting/page.mdx","timestamp":1780176763000},"title":"Troubleshooting"}],"title":"Installation Guide"},{"name":"super-admin","route":"/super-admin","children":[{"data":{"index":{"title":"Overview"},"first-login":{"title":"First Login"},"llm-config":{"title":"LLM Configuration"},"stripe-billing":{"title":"Stripe Billing"},"credit-packages":{"title":"Credit Packages"},"institute-management":{"title":"Institute Management"},"website-settings":{"title":"Website Settings"},"license":{"title":"License Activation"}}},{"name":"index","route":"/super-admin","frontMatter":{"title":"Super Admin Guide","filePath":"app/super-admin/page.mdx","timestamp":1780176763000},"title":"Overview"},{"name":"first-login","route":"/super-admin/first-login","frontMatter":{"title":"First Login","filePath":"app/super-admin/first-login/page.mdx","timestamp":1780176763000},"title":"First Login"},{"name":"llm-config","route":"/super-admin/llm-config","frontMatter":{"title":"LLM Configuration","filePath":"app/super-admin/llm-config/page.mdx","timestamp":1780176763000},"title":"LLM Configuration"},{"name":"stripe-billing","route":"/super-admin/stripe-billing","frontMatter":{"title":"Stripe Billing Setup","filePath":"app/super-admin/stripe-billing/page.mdx","timestamp":1780176763000},"title":"Stripe Billing"},{"name":"credit-packages","route":"/super-admin/credit-packages","frontMatter":{"title":"Credit Package Management","filePath":"app/super-admin/credit-packages/page.mdx","timestamp":1780176763000},"title":"Credit Packages"},{"name":"institute-management","route":"/super-admin/institute-management","frontMatter":{"title":"Institute Management","filePath":"app/super-admin/institute-management/page.mdx","timestamp":1780176763000},"title":"Institute Management"},{"name":"website-settings","route":"/super-admin/website-settings","frontMatter":{"title":"Website Settings","filePath":"app/super-admin/website-settings/page.mdx","timestamp":1780176763000},"title":"Website Settings"},{"name":"license","route":"/super-admin/license","frontMatter":{"title":"License Activation","filePath":"app/super-admin/license/page.mdx","timestamp":1780176763000},"title":"License Activation"}],"title":"Super Admin Guide"},{"name":"institute-admin","route":"/institute-admin","children":[{"data":{"index":{"title":"Overview"},"dashboard":{"title":"Dashboard"},"creating-exams":{"title":"Creating Exams"},"managing-students":{"title":"Managing Students"},"attempts-results":{"title":"Attempts & Results"},"exporting-results":{"title":"Exporting Results"},"buying-credits":{"title":"Buying Credits"},"transaction-history":{"title":"Transaction History"}}},{"name":"index","route":"/institute-admin","frontMatter":{"title":"Institute Admin Guide","filePath":"app/institute-admin/page.mdx","timestamp":1780176763000},"title":"Overview"},{"name":"dashboard","route":"/institute-admin/dashboard","frontMatter":{"title":"Dashboard","filePath":"app/institute-admin/dashboard/page.mdx","timestamp":1780176763000},"title":"Dashboard"},{"name":"creating-exams","route":"/institute-admin/creating-exams","frontMatter":{"title":"Creating an Exam","filePath":"app/institute-admin/creating-exams/page.mdx","timestamp":1780176763000},"title":"Creating Exams"},{"name":"managing-students","route":"/institute-admin/managing-students","frontMatter":{"title":"Managing Students","filePath":"app/institute-admin/managing-students/page.mdx","timestamp":1780176763000},"title":"Managing Students"},{"name":"attempts-results","route":"/institute-admin/attempts-results","frontMatter":{"title":"Viewing Attempts and Results","filePath":"app/institute-admin/attempts-results/page.mdx","timestamp":1780176763000},"title":"Attempts & Results"},{"name":"exporting-results","route":"/institute-admin/exporting-results","frontMatter":{"title":"Exporting Results","filePath":"app/institute-admin/exporting-results/page.mdx","timestamp":1780176763000},"title":"Exporting Results"},{"name":"buying-credits","route":"/institute-admin/buying-credits","frontMatter":{"title":"Buying Credits","filePath":"app/institute-admin/buying-credits/page.mdx","timestamp":1780176763000},"title":"Buying Credits"},{"name":"transaction-history","route":"/institute-admin/transaction-history","frontMatter":{"title":"Viewing Transaction History","filePath":"app/institute-admin/transaction-history/page.mdx","timestamp":1780176763000},"title":"Transaction History"}],"title":"Institute Admin Guide"},{"name":"student","route":"/student","children":[{"data":{"index":{"title":"Overview"},"dashboard":{"title":"Dashboard"},"taking-exams":{"title":"Taking Exams"},"viewing-results":{"title":"Viewing Results"}}},{"name":"index","route":"/student","frontMatter":{"title":"Student Guide","filePath":"app/student/page.mdx","timestamp":1780176763000},"title":"Overview"},{"name":"dashboard","route":"/student/dashboard","frontMatter":{"title":"Dashboard","filePath":"app/student/dashboard/page.mdx","timestamp":1780176763000},"title":"Dashboard"},{"name":"taking-exams","route":"/student/taking-exams","frontMatter":{"title":"Taking an Exam","filePath":"app/student/taking-exams/page.mdx","timestamp":1780176763000},"title":"Taking Exams"},{"name":"viewing-results","route":"/student/viewing-results","frontMatter":{"title":"Viewing Results","filePath":"app/student/viewing-results/page.mdx","timestamp":1780176763000},"title":"Viewing Results"}],"title":"Student Guide"},{"name":"api-reference","route":"/api-reference","children":[{"data":{"index":{"title":"Overview"},"webhooks":{"title":"Webhook Endpoints"},"llm-schema":{"title":"LLM Provider Schema"},"env-variables":{"title":"Environment Variables"}}},{"name":"index","route":"/api-reference","frontMatter":{"title":"API Reference Appendix","filePath":"app/api-reference/page.mdx","timestamp":1780176763000},"title":"Overview"},{"name":"webhooks","route":"/api-reference/webhooks","frontMatter":{"title":"Webhook Endpoints","filePath":"app/api-reference/webhooks/page.mdx","timestamp":1780176763000},"title":"Webhook Endpoints"},{"name":"llm-schema","route":"/api-reference/llm-schema","frontMatter":{"title":"LLM Provider Configuration Schema","filePath":"app/api-reference/llm-schema/page.mdx","timestamp":1780176763000},"title":"LLM Provider Schema"},{"name":"env-variables","route":"/api-reference/env-variables","frontMatter":{"title":"Critical Environment Variables","filePath":"app/api-reference/env-variables/page.mdx","timestamp":1780176763000},"title":"Environment Variables"}],"title":"API Reference"}],"navbar":"$L23","footer":"$L24","children":["$L25","$2:props:children:1:props:children:props:value:children"]}]]}]}]}]]}] 26:I[22016,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],""] 27:I[43634,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"ClientNavbar"] 28:I[31277,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"Switchers"] 29:I[34924,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"LocaleSwitch"] 2a:I[75684,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"ThemeSwitch"] 2b:I[769,["/aie-studio/_next/static/chunks/0x.~j7vy9ohz0.js","/aie-studio/_next/static/chunks/0e_.adub9xgmz.js","/aie-studio/_next/static/chunks/0zro7kirewiu0.js","/aie-studio/_next/static/chunks/0d3shmwh5_nmn.js","/aie-studio/_next/static/chunks/020_l0tuo4z6d.js"],"MobileNav"] 23:["$","header",null,{"className":"nextra-navbar x:sticky x:top-0 x:z-30 x:w-full x:bg-transparent x:print:hidden x:max-md:[.nextra-banner:not([class$=hidden])~&]:top-(--nextra-banner-height)","children":[["$","div",null,{"className":"nextra-navbar-blur x:absolute x:-z-1 x:size-full nextra-border x:border-b x:backdrop-blur-md x:bg-nextra-bg/70"}],["$","nav",null,{"style":{"height":"var(--nextra-navbar-height)"},"className":"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:items-center x:gap-4 x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)] x:justify-end","children":[["$","$L26",null,{"href":"/","className":"x:flex x:items-center x:me-auto x:transition-opacity x:focus-visible:nextra-focus x:hover:opacity-75","aria-label":"Home page","children":["$","b",null,{"children":"Docs"}]}],["$","$L27",null,{"className":"","children":["$undefined","$undefined","$undefined"]}]]}]]}] 24:["$","div",null,{"className":"x:bg-gray-100 x:pb-[env(safe-area-inset-bottom)] x:dark:bg-neutral-900 x:print:bg-transparent","children":[["$","$L28",null,{"children":["$","div",null,{"className":"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:gap-2 x:py-2 x:px-4","children":[["$","$L29",null,{}],["$","$L2a",null,{}]]}]}],["$","hr",null,{"className":"nextra-border"}],["$","footer",null,{"className":"x:mx-auto x:flex x:max-w-(--nextra-content-width) x:justify-center x:py-12 x:text-gray-600 x:dark:text-gray-400 x:md:justify-start x:pl-[max(env(safe-area-inset-left),1.5rem)] x:pr-[max(env(safe-area-inset-right),1.5rem)]","children":["MIT ",2026," © Your Project."]}]]}] 25:["$","$L2b",null,{}] 1a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 17:null 1c:[["$","title","0",{"children":"Step 6: Configure Queue Workers | Documentation"}],["$","meta","1",{"name":"description","content":"Your documentation site"}]]