[{"data":1,"prerenderedAt":388},["ShallowReactive",2],{"navigation_docs_en":3,"-en-self-hosting-getting-started-overview":143,"-en-self-hosting-getting-started-overview-surround":383},[4,103,124],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":36},"Self-hosting","i-lucide-server","\u002Fen\u002Fself-hosting","en\u002F1.self-hosting",[10,37,57,77],{"title":11,"icon":12,"path":13,"stem":14,"children":15,"page":36},"Getting started","i-lucide-rocket","\u002Fen\u002Fself-hosting\u002Fgetting-started","en\u002F1.self-hosting\u002F1.getting-started",[16,21,26,31],{"title":17,"path":18,"stem":19,"icon":20},"Quick start (guided)","\u002Fen\u002Fself-hosting\u002Fgetting-started\u002Fquick-start","en\u002F1.self-hosting\u002F1.getting-started\u002F1.quick-start","i-lucide-wand-2",{"title":22,"path":23,"stem":24,"icon":25},"Overview","\u002Fen\u002Fself-hosting\u002Fgetting-started\u002Foverview","en\u002F1.self-hosting\u002F1.getting-started\u002F2.overview","i-lucide-layout-dashboard",{"title":27,"path":28,"stem":29,"icon":30},"Requirements","\u002Fen\u002Fself-hosting\u002Fgetting-started\u002Frequirements","en\u002F1.self-hosting\u002F1.getting-started\u002F3.requirements","i-lucide-cpu",{"title":32,"path":33,"stem":34,"icon":35},"Manual install","\u002Fen\u002Fself-hosting\u002Fgetting-started\u002Fmanual-install","en\u002F1.self-hosting\u002F1.getting-started\u002F4.manual-install","i-lucide-terminal",false,{"title":38,"icon":39,"path":40,"stem":41,"children":42,"page":36},"Performance & models","i-lucide-gauge","\u002Fen\u002Fself-hosting\u002Fperformance-and-models","en\u002F1.self-hosting\u002F2.performance-and-models",[43,48,52],{"title":44,"path":45,"stem":46,"icon":47},"GPU acceleration","\u002Fen\u002Fself-hosting\u002Fperformance-and-models\u002Fgpu-acceleration","en\u002F1.self-hosting\u002F2.performance-and-models\u002F1.gpu-acceleration","i-lucide-zap",{"title":49,"path":50,"stem":51,"icon":39},"Performance and memory","\u002Fen\u002Fself-hosting\u002Fperformance-and-models\u002Fperformance-and-memory","en\u002F1.self-hosting\u002F2.performance-and-models\u002F2.performance-and-memory",{"title":53,"path":54,"stem":55,"icon":56},"Models","\u002Fen\u002Fself-hosting\u002Fperformance-and-models\u002Fmodels","en\u002F1.self-hosting\u002F2.performance-and-models\u002F3.models","i-lucide-brain",{"title":58,"icon":59,"path":60,"stem":61,"children":62,"page":36},"Configuration & access","i-lucide-sliders-horizontal","\u002Fen\u002Fself-hosting\u002Fconfiguration-and-access","en\u002F1.self-hosting\u002F3.configuration-and-access",[63,67,72],{"title":64,"path":65,"stem":66,"icon":59},"Configuration reference","\u002Fen\u002Fself-hosting\u002Fconfiguration-and-access\u002Fconfiguration-reference","en\u002F1.self-hosting\u002F3.configuration-and-access\u002F1.configuration-reference",{"title":68,"path":69,"stem":70,"icon":71},"Licensing and activation","\u002Fen\u002Fself-hosting\u002Fconfiguration-and-access\u002Flicensing","en\u002F1.self-hosting\u002F3.configuration-and-access\u002F2.licensing","i-lucide-key-round",{"title":73,"path":74,"stem":75,"icon":76},"Managing users","\u002Fen\u002Fself-hosting\u002Fconfiguration-and-access\u002Fmanaging-users","en\u002F1.self-hosting\u002F3.configuration-and-access\u002F3.managing-users","i-lucide-users",{"title":78,"icon":79,"path":80,"stem":81,"children":82,"page":36},"Operations & security","i-lucide-shield-check","\u002Fen\u002Fself-hosting\u002Foperations-and-security","en\u002F1.self-hosting\u002F4.operations-and-security",[83,88,93,98],{"title":84,"path":85,"stem":86,"icon":87},"Backups and restore","\u002Fen\u002Fself-hosting\u002Foperations-and-security\u002Fbackups","en\u002F1.self-hosting\u002F4.operations-and-security\u002F1.backups","i-lucide-database-backup",{"title":89,"path":90,"stem":91,"icon":92},"Updating","\u002Fen\u002Fself-hosting\u002Foperations-and-security\u002Fupdating","en\u002F1.self-hosting\u002F4.operations-and-security\u002F2.updating","i-lucide-refresh-cw",{"title":94,"path":95,"stem":96,"icon":97},"Security and networking","\u002Fen\u002Fself-hosting\u002Foperations-and-security\u002Fsecurity-and-networking","en\u002F1.self-hosting\u002F4.operations-and-security\u002F3.security-and-networking","i-lucide-shield",{"title":99,"path":100,"stem":101,"icon":102},"Troubleshooting","\u002Fen\u002Fself-hosting\u002Foperations-and-security\u002Ftroubleshooting","en\u002F1.self-hosting\u002F4.operations-and-security\u002F4.troubleshooting","i-lucide-life-buoy",{"title":104,"icon":105,"path":106,"stem":107,"children":108,"page":36},"App & reference","i-lucide-book-open-text","\u002Fen\u002Freference","en\u002F2.reference",[109,114,119],{"title":110,"path":111,"stem":112,"icon":113},"Install the app","\u002Fen\u002Freference\u002Finstall-the-app","en\u002F2.reference\u002F1.install-the-app","i-lucide-download",{"title":115,"path":116,"stem":117,"icon":118},"How it works","\u002Fen\u002Freference\u002Fhow-it-works","en\u002F2.reference\u002F2.how-it-works","i-lucide-workflow",{"title":120,"path":121,"stem":122,"icon":123},"Data and privacy","\u002Fen\u002Freference\u002Fdata-and-privacy","en\u002F2.reference\u002F3.data-and-privacy","i-lucide-lock",{"title":125,"icon":126,"path":127,"stem":128,"children":129,"page":36},"Chronicler Cloud","i-lucide-cloud","\u002Fen\u002Fcloud","en\u002F3.cloud",[130,134,138],{"title":131,"path":132,"stem":133,"icon":126},"Cloud overview","\u002Fen\u002Fcloud\u002Foverview","en\u002F3.cloud\u002F1.overview",{"title":135,"path":136,"stem":137,"icon":12},"Quick start","\u002Fen\u002Fcloud\u002Fquick-start","en\u002F3.cloud\u002F2.quick-start",{"title":139,"path":140,"stem":141,"icon":142},"Your first chat","\u002Fen\u002Fcloud\u002Fyour-first-chat","en\u002F3.cloud\u002F3.your-first-chat","i-lucide-messages-square",{"id":144,"title":22,"body":145,"description":374,"extension":375,"links":376,"meta":377,"navigation":378,"path":23,"seo":379,"stem":24,"__hash__":382},"docs_en\u002Fen\u002F1.self-hosting\u002F1.getting-started\u002F2.overview.md",{"type":146,"value":147,"toc":367},"minimark",[148,152,157,168,249,264,268,271,274,300,303,307,310,334,339,343,362],[149,150,151],"p",{},"Self-hosting means you run the Chronicler server. It is a Docker stack of four\ncontainers, started with one command, on one machine.",[153,154,156],"h2",{"id":155},"what-runs","What runs",[158,159,164],"pre",{"className":160,"code":162,"language":163},[161],"language-text","              ┌──────────────────────────────────────────────┐\n   Chronicler │  backend        FastAPI, port 8410           │\n   app on any │    ├── postgres  documents + search index    │\n   PC on the  │    └── ollama    writes the answers          │\n   network ──►│  (+ ollama-pull, a one-shot model download)  │\n              └──────────────────────────────────────────────┘\n                          one Docker stack, one machine\n","text",[165,166,162],"code",{"__ignoreMap":167},"",[169,170,171,187],"table",{},[172,173,174],"thead",{},[175,176,177,181,184],"tr",{},[178,179,180],"th",{},"Container",[178,182,183],{},"What it does",[178,185,186],{},"Port",[188,189,190,206,221,236],"tbody",{},[175,191,192,198,201],{},[193,194,195],"td",{},[165,196,197],{},"chronicler-backend",[193,199,200],{},"The API the app talks to. Extracts text, runs OCR, builds the search index, answers requests.",[193,202,203],{},[165,204,205],{},"8410",[175,207,208,213,216],{},[193,209,210],{},[165,211,212],{},"chronicler-postgres",[193,214,215],{},"Stores documents, accounts and the search index. There is no separate search database.",[193,217,218],{},[165,219,220],{},"5432",[175,222,223,228,231],{},[193,224,225],{},[165,226,227],{},"chronicler-ollama",[193,229,230],{},"Runs the language model that writes answers, on your CPU or GPU.",[193,232,233],{},[165,234,235],{},"11434",[175,237,238,243,246],{},[193,239,240],{},[165,241,242],{},"chronicler-ollama-pull",[193,244,245],{},"Runs once at startup to download the model, then exits. Seeing it \"exited\" is normal.",[193,247,248],{},"-",[149,250,251,252,255,256,259,260,263],{},"Your documents live in a Docker volume (",[165,253,254],{},"backend_uploads","), the database in\n",[165,257,258],{},"postgres_data",", and the downloaded models in ",[165,261,262],{},"ollama_data",". Those three volumes\nare the install. Everything else can be thrown away and recreated.",[153,265,267],{"id":266},"what-leaves-the-machine","What leaves the machine",[149,269,270],{},"Nothing about your documents. Text extraction, OCR, indexing and answer\ngeneration all happen in the containers above.",[149,272,273],{},"The server does make two kinds of outbound connection:",[275,276,277,294],"ul",{},[278,279,280,284,285,288,289,293],"li",{},[281,282,283],"strong",{},"Licence checks"," to ",[165,286,287],{},"api.chroniclerlm.com",", every 30 minutes. It sends the\nlicence key and an install identifier - no document content. See\n",[290,291,292],"a",{"href":69},"Licensing",".",[278,295,296,299],{},[281,297,298],{},"Downloads"," from Docker Hub and GitHub, when you install or update.",[149,301,302],{},"There is no telemetry beyond that.",[153,304,306],{"id":305},"what-you-can-and-cant-configure","What you can and can't configure",[149,308,309],{},"Most of the server's behaviour is fixed in the image on purpose - that's what\nmakes a self-hosted install predictable, and what keeps the security-relevant\nsettings out of reach of an accidental edit.",[275,311,312,318,328],{},[278,313,314,317],{},[281,315,316],{},"From the admin console:"," the generation model, where embedding runs, disk\nallocation, backup schedule, licence key, update checks, users.",[278,319,320,327],{},[281,321,322,323,326],{},"From the ",[165,324,325],{},".env"," file next to the compose file:"," the database password, GPU\nprofile, ports, image versions, memory and performance knobs.",[278,329,330,333],{},[281,331,332],{},"Not configurable:"," the realm (this server is always a single organisation),\nsign-up policy (always admin-provisioned), licence enforcement, the embedding\nmodel, and the internal service URLs.",[149,335,336,337,293],{},"Full list: ",[290,338,64],{"href":65},[153,340,342],{"id":341},"two-ways-to-install","Two ways to install",[344,345,346,351],"card-group",{},[347,348,350],"card",{"icon":20,"title":349,"to":18},"Guided","The desktop app writes the compose file, generates a database password and\ndetects your GPU. Best on a normal PC.",[347,352,354,355,357,358,361],{"icon":35,"title":353,"to":33},"Manual","Download the compose file, write the ",[165,356,325],{}," yourself, ",[165,359,360],{},"docker compose up -d",".\nRequired for a headless server.",[149,363,364,365,293],{},"Before either, check ",[290,366,27],{"href":28},{"title":167,"searchDepth":368,"depth":368,"links":369},2,[370,371,372,373],{"id":155,"depth":368,"text":156},{"id":266,"depth":368,"text":267},{"id":305,"depth":368,"text":306},{"id":341,"depth":368,"text":342},"What the self-hosted stack is made of, what runs where, and what leaves the machine.","md",null,{},{"icon":25},{"title":380,"description":381},"Chronicler self-hosting overview","The four containers in the Chronicler self-hosted stack, the ports they use, and what data leaves the machine.","gAVtVsadsZQahf2HlH3CTq-6QuUn-3vE8EdOtLScQyo",[384,386],{"title":17,"path":18,"stem":19,"description":385,"icon":20,"children":-1},"Let the app set up the Docker stack for you, then register the first administrator.",{"title":27,"path":28,"stem":29,"description":387,"icon":30,"children":-1},"Hardware, operating system and Docker prerequisites - with honest numbers.",1785127053425]