[{"data":1,"prerenderedAt":549},["ShallowReactive",2],{"navigation_docs_en":3,"-en-self-hosting-models":123,"-en-self-hosting-models-surround":544},[4,36,107],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":35},"Getting started","i-lucide-rocket","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"What is Chronicler","\u002Fen\u002Fgetting-started\u002Fwhat-is-chronicler","en\u002F1.getting-started\u002F1.what-is-chronicler","i-lucide-help-circle",{"title":16,"path":17,"stem":18,"icon":19},"Install the app","\u002Fen\u002Fgetting-started\u002Finstall-the-app","en\u002F1.getting-started\u002F2.install-the-app","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Cloud quick start","\u002Fen\u002Fgetting-started\u002Fcloud-quickstart","en\u002F1.getting-started\u002F3.cloud-quickstart","i-lucide-cloud",{"title":26,"path":27,"stem":28,"icon":29},"Your first chat","\u002Fen\u002Fgetting-started\u002Fyour-first-chat","en\u002F1.getting-started\u002F4.your-first-chat","i-lucide-messages-square",{"title":31,"path":32,"stem":33,"icon":34},"Managing users","\u002Fen\u002Fgetting-started\u002Fmanaging-users","en\u002F1.getting-started\u002F5.managing-users","i-lucide-users",false,{"title":37,"icon":38,"path":39,"stem":40,"children":41,"page":35},"Self-hosting","i-lucide-server","\u002Fen\u002Fself-hosting","en\u002F2.self-hosting",[42,47,52,57,62,67,72,77,82,87,92,97,102],{"title":43,"path":44,"stem":45,"icon":46},"Overview","\u002Fen\u002Fself-hosting\u002Foverview","en\u002F2.self-hosting\u002F1.overview","i-lucide-layout-dashboard",{"title":48,"path":49,"stem":50,"icon":51},"Backups and restore","\u002Fen\u002Fself-hosting\u002Fbackups","en\u002F2.self-hosting\u002F10.backups","i-lucide-database-backup",{"title":53,"path":54,"stem":55,"icon":56},"Updating","\u002Fen\u002Fself-hosting\u002Fupdating","en\u002F2.self-hosting\u002F11.updating","i-lucide-refresh-cw",{"title":58,"path":59,"stem":60,"icon":61},"Security and networking","\u002Fen\u002Fself-hosting\u002Fsecurity-and-networking","en\u002F2.self-hosting\u002F12.security-and-networking","i-lucide-shield",{"title":63,"path":64,"stem":65,"icon":66},"Troubleshooting","\u002Fen\u002Fself-hosting\u002Ftroubleshooting","en\u002F2.self-hosting\u002F13.troubleshooting","i-lucide-life-buoy",{"title":68,"path":69,"stem":70,"icon":71},"Requirements","\u002Fen\u002Fself-hosting\u002Frequirements","en\u002F2.self-hosting\u002F2.requirements","i-lucide-cpu",{"title":73,"path":74,"stem":75,"icon":76},"Quick start (guided)","\u002Fen\u002Fself-hosting\u002Fquick-start","en\u002F2.self-hosting\u002F3.quick-start","i-lucide-wand-2",{"title":78,"path":79,"stem":80,"icon":81},"Manual install","\u002Fen\u002Fself-hosting\u002Fmanual-install","en\u002F2.self-hosting\u002F4.manual-install","i-lucide-terminal",{"title":83,"path":84,"stem":85,"icon":86},"GPU acceleration","\u002Fen\u002Fself-hosting\u002Fgpu-acceleration","en\u002F2.self-hosting\u002F5.gpu-acceleration","i-lucide-zap",{"title":88,"path":89,"stem":90,"icon":91},"Performance and memory","\u002Fen\u002Fself-hosting\u002Fperformance-and-memory","en\u002F2.self-hosting\u002F6.performance-and-memory","i-lucide-gauge",{"title":93,"path":94,"stem":95,"icon":96},"Configuration reference","\u002Fen\u002Fself-hosting\u002Fconfiguration-reference","en\u002F2.self-hosting\u002F7.configuration-reference","i-lucide-sliders-horizontal",{"title":98,"path":99,"stem":100,"icon":101},"Models","\u002Fen\u002Fself-hosting\u002Fmodels","en\u002F2.self-hosting\u002F8.models","i-lucide-brain",{"title":103,"path":104,"stem":105,"icon":106},"Licensing and activation","\u002Fen\u002Fself-hosting\u002Flicensing","en\u002F2.self-hosting\u002F9.licensing","i-lucide-key-round",{"title":108,"icon":109,"path":110,"stem":111,"children":112,"page":35},"Reference","i-lucide-book-open","\u002Fen\u002Freference","en\u002F3.reference",[113,118],{"title":114,"path":115,"stem":116,"icon":117},"How it works","\u002Fen\u002Freference\u002Fhow-it-works","en\u002F3.reference\u002F1.how-it-works","i-lucide-workflow",{"title":119,"path":120,"stem":121,"icon":122},"Data and privacy","\u002Fen\u002Freference\u002Fdata-and-privacy","en\u002F3.reference\u002F2.data-and-privacy","i-lucide-lock",{"id":124,"title":98,"body":125,"description":535,"extension":536,"links":537,"meta":538,"navigation":539,"path":99,"seo":540,"stem":100,"__hash__":543},"docs_en\u002Fen\u002F2.self-hosting\u002F8.models.md",{"type":126,"value":127,"toc":518},"minimark",[128,133,142,265,268,272,278,303,306,310,313,316,433,440,444,448,456,460,466,469,473,514],[129,130,132],"h2",{"id":131},"the-model-catalog","The model catalog",[134,135,136,137,141],"p",{},"Every model here also reads images, because the same model answers questions\n",[138,139,140],"strong",{},"and"," does AI-assisted OCR on scanned pages. You only ever run one.",[143,144,145,164],"table",{},[146,147,148],"thead",{},[149,150,151,155,158,161],"tr",{},[152,153,154],"th",{},"Model",[152,156,157],{},"Needs",[152,159,160],{},"Download",[152,162,163],{},"Good for",[165,166,167,185,201,217,233,249],"tbody",{},[149,168,169,176,179,182],{},[170,171,172],"td",{},[173,174,175],"code",{},"gemma4:e2b",[170,177,178],{},"8 GB RAM, no GPU",[170,180,181],{},"~7 GB",[170,183,184],{},"The default. Fastest chat and OCR, strong French and Arabic. Weaker on dense tables.",[149,186,187,192,195,198],{},[170,188,189],{},[173,190,191],{},"gemma4:e4b",[170,193,194],{},"16 GB RAM, no GPU",[170,196,197],{},"~10 GB",[170,199,200],{},"Better reasoning and OCR than E2B, noticeably slower on a CPU.",[149,202,203,208,211,214],{},[170,204,205],{},[173,206,207],{},"qwen2.5vl:7b",[170,209,210],{},"8 GB VRAM",[170,212,213],{},"~6 GB",[170,215,216],{},"Best table and document OCR at this size.",[149,218,219,224,227,230],{},[170,220,221],{},[173,222,223],{},"gemma4:12b",[170,225,226],{},"10 GB VRAM, 16 GB RAM",[170,228,229],{},"~8 GB",[170,231,232],{},"Long context, solid reasoning and dense-table OCR.",[149,234,235,240,243,246],{},[170,236,237],{},[173,238,239],{},"gemma4:26b",[170,241,242],{},"20 GB VRAM, 32 GB RAM",[170,244,245],{},"~18 GB",[170,247,248],{},"Best answer quality on long documents.",[149,250,251,256,259,262],{},[170,252,253],{},[173,254,255],{},"gemma4:31b",[170,257,258],{},"24 GB VRAM, 32 GB RAM",[170,260,261],{},"~20 GB",[170,263,264],{},"Largest tier, slowest per answer.",[134,266,267],{},"The first two run without a graphics card. The rest need one.",[129,269,271],{"id":270},"changing-the-model","Changing the model",[134,273,274,277],{},[138,275,276],{},"Admin → Model"," shows what the server detected, what it recommends, and the\ncatalog. Anything your hardware can't run is greyed out.",[279,280,281,286,289,293,296,300],"steps",{},[282,283,285],"h3",{"id":284},"pick-one-and-choose-use-this-model","Pick one and choose \"Use this model\"",[134,287,288],{},"The download starts immediately, with a progress bar. It's a multi-gigabyte\ndownload — leave it alone.",[282,290,292],{"id":291},"wait-for-it-to-finish","Wait for it to finish",[134,294,295],{},"The new model only becomes active once its download completes, so chat keeps\nworking on the old one meanwhile.",[282,297,299],{"id":298},"the-old-one-is-removed","The old one is removed",[134,301,302],{},"Once the switch is done, the superseded model is deleted to reclaim the disk.",[134,304,305],{},"No restart is needed, and your documents and index are untouched — only the\ncomponent that writes the answers changed.",[129,307,309],{"id":308},"choosing-a-gpu-model-by-hand","Choosing a GPU model by hand",[134,311,312],{},"The hardware probe runs inside the backend container, which has no access to the\ngraphics card. It therefore reports no GPU, and every GPU-class model above is\ngreyed out even on a machine that has one.",[134,314,315],{},"Until that's fixed, set the model on the server instead:",[279,317,318,322,357,361,372,400,411,415],{},[282,319,321],{"id":320},"download-the-model-into-the-stack","Download the model into the stack",[323,324,330],"pre",{"className":325,"code":326,"filename":327,"language":328,"meta":329,"style":329},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","docker exec chronicler-ollama ollama pull gemma4:12b\n","Terminal","bash","",[173,331,332],{"__ignoreMap":329},[333,334,337,341,345,348,351,354],"span",{"class":335,"line":336},"line",1,[333,338,340],{"class":339},"sBMFI","docker",[333,342,344],{"class":343},"sfazB"," exec",[333,346,347],{"class":343}," chronicler-ollama",[333,349,350],{"class":343}," ollama",[333,352,353],{"class":343}," pull",[333,355,356],{"class":343}," gemma4:12b\n",[282,358,360],{"id":359},"tell-the-backend-to-use-it","Tell the backend to use it",[134,362,363,364,367,368,371],{},"In your ",[173,365,366],{},"docker-compose.yml",", under the ",[173,369,370],{},"backend"," service:",[323,373,377],{"className":374,"code":375,"filename":366,"language":376,"meta":329,"style":329},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","    environment:\n      OLLAMA_GENERATION_MODEL: gemma4:12b\n","yaml",[173,378,379,389],{"__ignoreMap":329},[333,380,381,385],{"class":335,"line":336},[333,382,384],{"class":383},"swJcz","    environment",[333,386,388],{"class":387},"sMK4o",":\n",[333,390,392,395,398],{"class":335,"line":391},2,[333,393,394],{"class":383},"      OLLAMA_GENERATION_MODEL",[333,396,397],{"class":387},":",[333,399,356],{"class":343},[134,401,402,403,406,407,410],{},"Keep the existing ",[173,404,405],{},"DATABASE_URL"," and ",[173,408,409],{},"POSTGRES_*"," entries as they are — add this\nline to them.",[282,412,414],{"id":413},"restart","Restart",[323,416,418],{"className":325,"code":417,"filename":327,"language":328,"meta":329,"style":329},"docker compose up -d\n",[173,419,420],{"__ignoreMap":329},[333,421,422,424,427,430],{"class":335,"line":336},[333,423,340],{"class":339},[333,425,426],{"class":343}," compose",[333,428,429],{"class":343}," up",[333,431,432],{"class":343}," -d\n",[434,435,436,437,439],"warning",{},"Selecting a model afterwards in ",[138,438,276],{}," overrides this, and the console\nsetting wins from then on. Pick one place to control it.",[441,442,443],"note",{},"Editing the compose file by hand means the next guided update overwrites your\nchange. Note it somewhere, or keep your own copy of the compose file and point\nthe stack at that.",[129,445,447],{"id":446},"the-embedding-model-is-fixed","The embedding model is fixed",[134,449,450,451,455],{},"Answers come from the generation model above, but ",[452,453,454],"em",{},"finding"," the right passages is\ndone by a separate embedding model. That one cannot be changed: every document\nyou've indexed was indexed with it, and swapping it would silently invalidate the\nlot. It ships inside the image, so it never needs downloading and works with no\ninternet at all.",[129,457,459],{"id":458},"re-indexing","Re-indexing",[134,461,462,465],{},[138,463,464],{},"Admin → Model → Reindex all"," rebuilds the search index for every document.",[134,467,468],{},"You need it rarely — after a restore from an older backup, or if search results\nlook wrong. It's heavy: expect the server to be busy for a long time on a large\nlibrary, and run it outside working hours.",[129,470,472],{"id":471},"choosing-well","Choosing well",[474,475,476,489,499,508],"ul",{},[477,478,479,482,483,485,486,488],"li",{},[138,480,481],{},"On a CPU",", stay small. ",[173,484,175],{}," answering in 40 seconds beats\n",[173,487,191],{}," answering in four minutes.",[477,490,491,494,495,498],{},[138,492,493],{},"On a GPU",", use the largest model that fits comfortably in VRAM. One that\n",[452,496,497],{},"almost"," fits spills into system memory and gets dramatically slower.",[477,500,501,504,505,507],{},[138,502,503],{},"For scanned documents and tables",", ",[173,506,207],{}," and the 12B tier and above\nread structured pages much better.",[477,509,510,513],{},[138,511,512],{},"Test with your own documents."," Benchmarks don't know what your contracts\nlook like.",[515,516,517],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .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}",{"title":329,"searchDepth":391,"depth":391,"links":519},[520,521,527,532,533,534],{"id":131,"depth":391,"text":132},{"id":270,"depth":391,"text":271,"children":522},[523,525,526],{"id":284,"depth":524,"text":285},3,{"id":291,"depth":524,"text":292},{"id":298,"depth":524,"text":299},{"id":308,"depth":391,"text":309,"children":528},[529,530,531],{"id":320,"depth":524,"text":321},{"id":359,"depth":524,"text":360},{"id":413,"depth":524,"text":414},{"id":446,"depth":391,"text":447},{"id":458,"depth":391,"text":459},{"id":471,"depth":391,"text":472},"Which model writes your answers, how to change it, and what each one needs.","md",null,{},{"icon":101},{"title":541,"description":542},"Choosing a Chronicler generation model","The model catalog, hardware requirements, how to switch models and how re-indexing works.","uezrQQjY-I4CJTPPL3RFkO_I6FjVlexftQGQOUI4_QE",[545,547],{"title":93,"path":94,"stem":95,"description":546,"icon":96,"children":-1},"Every setting you can change, where it lives, and what is deliberately fixed.",{"title":103,"path":104,"stem":105,"description":548,"icon":106,"children":-1},"Activate your key, and understand the check that runs every 30 minutes.",1785092110500]