[{"data":1,"prerenderedAt":365},["ShallowReactive",2],{"navigation_docs":3,"-concepts-architecture":144,"-concepts-architecture-surround":360},[4,35,84,109,124,134,139],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Get Started","\u002Fget-started","1.get-started",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fget-started\u002Fintroduction","1.get-started\u002F1.introduction","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fget-started\u002Finstallation","1.get-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick start","\u002Fget-started\u002Fquickstart","1.get-started\u002F3.quickstart","i-lucide-rocket",{"title":25,"path":26,"stem":27,"icon":28},"Project structure","\u002Fget-started\u002Fproject-structure","1.get-started\u002F4.project-structure","i-lucide-folder-tree",{"title":30,"path":31,"stem":32,"icon":33},"Dashboard","\u002Fget-started\u002Fdashboard","1.get-started\u002F5.dashboard","i-lucide-layout-dashboard",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Concepts","\u002Fconcepts","2.concepts",[40,45,50,55,60,65,69,74,79],{"title":41,"path":42,"stem":43,"icon":44},"Architecture","\u002Fconcepts\u002Farchitecture","2.concepts\u002F1.architecture","i-lucide-layers",{"title":46,"path":47,"stem":48,"icon":49},"Machines","\u002Fconcepts\u002Fmachines","2.concepts\u002F2.machines","i-lucide-server",{"title":51,"path":52,"stem":53,"icon":54},"Colony & users","\u002Fconcepts\u002Fcolony","2.concepts\u002F3.colony","i-lucide-users",{"title":56,"path":57,"stem":58,"icon":59},"Transport","\u002Fconcepts\u002Ftransport","2.concepts\u002F4.transport","i-lucide-network",{"title":61,"path":62,"stem":63,"icon":64},"Configuration","\u002Fconcepts\u002Fconfiguration","2.concepts\u002F5.configuration","i-lucide-settings",{"title":66,"path":67,"stem":68,"icon":23},"Deploy","\u002Fconcepts\u002Fdeploy","2.concepts\u002F6.deploy",{"title":70,"path":71,"stem":72,"icon":73},"Groups","\u002Fconcepts\u002Fgroups","2.concepts\u002F7.groups","i-lucide-boxes",{"title":75,"path":76,"stem":77,"icon":78},"Templates","\u002Fconcepts\u002Ftemplates","2.concepts\u002F8.templates","i-lucide-package-plus",{"title":80,"path":81,"stem":82,"icon":83},"Existing projects","\u002Fconcepts\u002Fexisting-projects","2.concepts\u002F9.existing-projects","i-lucide-folder-open",{"title":85,"path":86,"stem":87,"children":88,"page":34},"Remote","\u002Fremote","3.remote",[89,94,99,104],{"title":90,"path":91,"stem":92,"icon":93},"Remote machines","\u002Fremote\u002Foverview","3.remote\u002F1.overview","i-lucide-cloud",{"title":95,"path":96,"stem":97,"icon":98},"Remote deploy","\u002Fremote\u002Fdeploy","3.remote\u002F2.deploy","i-lucide-send",{"title":100,"path":101,"stem":102,"icon":103},"CI","\u002Fremote\u002Fci","3.remote\u002F3.ci","i-lucide-workflow",{"title":105,"path":106,"stem":107,"icon":108},"Tunnels","\u002Fremote\u002Ftunnel","3.remote\u002F4.tunnel","i-lucide-cable",{"title":110,"path":111,"stem":112,"children":113,"page":34},"Security","\u002Fsecurity","4.security",[114,119],{"title":115,"path":116,"stem":117,"icon":118},"Security model","\u002Fsecurity\u002Fmodel","4.security\u002F1.model","i-lucide-shield",{"title":120,"path":121,"stem":122,"icon":123},"Known issues","\u002Fsecurity\u002Fknown-issues","4.security\u002F2.known-issues","i-lucide-triangle-alert",{"title":125,"path":126,"stem":127,"children":128,"page":34},"Reference","\u002Freference","5.reference",[129],{"title":130,"path":131,"stem":132,"icon":133},"CLI reference","\u002Freference\u002Fcli","5.reference\u002F1.cli","i-lucide-terminal",{"title":135,"path":136,"stem":137,"icon":138},"Changelog","\u002Fchangelog","changelog","i-lucide-history",{"title":140,"path":141,"stem":142,"icon":143},"Communities","\u002Fcommunities","communities","i-lucide-heart-handshake",{"id":145,"title":41,"body":146,"description":352,"extension":353,"links":354,"meta":355,"navigation":356,"path":42,"seo":357,"stem":43,"__hash__":359},"docs\u002F2.concepts\u002F1.architecture.md",{"type":147,"value":148,"toc":344},"minimark",[149,167,177,182,256,260,278,282,311,315,326,330],[150,151,152,153,157,158,162,163,166],"p",{},"Ant is a ",[154,155,156],"strong",{},"local-first CLI"," with one optional companion: a machine daemon\n(",[159,160,161],"code",{},"ant-worker",", built from ",[159,164,165],{},"cmd\u002Fagent",") that a remote machine runs to accept\ndeploys.",[168,169,174],"pre",{"className":170,"code":172,"language":173},[171],"language-text","┌─────────────────────────────┐        ┌─────────────────────────────┐\n│  Your machine (nest)        │        │  Remote machine (nest)      │\n│                             │  iroh  │                             │\n│  ant CLI ──▶ Docker         │═══════▶│  ant-worker ──▶ Docker      │\n│      │  └──▶ Caddy          │ mutual │                             │\n│  ant ui                     │  TLS   │                             │\n└─────────────────────────────┘        └─────────────────────────────┘\n","text",[159,175,172],{"__ignoreMap":176},"",[178,179,181],"h2",{"id":180},"what-runs-where","What runs where",[183,184,185,201],"table",{},[186,187,188],"thead",{},[189,190,191,195,198],"tr",{},[192,193,194],"th",{},"Component",[192,196,197],{},"Runs",[192,199,200],{},"Purpose",[202,203,204,222,234,245],"tbody",{},[189,205,206,212,215],{},[207,208,209],"td",{},[159,210,211],{},"ant",[207,213,214],{},"Your machine",[207,216,217,218,221],{},"Build, deploy, manage, serve the dashboard (",[159,219,220],{},"ant ui",", a command group)",[189,223,224,228,231],{},[207,225,226],{},[159,227,161],{},[207,229,230],{},"A remote machine",[207,232,233],{},"Accept images and build contexts, build\u002Frun containers, apply compose and routes",[189,235,236,239,242],{},[207,237,238],{},"Docker",[207,240,241],{},"Both",[207,243,244],{},"Build and run images",[189,246,247,250,253],{},[207,248,249],{},"Caddy",[207,251,252],{},"Your machine (optional); a remote machine (required)",[207,254,255],{},"Route domains to containers",[178,257,259],{"id":258},"local-first","Local first",[150,261,262,263,266,267,270,271,273,274,277],{},"The local loop (",[159,264,265],{},"ant haul"," → ",[159,268,269],{},"ant trail deploy local",") needs only Docker and\nthe ",[159,272,211],{}," binary. Caddy and the optional builders are detected by\n",[159,275,276],{},"ant nest tools"," and reported, never assumed. Nothing about the local loop\nrequires an account, a server, or a network.",[178,279,281],{"id":280},"build-collab-deploy","Build, Collab, Deploy",[283,284,285,300,306],"ul",{},[286,287,288,291,292,295,296,299],"li",{},[154,289,290],{},"Build"," turns a project into an image. The builder is chosen by\n",[159,293,294],{},"deploy.build"," in ",[159,297,298],{},"ant.yaml",".",[286,301,302,305],{},[154,303,304],{},"Collab"," is identity and access: your portable account key, the roster of\nusers on each machine, and the groups that divide a codebase.",[286,307,308,310],{},[154,309,66],{}," runs the image, locally behind Caddy, or on a remote machine over\nthe transport.",[178,312,314],{"id":313},"fail-closed","Fail closed",[150,316,317,318,322,323,299],{},"The daemon is the authority. Mutual TLS authenticates the ",[319,320,321],"em",{},"channel",", but every\ngated RPC is also authorized against the machine's roster. With no roster and no\nbootstrap owner, every gated method is refused. See\n",[324,325,115],"a",{"href":116},[178,327,329],{"id":328},"next","Next",[283,331,332,336,340],{},[286,333,334],{},[324,335,46],{"href":47},[286,337,338],{},[324,339,51],{"href":52},[286,341,342],{},[324,343,56],{"href":57},{"title":176,"searchDepth":345,"depth":345,"links":346},2,[347,348,349,350,351],{"id":180,"depth":345,"text":181},{"id":258,"depth":345,"text":259},{"id":280,"depth":345,"text":281},{"id":313,"depth":345,"text":314},{"id":328,"depth":345,"text":329},"The pillars, the process model, and what runs where.","md",null,{},{"icon":44},{"title":41,"description":358},"How Ant is put together: a local-first CLI, an optional machine daemon, and an encrypted transport between them.","0gVpkUldhuyfCo4ELGvfJ-piRAt_qxmD2H6y-xj3_Xo",[361,363],{"title":30,"path":31,"stem":32,"description":362,"icon":33,"children":-1},"The local web console: how to serve it, and what each page does.",{"title":46,"path":47,"stem":48,"description":364,"icon":49,"children":-1},"Nests are machines you can deploy to. Register, inspect, and target them.",1791494554236]