Chạy một phiên bản Ayakaleaf Pro cục bộ trên macOS bằng Docker Desktop và Toolkit.
Trong phần này, chúng ta sẽ chạy Ayakaleaf Pro cục bộ trên máy Mac của bạn bằng Docker Desktop và Ayakaleaf Toolkit. Hướng dẫn sử dụng http://localhost:8080, lưu dữ liệu trong thư mục home của bạn và biên dịch bằng TeX Live 2026 trong các container sandbox.Docker Desktop chạy ứng dụng, MongoDB, Redis và trình biên dịch TeX Live trong một máy ảo Linux. Bạn không cần cài đặt MongoDB, Redis hay MacTeX trực tiếp trên macOS.Hãy dùng thiết lập này cho mục đích cá nhân và thử nghiệm cục bộ. Đối với một dịch vụ dùng chung luôn hoạt động, chúng tôi khuyến nghị hướng dẫn cho Linux, với HTTPS, sao lưu và kiểm soát truy cập. Phiên bản sẽ không khả dụng khi máy Mac ngủ hoặc Docker Desktop bị dừng, xem Giữ cho phiên bản luôn khả dụng.
Git, Homebrew và GNU sed. Toolkit sử dụng các tùy chọn GNU sed mà BSD sed tích hợp sẵn trong macOS không chấp nhận.
Đủ tài nguyên cho cả macOS và Docker. Đối với một phiên bản cục bộ nhỏ, hãy bắt đầu với 4 CPU và 8 GB bộ nhớ được cấp cho Docker Desktop. Đây là điểm khởi đầu được gợi ý, không phải mức tối thiểu đã được đo lường.
Ít nhất 40 GB dung lượng trống cho một TeX Live image đầy đủ, cộng thêm dung lượng cho các dự án của bạn. Hãy kiểm tra cả dung lượng trống trên máy Mac và giới hạn sử dụng ổ đĩa của Docker Desktop. Hãy bắt đầu với một phiên bản TeX Live: mỗi phiên bản bổ sung cần thêm khoảng chừng ấy dung lượng nữa.
Các image ứng dụng và TeX Live được phát hành cho arm64 và amd64. Trên Apple silicon, hãy để Docker chọn image ARM gốc và không ép buộc platform: linux/amd64.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ayakaleaf Pro","description":"Overleaf Community Edition enhanced with all Pro features: open source, free to use, self-hostable.","colors":{"primary":"#0E0E0E","light":"#D4A27F","dark":"#0E0E0E"},"logo":{"light":"https://mintcdn.com/ayakaleaf-pro/JetHeEeglWIIXNds/logo/light.png?fit=max\u0026auto=format\u0026n=JetHeEeglWIIXNds\u0026q=85\u0026s=7f1abd8dcc74dd3b7cdafac9e6e82092","dark":"https://mintcdn.com/ayakaleaf-pro/JetHeEeglWIIXNds/logo/dark.png?fit=max\u0026auto=format\u0026n=JetHeEeglWIIXNds\u0026q=85\u0026s=4e369d29a8c5a6cd8b4b7697ddb1f7e2","href":"/"},"favicon":"https://mintcdn.com/ayakaleaf-pro/x9kfDjtWlyyhG_mR/favicon.png?fit=max\u0026auto=format\u0026n=x9kfDjtWlyyhG_mR\u0026q=85\u0026s=832c6bfafce5eb69ebc83783083a4a85","background":{"color":{"light":"#FDFDF7","dark":"#09090B"}},"navbar":{"links":[{"href":"https://github.com/ayaka-notes/ayakaleaf-pro-playground","label":"Playground"},{"href":"https://github.com/orgs/ayaka-notes/packages/container/package/overleaf-pro","label":"Docker Image"},{"href":"https://github.com/ayaka-notes/texlive-full","label":"TeXLive Full"}],"primary":{"type":"button","label":"Open GitHub","href":"https://github.com/ayaka-notes/ayakaleaf-pro"}},"footer":{"socials":{"github":"https://github.com/ayaka-notes"}},"styling":{"latex":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode","assistant","download-pdf","download-spec"],"display":"header"},"metadata":{"timestamp":true},"navigation":{"languages":[{"language":"en","default":true,"href":""},{"language":"zh-CN","href":"zh-CN"},{"language":"zh-TW","href":"zh-TW"},{"language":"ja","href":"ja"},{"language":"de","href":"de"},{"language":"fr","href":"fr"},{"language":"es","href":"es"},{"language":"it","href":"it"},{"language":"ko","href":"ko"},{"language":"ru","href":"ru"},{"language":"nl","href":"nl"},{"language":"pt","href":"pt"},{"language":"tr","href":"tr"},{"language":"uk","href":"uk"},{"language":"pl","href":"pl"},{"language":"cs","href":"cs"},{"language":"sv","href":"sv"},{"language":"fi","href":"fi"},{"language":"ar","href":"ar"},{"language":"vi","href":"vi"},{"language":"no","href":"no"},{"language":"da","href":"da"},{"language":"id","href":"id"},{"language":"zh-Hans","href":"zh-Hans"},{"language":"zh-Hant","href":"zh-Hant"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ayakaleaf-pro","hasAudioNarration":false,"actualSubdomain":"ayakaleaf-pro","customDomains":[],"gitSource":{"type":"github","owner":"ayaka-notes","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeff95a3729d361787f6c2e","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"en","tag":"On-Premises","count":138},{"language":"ar","tag":"الاستضافة المحلية","count":117},{"language":"cs","tag":"On-Premises","count":117},{"language":"da","tag":"On-premises","count":117},{"language":"de","tag":"On-Premises","count":117},{"language":"es","tag":"Local","count":117},{"language":"fi","tag":"Paikallinen asennus","count":117},{"language":"fr","tag":"Sur site","count":117},{"language":"id","tag":"On-Premises","count":117},{"language":"it","tag":"On-premise","count":117},{"language":"ja","tag":"オンプレミス","count":117},{"language":"ko","tag":"온프레미스","count":117},{"language":"nl","tag":"On-premises","count":117},{"language":"no","tag":"Lokal drift","count":117},{"language":"pl","tag":"On-Premises","count":117},{"language":"pt","tag":"On-Premises","count":117},{"language":"ru","tag":"Локальное развертывание","count":117},{"language":"sv","tag":"On-Premises","count":117},{"language":"tr","tag":"Şirket İçi Kurulum","count":117},{"language":"uk","tag":"Локальне розгортання","count":117},{"language":"vi","tag":"Tự triển khai (On-Premises)","count":117},{"language":"zh-CN","tag":"本地部署","count":117},{"language":"zh-Hans","tag":"本地部署","count":117},{"language":"zh-Hant","tag":"本地部署","count":117},{"language":"zh-TW","tag":"本地部署","count":117},{"language":"ar","tag":"الإعداد","count":60},{"language":"en","tag":"Configuration","count":60},{"language":"cs","tag":"Konfigurace","count":60},{"language":"da","tag":"Konfiguration","count":60},{"language":"de","tag":"Konfiguration","count":60},{"language":"es","tag":"Configuración","count":60},{"language":"fi","tag":"Määritys","count":60},{"language":"fr","tag":"Configuration","count":60},{"language":"id","tag":"Konfigurasi","count":60},{"language":"it","tag":"Configurazione","count":60},{"language":"ja","tag":"設定","count":60},{"language":"ko","tag":"구성","count":60},{"language":"nl","tag":"Configuratie","count":60},{"language":"no","tag":"Konfigurasjon","count":60},{"language":"pl","tag":"Konfiguracja","count":60},{"language":"pt","tag":"Configuração","count":60},{"language":"ru","tag":"Настройка","count":60},{"language":"sv","tag":"Konfiguration","count":60},{"language":"tr","tag":"Yapılandırma","count":60},{"language":"uk","tag":"Конфігурація","count":60},{"language":"vi","tag":"Cấu hình","count":60},{"language":"zh-CN","tag":"配置","count":60},{"language":"zh-Hans","tag":"配置","count":60},{"language":"zh-Hant","tag":"設定","count":60},{"language":"zh-TW","tag":"設定","count":60},{"language":"ar","tag":"التثبيت","count":35},{"language":"en","tag":"Installation","count":35},{"language":"cs","tag":"Instalace","count":35},{"language":"da","tag":"Installation","count":35},{"language":"de","tag":"Installation","count":35},{"language":"es","tag":"Instalación","count":35},{"language":"fi","tag":"Asennus","count":35},{"language":"fr","tag":"Installation","count":35},{"language":"id","tag":"Instalasi","count":35},{"language":"it","tag":"Installazione","count":35},{"language":"ja","tag":"インストール","count":35},{"language":"ko","tag":"설치","count":35},{"language":"nl","tag":"Installatie","count":35},{"language":"no","tag":"Installasjon","count":35},{"language":"pl","tag":"Instalacja","count":35},{"language":"pt","tag":"Instalação","count":35},{"language":"ru","tag":"Установка","count":35},{"language":"sv","tag":"Installation","count":35},{"language":"tr","tag":"Kurulum","count":35},{"language":"uk","tag":"Встановлення","count":35},{"language":"vi","tag":"Cài đặt","count":35},{"language":"zh-CN","tag":"安装","count":35},{"language":"zh-Hans","tag":"安装","count":35},{"language":"zh-Hant","tag":"安裝","count":35},{"language":"zh-TW","tag":"安裝","count":35},{"language":"ar","tag":"Docker Compose","count":31},{"language":"en","tag":"Docker Compose","count":31},{"language":"cs","tag":"Docker Compose","count":31},{"language":"da","tag":"Docker Compose","count":31},{"language":"de","tag":"Docker Compose","count":31},{"language":"es","tag":"Docker Compose","count":31},{"language":"fi","tag":"Docker Compose","count":31},{"language":"fr","tag":"Docker Compose","count":31},{"language":"id","tag":"Docker Compose","count":31},{"language":"it","tag":"Docker Compose","count":31},{"language":"ja","tag":"Docker Compose","count":31},{"language":"ko","tag":"Docker Compose","count":31},{"language":"nl","tag":"Docker Compose","count":31},{"language":"no","tag":"Docker Compose","count":31},{"language":"pl","tag":"Docker Compose","count":31},{"language":"pt","tag":"Docker Compose","count":31},{"language":"ru","tag":"Docker Compose","count":31},{"language":"sv","tag":"Docker Compose","count":31},{"language":"tr","tag":"Docker Compose","count":31},{"language":"uk","tag":"Docker Compose","count":31},{"language":"vi","tag":"Docker Compose","count":31},{"language":"zh-CN","tag":"Docker Compose","count":31},{"language":"zh-Hans","tag":"Docker Compose","count":31},{"language":"zh-Hant","tag":"Docker Compose","count":31},{"language":"zh-TW","tag":"Docker Compose","count":31},{"language":"ar","tag":"Kubernetes","count":29},{"language":"en","tag":"Kubernetes","count":29},{"language":"cs","tag":"Kubernetes","count":29},{"language":"da","tag":"Kubernetes","count":29},{"language":"de","tag":"Kubernetes","count":29},{"language":"es","tag":"Kubernetes","count":29},{"language":"fi","tag":"Kubernetes","count":29},{"language":"fr","tag":"Kubernetes","count":29},{"language":"id","tag":"Kubernetes","count":29},{"language":"it","tag":"Kubernetes","count":29},{"language":"ja","tag":"Kubernetes","count":29},{"language":"ko","tag":"Kubernetes","count":29},{"language":"nl","tag":"Kubernetes","count":29},{"language":"no","tag":"Kubernetes","count":29},{"language":"pl","tag":"Kubernetes","count":29},{"language":"pt","tag":"Kubernetes","count":29},{"language":"ru","tag":"Kubernetes","count":29},{"language":"sv","tag":"Kubernetes","count":29},{"language":"tr","tag":"Kubernetes","count":29},{"language":"uk","tag":"Kubernetes","count":29},{"language":"vi","tag":"Kubernetes","count":29},{"language":"zh-CN","tag":"Kubernetes","count":29},{"language":"zh-Hans","tag":"Kubernetes","count":29},{"language":"zh-Hant","tag":"Kubernetes","count":29},{"language":"zh-TW","tag":"Kubernetes","count":29},{"language":"ar","tag":"استخدام Docker Compose","count":23},{"language":"en","tag":"Using Docker Compose","count":23},{"language":"cs","tag":"Použití Docker Compose","count":23},{"language":"da","tag":"Brug af Docker Compose","count":23},{"language":"de","tag":"Docker Compose verwenden","count":23},{"language":"es","tag":"Uso de Docker Compose","count":23},{"language":"fi","tag":"Docker Composen käyttö","count":23},{"language":"fr","tag":"Utiliser Docker Compose","count":23},{"language":"id","tag":"Menggunakan Docker Compose","count":23},{"language":"it","tag":"Utilizzo di Docker Compose","count":23},{"language":"ja","tag":"Docker Compose の使用","count":23},{"language":"ko","tag":"Docker Compose 사용","count":23},{"language":"nl","tag":"Docker Compose gebruiken","count":23},{"language":"no","tag":"Bruke Docker Compose","count":23},{"language":"pl","tag":"Korzystanie z Docker Compose","count":23},{"language":"pt","tag":"Usando o Docker Compose","count":23},{"language":"ru","tag":"Использование Docker Compose","count":23},{"language":"sv","tag":"Använda Docker Compose","count":23},{"language":"tr","tag":"Docker Compose kullanımı","count":23},{"language":"uk","tag":"Використання Docker Compose","count":23},{"language":"vi","tag":"Sử dụng Docker Compose","count":23},{"language":"zh-CN","tag":"使用 Docker Compose","count":23},{"language":"zh-Hans","tag":"使用 Docker Compose","count":23},{"language":"zh-Hant","tag":"使用 Docker Compose","count":23},{"language":"zh-TW","tag":"使用 Docker Compose","count":23},{"language":"en","tag":"User guide","count":21},{"language":"ar","tag":"التكاملات","count":20},{"language":"en","tag":"Integrations","count":20},{"language":"cs","tag":"Integrace","count":20},{"language":"da","tag":"Integrationer","count":20},{"language":"de","tag":"Integrationen","count":20},{"language":"es","tag":"Integraciones","count":20},{"language":"fi","tag":"Integraatiot","count":20},{"language":"fr","tag":"Intégrations","count":20},{"language":"id","tag":"Integrasi","count":20},{"language":"it","tag":"Integrazioni","count":20},{"language":"ja","tag":"連携","count":20},{"language":"ko","tag":"통합","count":20},{"language":"nl","tag":"Integraties","count":20},{"language":"no","tag":"Integrasjoner","count":20},{"language":"pl","tag":"Integracje","count":20},{"language":"pt","tag":"Integrações","count":20},{"language":"ru","tag":"Интеграции","count":20},{"language":"sv","tag":"Integrationer","count":20},{"language":"tr","tag":"Entegrasyonlar","count":20},{"language":"uk","tag":"Інтеграції","count":20},{"language":"vi","tag":"Tích hợp","count":20},{"language":"zh-CN","tag":"集成","count":20},{"language":"zh-Hans","tag":"集成","count":20},{"language":"zh-Hant","tag":"整合","count":20},{"language":"zh-TW","tag":"整合","count":20},{"language":"en","tag":"For users","count":16},{"language":"ar","tag":"المصادقة","count":12},{"language":"en","tag":"Authentication","count":12},{"language":"cs","tag":"Ověřování","count":12},{"language":"da","tag":"Godkendelse","count":12},{"language":"de","tag":"Authentifizierung","count":12},{"language":"es","tag":"Autenticación","count":12},{"language":"fi","tag":"Todennus","count":12},{"language":"fr","tag":"Authentification","count":12},{"language":"id","tag":"Autentikasi","count":12},{"language":"it","tag":"Autenticazione","count":12},{"language":"ja","tag":"認証","count":12},{"language":"ko","tag":"인증","count":12},{"language":"nl","tag":"Authenticatie","count":12},{"language":"no","tag":"Autentisering","count":12},{"language":"pl","tag":"Uwierzytelnianie","count":12},{"language":"pt","tag":"Autenticação","count":12},{"language":"ru","tag":"Аутентификация","count":12},{"language":"sv","tag":"Autentisering","count":12},{"language":"tr","tag":"Kimlik Doğrulama","count":12},{"language":"uk","tag":"Автентифікація","count":12},{"language":"vi","tag":"Xác thực","count":12},{"language":"zh-CN","tag":"身份验证","count":12},{"language":"zh-Hans","tag":"身份验证","count":12},{"language":"zh-Hant","tag":"身分驗證","count":12},{"language":"zh-TW","tag":"身分驗證","count":12},{"language":"ar","tag":"المطوّرون","count":11},{"language":"cs","tag":"Vývojáři","count":11},{"language":"da","tag":"Udvikler","count":11},{"language":"de","tag":"Entwickler","count":11},{"language":"es","tag":"Desarrollador","count":11},{"language":"fi","tag":"Kehittäjä","count":11},{"language":"fr","tag":"Développeur","count":11},{"language":"id","tag":"Pengembang","count":11},{"language":"it","tag":"Sviluppatore","count":11},{"language":"ja","tag":"開発者","count":11},{"language":"ko","tag":"개발자","count":11},{"language":"nl","tag":"Ontwikkelaar","count":11},{"language":"no","tag":"Utvikler","count":11},{"language":"pl","tag":"Dla deweloperów","count":11},{"language":"pt","tag":"Desenvolvedor","count":11},{"language":"ru","tag":"Разработчикам","count":11},{"language":"sv","tag":"Utvecklare","count":11},{"language":"tr","tag":"Geliştirici","count":11},{"language":"uk","tag":"Розробникам","count":11},{"language":"vi","tag":"Nhà phát triển","count":11},{"language":"zh-CN","tag":"开发者","count":11},{"language":"zh-Hans","tag":"开发者","count":11},{"language":"zh-Hant","tag":"開發者","count":11},{"language":"zh-TW","tag":"開發者","count":11},{"language":"ar","tag":"نظرة عامة","count":9},{"language":"cs","tag":"Přehled","count":9},{"language":"da","tag":"Oversigt","count":9},{"language":"de","tag":"Überblick","count":9},{"language":"es","tag":"Descripción general","count":9},{"language":"fi","tag":"Yleiskatsaus","count":9},{"language":"fr","tag":"Aperçu","count":9},{"language":"id","tag":"Ikhtisar","count":9},{"language":"it","tag":"Panoramica","count":9},{"language":"ja","tag":"概要","count":9},{"language":"ko","tag":"개요","count":9},{"language":"nl","tag":"Overzicht","count":9},{"language":"no","tag":"Oversikt","count":9},{"language":"pl","tag":"Przegląd","count":9},{"language":"pt","tag":"Visão geral","count":9},{"language":"ru","tag":"Обзор","count":9},{"language":"sv","tag":"Översikt","count":9},{"language":"tr","tag":"Genel Bakış","count":9},{"language":"uk","tag":"Огляд","count":9},{"language":"vi","tag":"Tổng quan","count":9},{"language":"zh-CN","tag":"概览","count":9},{"language":"zh-Hans","tag":"概览","count":9},{"language":"zh-Hant","tag":"概覽","count":9},{"language":"zh-TW","tag":"概覽","count":9}],"searchSettings":{"maxResults":6}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:\"Site Sans\";src:url(\"/fonts/SiteSans-Text-Regular-Static.otf\") format(\"opentype\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"Site Sans\";src:url(\"/fonts/SiteSans-Text-RegularItalic-Static.otf\") format(\"opentype\");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:\"Site Sans\";src:url(\"/fonts/SiteSans-Text-Medium-Static.otf\") format(\"opentype\");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:\"Site Sans\";src:url(\"/fonts/SiteSans-Text-MediumItalic-Static.otf\") format(\"opentype\");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:\"Site Sans\";src:url(\"/fonts/SiteSans-Text-Semibold-Static.otf\") format(\"opentype\");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:\"Site Sans\";src:url(\"/fonts/SiteSans-Text-SemiboldItalic-Static.otf\") format(\"opentype\");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:\"Site Sans\";src:url(\"/fonts/SiteSans-Text-Bold-Static.otf\") format(\"opentype\");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:\"Site Sans\";src:url(\"/fonts/SiteSans-Text-BoldItalic-Static.otf\") format(\"opentype\");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:\"Site Serif Display\";src:url(\"/fonts/SiteSerif-Display-Regular-Static.otf\") format(\"opentype\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"Site Serif Display\";src:url(\"/fonts/SiteSerif-Display-RegularItalic-Static.otf\") format(\"opentype\");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:\"Site Serif Display\";src:url(\"/fonts/SiteSerif-Display-Medium-Static.otf\") format(\"opentype\");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:\"Site Serif Display\";src:url(\"/fonts/SiteSerif-Display-Semibold-Static.otf\") format(\"opentype\");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:\"Site Serif Display\";src:url(\"/fonts/SiteSerif-Display-Bold-Static.otf\") format(\"opentype\");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:\"Site Serif\";src:url(\"/fonts/SiteSerif-Text-Regular-Static.otf\") format(\"opentype\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"Site Serif\";src:url(\"/fonts/SiteSerif-Text-RegularItalic-Static.otf\") format(\"opentype\");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:\"Site Serif\";src:url(\"/fonts/SiteSerif-Text-Medium-Static.otf\") format(\"opentype\");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:\"Site Serif\";src:url(\"/fonts/SiteSerif-Text-MediumItalic-Static.otf\") format(\"opentype\");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:\"Site Serif\";src:url(\"/fonts/SiteSerif-Text-Semibold-Static.otf\") format(\"opentype\");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:\"Site Serif\";src:url(\"/fonts/SiteSerif-Text-SemiboldItalic-Static.otf\") format(\"opentype\");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:\"Site Serif\";src:url(\"/fonts/SiteSerif-Text-Bold-Static.otf\") format(\"opentype\");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:\"Site Serif\";src:url(\"/fonts/SiteSerif-Text-BoldItalic-Static.otf\") format(\"opentype\");font-weight:700;font-style:italic;font-display:swap}:root{--always-white: 0 0% 100%;--always-black: 0 0% 0%;--constant-book-cloth: 15 55% 80%;--constant-clay: 15 60% 85%;--constant-kraft: 25 40% 83%;--constant-manilla: 40 20% 92%;--constant-slate-000: 0 0% 100%;--constant-slate-050: 48 33.3% 97.1%;--constant-slate-100: 53 28.6% 94.5%;--constant-slate-150: 48 25% 92.2%;--constant-slate-200: 50 20.7% 88.6%;--constant-slate-250: 51 16.5% 84.5%;--constant-slate-300: 50 11.5% 79.6%;--constant-slate-350: 50 9% 73.7%;--constant-slate-400: 49 6.5% 66.9%;--constant-slate-450: 48 4.8% 59.2%;--constant-slate-500: 53 3.2% 51.4%;--constant-slate-550: 51 3.1% 43.7%;--constant-slate-600: 48 2.7% 35.9%;--constant-slate-650: 48 3.4% 29.2%;--constant-slate-700: 60 2.5% 23.3%;--constant-slate-750: 60 2.1% 18.4%;--constant-slate-800: 60 2.7% 14.5%;--constant-slate-850: 30 3.3% 11.8%;--constant-slate-900: 30 4% 9.8%;--constant-slate-950: 60 2.6% 7.6%;--constant-slate-1000: 60 3.4% 5.7%}:root:not(.dark){--accent-brand: 15 63.1% 59.6%;--accent-main-000: 15 55.6% 52.4%;--accent-main-100: 15 55.6% 52.4%;--accent-main-200: 15 63.1% 59.6%;--accent-main-900: 0 0% 0%;--accent-pro-000: 251 34.2% 33.3%;--accent-pro-100: 251 40% 45.1%;--accent-pro-200: 251 61% 72.2%;--accent-pro-900: 253 33.3% 91.8%;--accent-secondary-000: 210 73.7% 40.2%;--accent-secondary-100: 210 70.9% 51.6%;--accent-secondary-200: 210 70.9% 51.6%;--accent-secondary-900: 211 72% 90%;--bg-000: 0 0% 100%;--bg-100: 48 33.3% 97.1%;--bg-200: 53 28.6% 94.5%;--bg-300: 48 25% 92.2%;--bg-400: 50 20.7% 88.6%;--bg-500: 50 20.7% 88.6%;--border-100: 30 3.3% 11.8%;--border-200: 30 3.3% 11.8%;--border-300: 30 3.3% 11.8%;--border-400: 30 3.3% 11.8%;--danger-000: 0 61.4% 22.4%;--danger-100: 0 58.6% 34.1%;--danger-200: 0 58.6% 34.1%;--danger-900: 0 50% 95%;--oncolor-100: 0 0% 100%;--oncolor-200: 60 6.7% 97.1%;--oncolor-300: 60 6.7% 97.1%;--text-000: 60 2.6% 7.6%;--text-100: 60 2.6% 7.6%;--text-200: 60 2.5% 23.3%;--text-300: 60 2.5% 23.3%;--text-400: 51 3.1% 43.7%;--text-500: 51 3.1% 43.7%}:root.dark{--accent-brand: 15 63.1% 59.6%;--accent-main-000: 15 55.6% 52.4%;--accent-main-100: 15 63.1% 59.6%;--accent-main-200: 15 63.1% 59.6%;--accent-main-900: 0 0% 0%;--accent-pro-000: 251 84.6% 74.5%;--accent-pro-100: 251 40.2% 54.1%;--accent-pro-200: 251 40% 45.1%;--accent-pro-900: 250 25.3% 19.4%;--accent-secondary-000: 210 71.1% 62%;--accent-secondary-100: 210 70.9% 51.6%;--accent-secondary-200: 210 70.9% 51.6%;--accent-secondary-900: 210 55.9% 24.6%;--bg-000: 60 2.1% 18.4%;--bg-100: 60 2.7% 14.5%;--bg-200: 30 3.3% 11.8%;--bg-300: 60 2.6% 7.6%;--bg-400: 60 3.4% 5.7%;--bg-500: 60 3.4% 5.7%;--border-100: 51 16.5% 84.5%;--border-200: 51 16.5% 84.5%;--border-300: 51 16.5% 84.5%;--border-400: 51 16.5% 84.5%;--danger-000: 0 73.1% 66.5%;--danger-100: 0 58.6% 34.1%;--danger-200: 0 58.6% 34.1%;--danger-900: 0 23% 15.6%;--oncolor-100: 0 0% 100%;--oncolor-200: 60 6.7% 97.1%;--oncolor-300: 60 6.7% 97.1%;--text-000: 48 33.3% 97.1%;--text-100: 48 33.3% 97.1%;--text-200: 50 9% 73.7%;--text-300: 50 9% 73.7%;--text-400: 48 4.8% 59.2%;--text-500: 48 4.8% 59.2%}#home-header{font-family:\"Site Sans\", system-ui, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;font-weight:400!important;font-size:50px;line-height:1.2;margin-bottom:1rem;color:--text-000;display:flex;align-items:baseline;justify-content:center;flex-wrap:nowrap}#localization-select-trigger>:has(img[src*=\"flags\"]){display:none}div[id^=\"localization-select-item\"]>:has(img[src*=\"flags\"]){display:none}@media (min-width: 768px){#home-header{justify-content:center}}.build-with{font-family:\"Site Sans\", system-ui, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;letter-spacing:-0.02em}.claude-wordmark-wrapper{display:inline-flex;align-items:baseline;margin-left:10px}.claude-wordmark{height:40px;width:auto;position:relative}.dark #home-header{color:white}.description-text{color:black}.dark .description-text{color:white}.dark .claude-wordmark{filter:invert(1)}:root{--bg-color: #f0efea}.dark{--bg-color: #2b2b2b}body,input,#category-select,.dropdown-item,#table-of-contents{font-family:\"Site Sans\", system-ui, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif}.eyebrow{font-family:\"Site Sans\", system-ui, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;text-transform:uppercase;letter-spacing:0.02rem}#content-container{font-family:\"Site Sans\", system-ui, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif}#content-container h1,#content-container h2,#content-container h3,#content-container h4,#content-container h5,#content-container h6{font-family:\"Site Serif Display\", Georgia, \"Times New Roman\", Times, serif;font-weight:400;letter-spacing:0;word-spacing:0.1em}#content-container p{font-size:1rem;line-height:1.65rem}.font-extrabold{font-weight:600!important}.wide-table{width:100%;overflow-x:auto}.wide-table table{width:175%;margin-bottom:0}#prompt-library-container{margin:4rem auto;max-width:48rem;padding-left:1.25rem;padding-right:1.25rem}.prompt-library-title{font-size:24px;text-align:center;font-weight:700;color:#1f2937}.dark .prompt-library-title{color:#e5e7eb}.prompt-library-description{margin-top:1rem;text-align:center}.main-content{margin-bottom:10rem;max-width:64rem;margin-left:auto;margin-right:auto;padding-left:1.25rem;padding-right:1.25rem}.prompt-controllers{display:flex;gap:0.5rem}.prompt-search-container{position:relative;flex:1 1 0%}.prompt-search-icon-container{display:flex;position:absolute;top:0;bottom:0;left:0;align-items:center;padding-left:0.75rem}.prompt-search-icon{margin-left:0.25rem;margin-right:0.75rem;flex:none;width:1rem;height:1rem;background-color:#6b7280;mask-image:url(https://mintlify.b-cdn.net/v6.5.1/solid/magnifying-glass.svg);mask-repeat:no-repeat;mask-position:center center}input.prompt-search-bar{display:block;height:2.5rem;padding-left:2.5rem;border-radius:0.75rem;border-width:1px;background-color:#ffffff;width:100%;color:#111827;box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05)}.dark input.prompt-search-bar{color:#ffffff;background-color:rgb(var(--background-dark));border-color:#d1d5db1a}input.prompt-search-bar:focus{outline-color:rgb(var(--primary))}.dark input.prompt-search-bar:focus{outline-color:rgb(var(--primary-light))}.dark .prompt-search-icon{background-color:#ffffff80}#category-select{padding-left:1rem;padding-right:2.5rem;height:2.5rem;display:flex;align-items:center;border-radius:0.75rem;border-width:1px;color:#111827;background-color:#ffffff;cursor:pointer;box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05);white-space:nowrap}.dark #category-select{background-color:rgb(var(--background-dark));border-color:#d1d5db1a;color:#ffffff}#category-select:hover{background-color:#f9fafb}.dark #category-select:hover{background-color:#ffffff0d}#category-select:focus{outline-color:rgb(var(--primary))}.dark #category-select:focus{outline-color:rgb(var(--primary-light))}#categories-dropdown{top:calc(100% + 4px);padding:0.5rem 0.5rem;display:none;position:absolute;z-index:10;border-radius:0.75rem;border-width:1px;width:100%;color:#111827;background-color:#ffffff;box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05)}.dark #categories-dropdown{background-color:rgb(var(--background-dark));border-color:#d1d5db1a;color:#ffffff}#categories-dropdown-clickout{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}.dropdown-icon-container{display:flex;position:absolute;top:0;bottom:0;right:0;align-items:center;padding-right:0.25rem}.dropdown-icon{margin-left:0.25rem;margin-right:0.75rem;flex:none;width:0.75rem;height:0.75rem;background-color:#6b7280;mask-image:url(https://mintlify.b-cdn.net/v6.5.1/solid/caret-down.svg);mask-repeat:no-repeat;mask-position:center center}.dark .dropdown-icon{background-color:#ffffff80}#prompts-container{grid-template-columns:repeat(1, minmax(0, 1fr));gap:2rem}.dropdown-item{padding:0.25rem 0.5rem;border-radius:0.375rem;display:flex;align-items:center;cursor:pointer}.dropdown-item:hover{background-color:#f9fafb}.dark .dropdown-item:hover{background-color:#ffffff0d}.check-icon{mask-image:url(https://mintlify.b-cdn.net/v6.5.1/solid/check.svg);height:0.875rem;width:1rem;background-color:rgb(var(--primary-light));mask-repeat:no-repeat;mask-position:center center}.prompt-card{margin:-0.75rem;padding:0.75rem;display:flex;border-radius:1rem}.prompt-card:hover{background-color:#03071208}.dark .prompt-card:hover{background-color:#ffffff08}.prompt-icon-container{display:flex;flex:none;align-items:center;justify-content:center;margin-right:1.5rem;border-radius:0.75rem;height:4rem;width:4rem;background-color:#cb785c1a}.prompt-icon{height:1.5rem;width:1.5rem;background-color:rgb(var(--primary-light));mask-repeat:no-repeat;mask-position:center center}.prompt-title{color:rgb(31 41 55);font-weight:600}.dark .prompt-title{color:rgb(229 231 235)}.prompt-description{margin-top:0.25rem}#prompts-container{display:grid;margin-top:2.5rem}@media (min-width: 640px){#category-select{width:16rem}}@media (min-width: 1024px){#prompts-container{grid-template-columns:repeat(2, minmax(0, 1fr))}}.home-cards-custom{display:grid;grid-template-columns:repeat(3, 1fr);grid-template-rows:repeat(2, auto);gap:1.5rem}.home-cards-custom .card{background:transparent;border:0.5px solid hsl(var(--border-300));border-radius:12px;padding:0.25rem}@media (max-width: 1024px){.home-cards-custom{grid-template-columns:repeat(2, 1fr);grid-template-rows:repeat(3, auto)}}@media (max-width: 768px){.home-cards-custom{grid-template-columns:1fr;grid-template-rows:repeat(6, auto)}}.relative{position:relative}.flex-1{flex:1 1 0%}.mermaid{position:relative;background-color:#FDFDFB;background-image:linear-gradient(rgba(235, 219, 188, .25) 1px, transparent 1px), /* Secondary color #EBDBBC with low opacity */\n linear-gradient(90deg, rgba(235, 219, 188, .25) 1px, transparent 1px),\n linear-gradient(rgba(235, 219, 188, .1) 1px, transparent 1px),\n linear-gradient(90deg, rgba(235, 219, 188, .1) 1px, transparent 1px);background-size:20px 20px,\n 20px 20px,\n 4px 4px,\n 4px 4px;background-position:-1px -1px,\n -1px -1px,\n -1px -1px,\n -1px -1px;padding:20px;border-radius:8px;border:1px solid rgba(235, 219, 188, .4);box-shadow:0 2px 4px rgba(64, 64, 62, 0.08)}.dark .mermaid{background-color:#1a1918;background-image:linear-gradient(rgba(212, 162, 127, .15) 1px, transparent 1px), /* Tertiary color #D4A27F with low opacity */\n linear-gradient(90deg, rgba(212, 162, 127, .15) 1px, transparent 1px),\n linear-gradient(rgba(212, 162, 127, .08) 1px, transparent 1px),\n linear-gradient(90deg, rgba(212, 162, 127, .08) 1px, transparent 1px);border:1px solid rgba(102, 102, 99, .5);box-shadow:0 2px 4px rgba(0, 0, 0, 0.2)}.digest-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.5rem 1rem;padding:0.75rem 1rem;margin:1.5rem 0 2.5rem;border:1px solid hsl(var(--border-300) / 0.15);background:hsl(var(--bg-200));font-variant-numeric:tabular-nums;font-size:0.875rem;color:hsl(var(--text-400))}#content-container .digest-meta a{color:hsl(var(--accent-main-100));font-weight:500;text-decoration:none;border-bottom:none}#content-container .digest-meta a:hover{text-decoration:underline}.digest-feature{position:relative;margin:2.5rem 0;padding:1.875rem 1.875rem 1.625rem;background:radial-gradient(circle, hsl(var(--text-000) / 0.025) 1px, transparent 1px) 0 0 / 18px 18px,\n linear-gradient(180deg, hsl(var(--constant-manilla) / 0.55), hsl(var(--constant-manilla) / 0.38));border:1px solid hsl(var(--border-300) / 0.12);box-shadow:inset 0 1px 0 hsl(var(--text-000) / 0.04),\n 0 1px 2px hsl(var(--always-black) / 0.04)}.digest-feature::before{content:\"\";position:absolute;inset:0 auto 0 0;width:4px;background:hsl(var(--accent-brand))}.dark .digest-feature{background:radial-gradient(circle, hsl(var(--text-000) / 0.02) 1px, transparent 1px) 0 0 / 18px 18px,\n linear-gradient(180deg, hsl(var(--bg-000) / 0.75), hsl(var(--bg-000) / 0.5));border-color:hsl(var(--border-300) / 0.1);box-shadow:inset 0 1px 0 hsl(var(--text-000) / 0.03),\n 0 1px 2px hsl(var(--always-black) / 0.25)}.digest-feature>:first-child{margin-top:0}.digest-feature>:last-child{margin-bottom:0}.digest-feature-header{display:flex;align-items:center;flex-wrap:wrap;gap:0.625rem;margin:0 0 0.75rem}#content-container .digest-feature-title{font-family:\"Site Serif Display\", Georgia, serif;font-size:1.75rem;line-height:1.15;font-weight:500;letter-spacing:-0.015em;color:hsl(var(--text-000));margin:0}#content-container .digest-feature-pill{font-family:ui-monospace, \"SF Mono\", Menlo, Consolas, monospace;font-size:0.75rem;line-height:1;letter-spacing:0.01em;padding:0.3rem 0.6rem;border-radius:999px;background:hsl(var(--accent-brand) / 0.12);color:hsl(var(--accent-main-000));border:1px solid hsl(var(--accent-brand) / 0.25);white-space:nowrap;transform:translateY(1px)}#content-container .digest-feature-lede{font-size:1.0625rem;line-height:1.65;color:hsl(var(--text-100));margin:0 0 1.25rem;max-width:none}#content-container .digest-feature-lede code{font-size:0.875em;padding:0.1em 0.35em}#content-container .digest-feature-try{font-size:0.875rem;color:hsl(var(--text-400));margin:1.25rem 0 0.5rem}#content-container .digest-feature .frame{margin:1rem 0;border-radius:0;padding:0}#content-container .digest-feature .frame>*{border-radius:0}#content-container .digest-feature pre,#content-container .digest-feature [class*=\"CodeBlock\"]{border-radius:0}#content-container .digest-feature-link{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.875rem;font-weight:500;color:hsl(var(--accent-main-100));text-decoration:none;border-bottom:none;margin-top:0.75rem}#content-container .digest-feature-link::after{content:\"→\";transition:transform 120ms ease-out}#content-container .digest-feature-link:hover::after{transform:translateX(3px)}.digest-wins{margin:2.5rem 0;padding:1.5rem 1.75rem 1.25rem;background:hsl(var(--bg-200));border:1px solid hsl(var(--border-300) / 0.1)}.dark .digest-wins{background:hsl(var(--bg-200) / 0.6)}#content-container .digest-wins-title{font-family:\"Site Serif Display\", Georgia, serif;font-size:1.25rem;font-weight:500;color:hsl(var(--text-000));margin:0 0 0.75rem}.digest-wins-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr));column-gap:2rem}#content-container .digest-wins-grid>div{position:relative;font-size:0.875rem;line-height:1.5;color:hsl(var(--text-300));padding:0.5rem 0 0.5rem 1.125rem;border-top:1px solid hsl(var(--border-300) / 0.06);margin:0}#content-container .digest-wins-grid>div::before{content:\"+\";position:absolute;left:0;top:0.5rem;font-family:ui-monospace, \"SF Mono\", Menlo, Consolas, monospace;font-size:0.8125rem;font-weight:600;color:hsl(var(--accent-brand))}#content-container .digest-wins-grid>div:first-child,#content-container .digest-wins-grid>div:nth-child(2){border-top:none;padding-top:0}#content-container .digest-wins-grid>div:first-child::before,#content-container .digest-wins-grid>div:nth-child(2)::before{top:0}#content-container .digest-wins-grid code{font-size:0.8125rem;padding:0.1em 0.3em}:root{--toc-wrapper-max: 92rem;--toc-wrapper-pad: 2rem;--toc-col: 19rem;--toc-side: 28rem;--toc-btn-size: 1.75rem}#toc-collapse-toggle{display:none;align-items:center;justify-content:center;position:fixed;top:10rem;right:calc(\n max((100% - var(--toc-wrapper-max)) / 2, 0px) + var(--toc-wrapper-pad) +\n var(--toc-col) - var(--toc-btn-size) - 0.35rem\n );transition:right 200ms ease-out;z-index:30;width:var(--toc-btn-size);height:var(--toc-btn-size);border-radius:9999px;border:1px solid hsl(var(--border-300) / 0.15);background:hsl(var(--bg-100));color:hsl(var(--text-400));cursor:pointer}#toc-collapse-toggle:hover{background:hsl(var(--bg-300));color:hsl(var(--text-100))}#toc-collapse-toggle svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}#toc-collapse-toggle .toc-glyph{display:none;stroke-width:2}@media print{#toc-collapse-toggle{display:none!important}}@media (prefers-reduced-motion: reduce){#toc-collapse-toggle{transition:none}}@media (min-width: 1280px){html:has(#table-of-contents-layout) #toc-collapse-toggle{display:flex}html.toc-collapsed #toc-collapse-toggle .toc-chevron{transform:rotate(180deg)}html.toc-collapsed #toc-collapse-toggle{right:0.5rem;width:auto;padding:0 0.5rem;gap:0.25rem}html.toc-collapsed #toc-collapse-toggle .toc-glyph{display:block}html.toc-collapsed #table-of-contents-layout{display:none!important}html.toc-collapsed #content-side-layout:has(#table-of-contents-layout){display:none!important}html.toc-collapsed #content-container:has(#table-of-contents-layout) #content-area{width:100%!important}html.toc-collapsed #content-container:has(#table-of-contents-layout) #content-area>*{max-width:calc(var(--toc-wrapper-max) - var(--toc-side))}}@media (max-width: 640px){.digest-feature{padding:1.25rem 1rem 1rem;margin:1.5rem 0}#content-container .digest-feature-title{font-size:1.375rem}.digest-wins{padding:1.25rem 1rem 1rem}.digest-wins-grid{grid-template-columns:1fr}#content-container .digest-wins-grid>div:nth-child(2){border-top:1px solid hsl(var(--border-300) / 0.06);padding-top:0.5rem}#content-container .digest-wins-grid>div:nth-child(2)::before{top:0.5rem}}img[data-component-part=\"card-image\"]{aspect-ratio:16 / 9;height:auto;object-fit:cover;object-position:top center}"},{"filePath":"button.css","content":".btn{position:relative;display:inline-flex;gap:0.5rem;align-items:center;justify-content:center;flex-shrink:0;min-width:5rem;height:2.25rem;padding:0.5rem 1rem;white-space:nowrap;font-family:Styrene;font-weight:600;border-radius:0.5rem;\u0026:active{transform:scale(0.985)}\u0026.size-xs{height:1.75rem;min-width:3.5rem;padding:0 0.5rem;border-radius:0.25rem;font-size:0.75rem;gap:0.25rem}\u0026.size-sm{height:2rem;min-width:4rem;padding:0 0.75rem;border-radius:0.375rem;font-size:0.75rem}\u0026.size-lg{height:2.75rem;min-width:6rem;padding:0 1.25rem;border-radius:0.6rem}\u0026:disabled{pointer-events:none;opacity:0.5;box-shadow:none}\u0026:focus-visible{outline:none;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow)}\u0026.primary{font-weight:600;color:hsl(var(--oncolor-100));background-color:hsl(var(--accent-main-100));background-image:linear-gradient(\n to right,\n hsl(var(--accent-main-100)) 0%,\n hsl(var(--accent-main-200) / 0.5) 50%,\n hsl(var(--accent-main-200)) 100%\n );background-size:200% 100%;background-position:0% 0%;border:0.5px solid hsl(var(--border-300) / 0.25);box-shadow:inset 0 0.5px 0px rgba(255, 255, 0, 0.15),\n 0 1px 1px rgba(0, 0, 0, 0.05);text-shadow:0 1px 2px rgb(0 0 0 / 10%);transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1);\u0026:hover{background-position:100% 0%;background-image:linear-gradient(\n to right,\n hsl(var(--accent-main-200)) 0%,\n hsl(var(--accent-main-200)) 100%\n )}\u0026:active{background-color:hsl(var(--accent-main-000));box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.2);transform:scale(0.985)}}\u0026.flat{font-weight:500;color:hsl(var(--oncolor-100));background-color:hsl(var(--accent-main-100));transition:background-color 150ms;\u0026:hover{background-color:hsl(var(--accent-main-200))}}\u0026.secondary{font-weight:600;color:hsl(var(--text-100) / 0.9);background-image:radial-gradient(\n ellipse at center,\n hsl(var(--bg-500) / 0.1) 50%,\n hsl(var(--bg-500) / 0.3) 100%\n );border:0.5px solid hsl(var(--border-400));transition:color 150ms, background-color 150ms;\u0026:hover{color:hsl(var(--text-000));background-color:hsl(var(--bg-500) / 0.6)}\u0026:active{background-color:hsl(var(--bg-500) / 0.5)}}\u0026.outline{font-weight:600;color:hsl(var(--text-200));background-color:transparent;border:1.5px solid currentColor;transition:color 150ms, background-color 150ms;\u0026:hover{color:hsl(var(--text-100));background-color:hsl(var(--bg-400));border-color:hsl(var(--bg-400))}}\u0026.ghost{color:hsl(var(--text-200));border-color:transparent;transition:color 150ms, background-color 150ms;\u0026:hover{color:hsl(var(--text-100));background-color:hsl(var(--bg-500) / 0.4)}\u0026:active{background-color:hsl(var(--bg-400))}}\u0026.underline{opacity:0.8;text-decoration-line:none;text-underline-offset:3px;transition:all 150ms;\u0026:hover{opacity:1;text-decoration-line:underline}\u0026:active{transform:scale(0.985)}}\u0026.danger{font-weight:600;color:hsl(var(--oncolor-100));background-color:hsl(var(--danger-100));transition:background-color 150ms;\u0026:hover{background-color:hsl(var(--danger-200))}}}"}],"page":{"pagePath":"vi/on-premises/installation/using-docker-compose/macos","slug":"/vi/on-premises/installation/using-docker-compose/macos","pageMetadata":{"title":"macOS","description":"Chạy một phiên bản Ayakaleaf Pro cục bộ trên macOS bằng Docker Desktop và Toolkit.","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/apple.svg","href":"/vi/on-premises/installation/using-docker-compose/macos/index"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Chạy một phiên bản Ayakaleaf Pro cục bộ trên macOS bằng Docker Desktop và Toolkit.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Card,Heading}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Trong phần này, chúng ta sẽ chạy Ayakaleaf Pro cục bộ trên máy Mac của bạn bằng Docker Desktop và `,_jsx(_components.a,{href:`https://github.com/ayaka-notes/toolkit`,children:`Ayakaleaf Toolkit`}),`. Hướng dẫn sử dụng `,_jsx(_components.code,{children:`http://localhost:8080`}),`, lưu dữ liệu trong thư mục home của bạn và biên dịch bằng TeX Live 2026 trong các container sandbox.`]}),`\n`,_jsx(_components.p,{children:`Docker Desktop chạy ứng dụng, MongoDB, Redis và trình biên dịch TeX Live trong một máy ảo Linux. Bạn không cần cài đặt MongoDB, Redis hay MacTeX trực tiếp trên macOS.`}),`\n`,_jsxs(_components.p,{children:[`Hãy dùng thiết lập này cho mục đích cá nhân và thử nghiệm cục bộ. Đối với một dịch vụ dùng chung luôn hoạt động, chúng tôi khuyến nghị `,_jsx(_components.a,{href:`/vi/on-premises/installation/using-docker-compose/linux`,children:`hướng dẫn cho Linux`}),`, với HTTPS, sao lưu và kiểm soát truy cập. Phiên bản sẽ không khả dụng khi máy Mac ngủ hoặc Docker Desktop bị dừng, xem `,_jsx(_components.a,{href:`/vi/on-premises/installation/using-docker-compose/macos/6.-post-installation-tasks#keep-the-instance-available`,children:`Giữ cho phiên bản luôn khả dụng`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`before-you-start`,children:`Trước khi bắt đầu`}),`\n`,_jsx(_components.p,{children:`Bạn cần:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Một phiên bản macOS được hỗ trợ bởi `,_jsx(_components.a,{href:`https://docs.docker.com/desktop/setup/install/mac-install/`,children:`Docker Desktop for Mac`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Git, `,_jsx(_components.a,{href:`https://brew.sh/`,children:`Homebrew`}),` và GNU sed. Toolkit sử dụng các tùy chọn GNU sed mà BSD sed tích hợp sẵn trong macOS không chấp nhận.`]}),`\n`,_jsx(_components.li,{children:`Đủ tài nguyên cho cả macOS và Docker. Đối với một phiên bản cục bộ nhỏ, hãy bắt đầu với 4 CPU và 8 GB bộ nhớ được cấp cho Docker Desktop. Đây là điểm khởi đầu được gợi ý, không phải mức tối thiểu đã được đo lường.`}),`\n`,_jsx(_components.li,{children:`Ít nhất 40 GB dung lượng trống cho một TeX Live image đầy đủ, cộng thêm dung lượng cho các dự án của bạn. Hãy kiểm tra cả dung lượng trống trên máy Mac và giới hạn sử dụng ổ đĩa của Docker Desktop. Hãy bắt đầu với một phiên bản TeX Live: mỗi phiên bản bổ sung cần thêm khoảng chừng ấy dung lượng nữa.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Các image ứng dụng và TeX Live được phát hành cho `,_jsx(_components.code,{children:`arm64`}),` và `,_jsx(_components.code,{children:`amd64`}),`. Trên Apple silicon, hãy để Docker chọn image ARM gốc và không ép buộc `,_jsx(_components.code,{children:`platform: linux/amd64`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`steps`,children:`Các bước`}),`\n`,_jsx(Card,{title:`0. Cài đặt Docker Desktop`,icon:`file-lines`,href:`/vi/on-premises/installation/using-docker-compose/macos/0.-setup-docker-desktop`,horizontal:true}),`\n`,_jsx(Card,{title:`1. Tải xuống Toolkit`,icon:`file-lines`,href:`/vi/on-premises/installation/using-docker-compose/macos/1.-download-the-toolkit`,horizontal:true}),`\n`,_jsx(Card,{title:`2. Làm quen với Toolkit`,icon:`file-lines`,href:`/vi/on-premises/installation/using-docker-compose/macos/2.-familiarize-yourself-with-the-toolkit`,horizontal:true}),`\n`,_jsx(Card,{title:`3. Khởi tạo cấu hình`,icon:`file-lines`,href:`/vi/on-premises/installation/using-docker-compose/macos/3.-initialize-the-configuration`,horizontal:true}),`\n`,_jsx(Card,{title:`4. Tải image Ayakaleaf Pro`,icon:`file-lines`,href:`/vi/on-premises/installation/using-docker-compose/macos/4.-get-ayakaleaf-pro-images`,horizontal:true}),`\n`,_jsx(Card,{title:`5. Cá nhân hóa phiên bản của bạn`,icon:`file-lines`,href:`/vi/on-premises/installation/using-docker-compose/macos/5.-personalizing-your-instance`,horizontal:true}),`\n`,_jsx(Card,{title:`6. Các tác vụ sau cài đặt`,icon:`file-lines`,href:`/vi/on-premises/installation/using-docker-compose/macos/6.-post-installation-tasks`,horizontal:true})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"macOS","description":"Chạy một phiên bản Ayakaleaf Pro cục bộ trên macOS bằng Docker Desktop và Toolkit.","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/apple.svg","href":"/vi/on-premises/installation/using-docker-compose/macos/index"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Trước khi bắt đầu","slug":"before-you-start","depth":2,"children":[]},{"title":"Các bước","slug":"steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"ayakaleaf-pro","siteName":"Ayakaleaf Pro","title":"macOS - Ayakaleaf Pro","contextualStarterQuestions":[],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"zh-CN":{"href":"/zh-CN/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"zh-TW":{"href":"/zh-TW/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"ja":{"href":"/ja/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"de":{"href":"/de/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"fr":{"href":"/fr/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"es":{"href":"/es/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"it":{"href":"/it/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"ko":{"href":"/ko/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"ru":{"href":"/ru/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"nl":{"href":"/nl/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"pt":{"href":"/pt/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"tr":{"href":"/tr/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"uk":{"href":"/uk/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"pl":{"href":"/pl/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"cs":{"href":"/cs/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"sv":{"href":"/sv/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"fi":{"href":"/fi/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"ar":{"href":"/ar/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"vi":{"href":"/vi/on-premises/installation/introduction","matchLevel":2},"no":{"href":"/no/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"da":{"href":"/da/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"id":{"href":"/id/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"zh-Hans":{"href":"/zh-Hans/on-premises/installation/using-docker-compose/macos/index","matchLevel":1},"zh-Hant":{"href":"/zh-Hant/on-premises/installation/using-docker-compose/macos/index","matchLevel":1}}},"lastModified":"2026-11-08T04:24:13.108Z","gitLastModified":"2026-11-08T04:23:51.000Z","originalFileLocation":"vi/on-premises/installation/using-docker-compose/macos/index.mdx","locale":"vi"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Chạy một phiên bản Ayakaleaf Pro cục bộ trên macOS bằng Docker Desktop và Toolkit.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ayakaleaf Pro\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ayakaleaf-pro/o_LAbiVNKQm96Y75/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ayakaleaf-pro/o_LAbiVNKQm96Y75/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ayakaleaf-pro/o_LAbiVNKQm96Y75/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ayakaleaf-pro/o_LAbiVNKQm96Y75/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ayakaleaf-pro/o_LAbiVNKQm96Y75/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ayakaleaf-pro/o_LAbiVNKQm96Y75/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ayakaleaf-pro/o_LAbiVNKQm96Y75/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ayakaleaf-pro/o_LAbiVNKQm96Y75/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ayakaleaf-pro/o_LAbiVNKQm96Y75/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"macOS - Ayakaleaf Pro\">\u003cmeta data-mint-head property=\"og:description\" content=\"Chạy một phiên bản Ayakaleaf Pro cục bộ trên macOS bằng Docker Desktop và Toolkit.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ayakaleaf Pro\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ayakaleaf-pro.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=macOS\u0026amp;description=Ch%E1%BA%A1y+m%E1%BB%99t+phi%C3%AAn+b%E1%BA%A3n+Ayakaleaf+Pro+c%E1%BB%A5c+b%E1%BB%99+tr%C3%AAn+macOS+b%E1%BA%B1ng+Docker+Desktop+v%C3%A0+Toolkit.\u0026amp;theme=a852d976fde0e13c2ab73efd\u0026amp;signature=d3a6530e8b6115464a4ac455db1195eafd19b08883db47fdf4e1afafaadf226e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"macOS - Ayakaleaf Pro\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Chạy một phiên bản Ayakaleaf Pro cục bộ trên macOS bằng Docker Desktop và Toolkit.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ayakaleaf-pro.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=macOS\u0026amp;description=Ch%E1%BA%A1y+m%E1%BB%99t+phi%C3%AAn+b%E1%BA%A3n+Ayakaleaf+Pro+c%E1%BB%A5c+b%E1%BB%99+tr%C3%AAn+macOS+b%E1%BA%B1ng+Docker+Desktop+v%C3%A0+Toolkit.\u0026amp;theme=a852d976fde0e13c2ab73efd\u0026amp;signature=d3a6530e8b6115464a4ac455db1195eafd19b08883db47fdf4e1afafaadf226e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ayakaleaf-pro/o_LAbiVNKQm96Y75/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ayakaleaf Pro\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0E0E0E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/vi/on-premises/installation/using-docker-compose/macos.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"vi\" href=\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://ayakaleaf-pro.mintlify.app/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-CN\" href=\"https://ayakaleaf-pro.mintlify.app/zh-CN/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-TW\" href=\"https://ayakaleaf-pro.mintlify.app/zh-TW/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://ayakaleaf-pro.mintlify.app/ja/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://ayakaleaf-pro.mintlify.app/de/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://ayakaleaf-pro.mintlify.app/fr/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://ayakaleaf-pro.mintlify.app/es/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://ayakaleaf-pro.mintlify.app/it/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://ayakaleaf-pro.mintlify.app/ko/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://ayakaleaf-pro.mintlify.app/ru/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"nl\" href=\"https://ayakaleaf-pro.mintlify.app/nl/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt\" href=\"https://ayakaleaf-pro.mintlify.app/pt/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"tr\" href=\"https://ayakaleaf-pro.mintlify.app/tr/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"uk\" href=\"https://ayakaleaf-pro.mintlify.app/uk/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pl\" href=\"https://ayakaleaf-pro.mintlify.app/pl/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"cs\" href=\"https://ayakaleaf-pro.mintlify.app/cs/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"sv\" href=\"https://ayakaleaf-pro.mintlify.app/sv/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fi\" href=\"https://ayakaleaf-pro.mintlify.app/fi/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://ayakaleaf-pro.mintlify.app/ar/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"no\" href=\"https://ayakaleaf-pro.mintlify.app/no/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"da\" href=\"https://ayakaleaf-pro.mintlify.app/da/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"id\" href=\"https://ayakaleaf-pro.mintlify.app/id/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hans\" href=\"https://ayakaleaf-pro.mintlify.app/zh-Hans/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hant\" href=\"https://ayakaleaf-pro.mintlify.app/zh-Hant/on-premises/installation/using-docker-compose/macos\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://ayakaleaf-pro.mintlify.app/on-premises/installation/using-docker-compose/macos\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://ayakaleaf-pro.mintlify.app/#organization\",\"name\":\"Ayakaleaf Pro\",\"url\":\"https://ayakaleaf-pro.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ayakaleaf-pro/JetHeEeglWIIXNds/logo/light.png?fit=max\u0026auto=format\u0026n=JetHeEeglWIIXNds\u0026q=85\u0026s=7f1abd8dcc74dd3b7cdafac9e6e82092\"}},{\"@type\":\"WebSite\",\"@id\":\"https://ayakaleaf-pro.mintlify.app#website\",\"name\":\"Ayakaleaf Pro\",\"url\":\"https://ayakaleaf-pro.mintlify.app\",\"publisher\":{\"@id\":\"https://ayakaleaf-pro.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos#webpage\",\"url\":\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos\",\"name\":\"macOS\",\"description\":\"Chạy một phiên bản Ayakaleaf Pro cục bộ trên macOS bằng Docker Desktop và Toolkit.\",\"dateModified\":\"2026-11-08T04:23:51.000Z\",\"isPartOf\":{\"@id\":\"https://ayakaleaf-pro.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Cài đặt\",\"item\":\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sử dụng Docker Compose\",\"item\":\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/index\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"macOS\",\"item\":\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos/index\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"macOS\",\"item\":\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos#article\",\"headline\":\"macOS\",\"name\":\"macOS\",\"description\":\"Chạy một phiên bản Ayakaleaf Pro cục bộ trên macOS bằng Docker Desktop và Toolkit.\",\"url\":\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos\",\"mainEntityOfPage\":{\"@id\":\"https://ayakaleaf-pro.mintlify.app/vi/on-premises/installation/using-docker-compose/macos#webpage\"},\"dateModified\":\"2026-11-08T04:23:51.000Z\",\"publisher\":{\"@id\":\"https://ayakaleaf-pro.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://ayakaleaf-pro.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ayakaleaf Pro\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ayakaleaf Pro","nav":{"global":null,"languages":[{"language":"en","default":true,"pages":[{"title":"en","href":"/on-premises/installation/using-docker-compose/macos"}]},{"language":"zh-CN","pages":[{"title":"zh-CN","href":"/zh-CN/on-premises/installation/using-docker-compose/macos"}]},{"language":"zh-TW","pages":[{"title":"zh-TW","href":"/zh-TW/on-premises/installation/using-docker-compose/macos"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/on-premises/installation/using-docker-compose/macos"}]},{"language":"de","pages":[{"title":"de","href":"/de/on-premises/installation/using-docker-compose/macos"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/on-premises/installation/using-docker-compose/macos"}]},{"language":"es","pages":[{"title":"es","href":"/es/on-premises/installation/using-docker-compose/macos"}]},{"language":"it","pages":[{"title":"it","href":"/it/on-premises/installation/using-docker-compose/macos"}]},{"language":"ko","pages":[{"title":"ko","href":"/ko/on-premises/installation/using-docker-compose/macos"}]},{"language":"ru","pages":[{"title":"ru","href":"/ru/on-premises/installation/using-docker-compose/macos"}]},{"language":"nl","pages":[{"title":"nl","href":"/nl/on-premises/installation/using-docker-compose/macos"}]},{"language":"pt","pages":[{"title":"pt","href":"/pt/on-premises/installation/using-docker-compose/macos"}]},{"language":"tr","pages":[{"title":"tr","href":"/tr/on-premises/installation/using-docker-compose/macos"}]},{"language":"uk","pages":[{"title":"uk","href":"/uk/on-premises/installation/using-docker-compose/macos"}]},{"language":"pl","pages":[{"title":"pl","href":"/pl/on-premises/installation/using-docker-compose/macos"}]},{"language":"cs","pages":[{"title":"cs","href":"/cs/on-premises/installation/using-docker-compose/macos"}]},{"language":"sv","pages":[{"title":"sv","href":"/sv/on-premises/installation/using-docker-compose/macos"}]},{"language":"fi","pages":[{"title":"fi","href":"/fi/on-premises/installation/using-docker-compose/macos"}]},{"language":"ar","pages":[{"title":"ar","href":"/ar/on-premises/installation/using-docker-compose/macos"}]},{"language":"vi","tabs":[{"tab":"Trang chủ","icon":"house-chimney","pages":[{"title":"Trang chủ","href":"/vi"}]},{"tab":"Tự triển khai (On-Premises)","icon":"server","groups":[{"group":"Tổng quan","pages":[{"group":"Chào mừng","icon":"hand-wave","root":{"title":"Chào mừng","icon":"hand-wave","href":"/vi/on-premises"},"pages":[{"title":"Tính năng và bản quyền","icon":"layer-plus","href":"/vi/on-premises/readme/features-and-copyright"},{"title":"Tin cậy và bảo mật","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/expeditedssl.svg","href":"/vi/on-premises/readme/trust-and-security"},{"title":"Overleaf Server Pro so với Ayakaleaf Pro","icon":"scale-balanced","href":"/vi/on-premises/readme/ayakaleaf-pro-vs-server-pro"},{"title":"Hỏi và đáp","icon":"comment-question","href":"/vi/on-premises/readme/question-and-answer"}]},{"group":"Ghi chú phát hành","icon":"code-branch","root":{"title":"Ghi chú phát hành","icon":"code-branch","href":"/vi/on-premises/release-notes/index"},"pages":[{"title":"Ghi chú phát hành 6.x.x","href":"/vi/on-premises/release-notes/release-notes-6.x.x"}]}]},{"group":"Cài đặt","pages":[{"title":"Giới thiệu","icon":"map-location","href":"/vi/on-premises/installation/introduction"},{"group":"Sử dụng Docker Compose","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/docker.svg","root":{"title":"Sử dụng Docker Compose","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/docker.svg","href":"/vi/on-premises/installation/using-docker-compose/index"},"pages":[{"group":"Linux","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/linux.svg","root":{"title":"Linux","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/linux.svg","href":"/vi/on-premises/installation/using-docker-compose/linux/index"},"pages":[{"title":"0. Cài đặt Docker","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/docker.svg","href":"/vi/on-premises/installation/using-docker-compose/linux/0.-setup-docker"},{"title":"1. Tải xuống Toolkit","icon":"arrow-down-to-bracket","href":"/vi/on-premises/installation/using-docker-compose/linux/1.-download-the-toolkit"},{"title":"2. Làm quen với Toolkit","icon":"magnifying-glass","href":"/vi/on-premises/installation/using-docker-compose/linux/2.-familiarize-yourself-with-the-toolkit"},{"title":"3. Khởi tạo cấu hình","icon":"circle-play","href":"/vi/on-premises/installation/using-docker-compose/linux/3.-initialize-the-configuration"},{"title":"4. Tải image Ayakaleaf Pro","icon":"split","href":"/vi/on-premises/installation/using-docker-compose/linux/4.-get-overleaf-pro-images"},{"title":"5. Cá nhân hóa phiên bản của bạn","icon":"square-sliders","href":"/vi/on-premises/installation/using-docker-compose/linux/5.-personalizing-your-instance"},{"title":"6. Các tác vụ sau cài đặt","icon":"ballot-check","description":null,"href":"/vi/on-premises/installation/using-docker-compose/linux/6.-post-installation-tasks"}]},{"group":"macOS","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/apple.svg","root":{"title":"macOS","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/apple.svg","href":"/vi/on-premises/installation/using-docker-compose/macos/index"},"pages":[{"title":"0. Cài đặt Docker Desktop","description":"Cài đặt Docker Desktop trên máy Mac của bạn và kiểm tra engine, tài nguyên, chia sẻ tệp và Docker socket.","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/docker.svg","href":"/vi/on-premises/installation/using-docker-compose/macos/0.-setup-docker-desktop"},{"title":"1. Tải xuống Toolkit","description":"Cài đặt GNU sed và clone Ayakaleaf Toolkit trên máy Mac của bạn.","icon":"arrow-down-to-bracket","href":"/vi/on-premises/installation/using-docker-compose/macos/1.-download-the-toolkit"},{"title":"2. Làm quen với Toolkit","description":"Những điểm khác biệt trên macOS khi bạn chạy các script của Toolkit.","icon":"magnifying-glass","href":"/vi/on-premises/installation/using-docker-compose/macos/2.-familiarize-yourself-with-the-toolkit"},{"title":"3. Khởi tạo cấu hình","description":"Tạo các tệp cấu hình của Toolkit trên máy Mac của bạn bằng bin/init.","icon":"circle-play","href":"/vi/on-premises/installation/using-docker-compose/macos/3.-initialize-the-configuration"},{"title":"4. Tải image Ayakaleaf Pro","description":"Chuyển Toolkit trên máy Mac của bạn sang image Ayakaleaf Pro công khai.","icon":"split","href":"/vi/on-premises/installation/using-docker-compose/macos/4.-get-ayakaleaf-pro-images"},{"title":"5. Cá nhân hóa phiên bản của bạn","description":"Đặt cổng, URL trang web và TeX Live image cho một phiên bản cục bộ trên máy Mac của bạn, kiểm tra kernel của máy ảo Docker và khởi động Ayakaleaf Pro.","icon":"square-sliders","href":"/vi/on-premises/installation/using-docker-compose/macos/5.-personalizing-your-instance"},{"title":"6. Các tác vụ sau cài đặt","description":"Tạo quản trị viên, xác minh việc biên dịch và tính bền vững của dữ liệu, và giữ một phiên bản Ayakaleaf Pro cục bộ luôn chạy trên máy Mac của bạn.","icon":"ballot-check","href":"/vi/on-premises/installation/using-docker-compose/macos/6.-post-installation-tasks"},{"title":"Khắc phục sự cố","description":"Các vấn đề gặp phải khi chạy Ayakaleaf Pro bằng Docker Desktop trên macOS, và cách kiểm tra chúng.","icon":"screwdriver-wrench","href":"/vi/on-premises/installation/using-docker-compose/macos/troubleshooting"}]},{"group":"Windows","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/windows.svg","root":{"title":"Windows","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/windows.svg","href":"/vi/on-premises/installation/using-docker-compose/windows/index"},"pages":[{"title":"0. Cài đặt WSL 2 và Docker Desktop","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/docker.svg","href":"/vi/on-premises/installation/using-docker-compose/windows/0.-setup-wsl-and-docker-desktop"},{"title":"1. Tải xuống Toolkit","icon":"arrow-down-to-bracket","href":"/vi/on-premises/installation/using-docker-compose/windows/1.-download-the-toolkit"},{"title":"2. Làm quen với Toolkit","icon":"magnifying-glass","href":"/vi/on-premises/installation/using-docker-compose/windows/2.-familiarize-yourself-with-the-toolkit"},{"title":"3. Khởi tạo cấu hình","icon":"circle-play","href":"/vi/on-premises/installation/using-docker-compose/windows/3.-initialize-the-configuration"},{"title":"4. Tải image Ayakaleaf Pro","icon":"split","href":"/vi/on-premises/installation/using-docker-compose/windows/4.-get-ayakaleaf-pro-images"},{"title":"5. Cá nhân hóa phiên bản của bạn","icon":"square-sliders","href":"/vi/on-premises/installation/using-docker-compose/windows/5.-personalizing-your-instance"},{"title":"6. Các tác vụ sau cài đặt","icon":"ballot-check","href":"/vi/on-premises/installation/using-docker-compose/windows/6.-post-installation-tasks"},{"title":"Khắc phục sự cố","icon":"wrench","href":"/vi/on-premises/installation/using-docker-compose/windows/troubleshooting"}]}]},{"group":"Sử dụng Kubernetes","icon":"dharmachakra","root":{"title":"Sử dụng Kubernetes","icon":"dharmachakra","href":"/vi/on-premises/installation/using-kubernetes/index"},"pages":[{"title":"0. Chuẩn bị các node","icon":"server","href":"/vi/on-premises/installation/using-kubernetes/0.-prepare-the-nodes"},{"title":"1. Tải image Ayakaleaf Pro","icon":"split","href":"/vi/on-premises/installation/using-kubernetes/1.-get-ayakaleaf-pro-images"},{"title":"2. Tạo namespace và secret","icon":"key","href":"/vi/on-premises/installation/using-kubernetes/2.-create-the-namespace-and-secrets"},{"title":"3. Triển khai MongoDB và Redis","icon":"database","href":"/vi/on-premises/installation/using-kubernetes/3.-deploy-mongodb-and-redis"},{"title":"4. Cá nhân hóa phiên bản của bạn","icon":"square-sliders","href":"/vi/on-premises/installation/using-kubernetes/4.-personalizing-your-instance"},{"title":"5. Triển khai Ayakaleaf Pro","icon":"rocket-launch","href":"/vi/on-premises/installation/using-kubernetes/5.-deploy-ayakaleaf-pro"},{"title":"6. Các tác vụ sau cài đặt","icon":"ballot-check","href":"/vi/on-premises/installation/using-kubernetes/6.-post-installation-tasks"}]},{"title":"Sử dụng Claude hoặc Codex","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/claude.svg","href":"/vi/on-premises/installation/using-claude-or-codex"},{"title":"Sử dụng GitHub Codespace","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/github.svg","href":"/vi/on-premises/installation/using-the-github-codespace"},{"title":"Triển khai air-gapped/ngoại tuyến","icon":"block-brick","href":"/vi/on-premises/installation/air-gapped-offline-deployments"},{"title":"Di chuyển từ bản cài đặt hiện có","icon":"u-turn-up-right","href":"/vi/on-premises/installation/migrate-from-existing"}]},{"group":"Cấu hình","pages":[{"group":"Docker Compose","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/docker.svg","root":{"title":"Docker Compose","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/docker.svg","href":"/vi/on-premises/configuration/overleaf-toolkit/index"},"pages":[{"title":"Tệp và vị trí","icon":"folder-open","href":"/vi/on-premises/configuration/overleaf-toolkit/files-and-locations"},{"title":"Cài đặt Toolkit","icon":"gear-complex","href":"/vi/on-premises/configuration/overleaf-toolkit/toolkit-settings"},{"title":"Biến môi trường","icon":"seedling","href":"/vi/on-premises/configuration/overleaf-toolkit/environment-variables"},{"group":"Xác thực","icon":"address-card","root":{"title":"Xác thực","icon":"address-card","href":"/vi/on-premises/configuration/overleaf-toolkit/authentication/index"},"pages":[{"title":"Xác thực OIDC","icon":"id-card-clip","href":"/vi/on-premises/configuration/overleaf-toolkit/authentication/oidc-authentication"},{"title":"Xác thực SAML","icon":"key","href":"/vi/on-premises/configuration/overleaf-toolkit/authentication/saml-authentication"},{"title":"Xác thực LDAP","icon":"lock","href":"/vi/on-premises/configuration/overleaf-toolkit/authentication/ldap-authentication"},{"title":"Truy cập công khai","icon":"lock-open","href":"/vi/on-premises/configuration/overleaf-toolkit/authentication/public-access"},{"title":"reCAPTCHA","icon":"robot","href":"/vi/on-premises/configuration/overleaf-toolkit/authentication/recaptcha"},{"title":"Hạn chế mật khẩu","icon":"key","href":"/vi/on-premises/configuration/overleaf-toolkit/authentication/password-restrictions"}]},{"title":"Biên dịch trong sandbox","icon":"gear-code","href":"/vi/on-premises/configuration/overleaf-toolkit/sandboxed-compiles"},{"title":"Nhập và xuất bằng Pandoc","icon":"file-lines","href":"/vi/on-premises/configuration/overleaf-toolkit/pandoc-import-and-export"},{"group":"Tích hợp","icon":"puzzle-piece","root":{"title":"Tích hợp","icon":"puzzle-piece","href":"/vi/on-premises/configuration/overleaf-toolkit/integrations/index"},"pages":[{"title":"Tích hợp Git","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/git-alt.svg","href":"/vi/on-premises/configuration/overleaf-toolkit/integrations/git-integration"},{"title":"Đồng bộ hóa GitHub","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/github.svg","href":"/vi/on-premises/configuration/overleaf-toolkit/integrations/github-synchronisation"},{"title":"Đồng bộ hóa GitLab","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/gitlab.svg","href":"/vi/on-premises/configuration/overleaf-toolkit/integrations/gitlab-synchronisation"},{"title":"Đồng bộ hóa Gitea","icon":"mug-hot","href":"/vi/on-premises/configuration/overleaf-toolkit/integrations/gitea-synchronisation"},{"title":"Đồng bộ hóa Dropbox","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/dropbox.svg","href":"/vi/on-premises/configuration/overleaf-toolkit/integrations/dropbox-synchronisation"},{"title":"Tích hợp Zotero","icon":"z","href":"/vi/on-premises/configuration/overleaf-toolkit/integrations/zotero-integration"},{"title":"Tích hợp Mendeley","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/mendeley.svg","href":"/vi/on-premises/configuration/overleaf-toolkit/integrations/mendeley-integration"},{"title":"MCP Server","icon":"plug","href":"/vi/on-premises/configuration/overleaf-toolkit/integrations/mcp-server"},{"title":"Tích hợp AI","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/openai.svg","href":"/vi/on-premises/configuration/overleaf-toolkit/integrations/ai-integration"},{"title":"Overleaf Import API","icon":"rectangle-api","href":"/vi/on-premises/configuration/overleaf-toolkit/integrations/overleaf-import-api"}]},{"title":"Mẫu","icon":"paste","href":"/vi/on-premises/configuration/overleaf-toolkit/templates"},{"title":"URL bên ngoài","icon":"link","href":"/vi/on-premises/configuration/overleaf-toolkit/external-url"},{"title":"Ghi log","icon":"memo-circle-info","href":"/vi/on-premises/configuration/overleaf-toolkit/logging"},{"title":"Proxy TLS","icon":"lock","href":"/vi/on-premises/configuration/overleaf-toolkit/tls-proxy"},{"title":"Thương hiệu","icon":"copyright","href":"/vi/on-premises/configuration/overleaf-toolkit/branding"},{"title":"Bản địa hóa","icon":"globe-pointer","href":"/vi/on-premises/configuration/overleaf-toolkit/localization"},{"title":"Gửi email","icon":"paper-plane-top","href":"/vi/on-premises/configuration/overleaf-toolkit/email-delivery"},{"title":"Redis","icon":"memory","href":"/vi/on-premises/configuration/overleaf-toolkit/redis"},{"title":"S3","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/aws.svg","href":"/vi/on-premises/configuration/overleaf-toolkit/s3"},{"title":"Thêm trợ giúp LaTeX cho người dùng","icon":"graduation-cap","href":"/vi/on-premises/configuration/overleaf-toolkit/adding-latex-user-help"}]},{"group":"Kubernetes","icon":"dharmachakra","root":{"title":"Kubernetes","icon":"dharmachakra","href":"/vi/on-premises/configuration/kubernetes/index"},"pages":[{"group":"Xác thực","icon":"address-card","root":{"title":"Xác thực","icon":"address-card","href":"/vi/on-premises/configuration/kubernetes/authentication/index"},"pages":[{"title":"Xác thực OIDC","icon":"id-card-clip","href":"/vi/on-premises/configuration/kubernetes/authentication/oidc-authentication"},{"title":"Xác thực SAML","icon":"building-columns","href":"/vi/on-premises/configuration/kubernetes/authentication/saml-authentication"},{"title":"Xác thực LDAP","icon":"address-book","href":"/vi/on-premises/configuration/kubernetes/authentication/ldap-authentication"},{"title":"Truy cập công khai","icon":"lock-open","href":"/vi/on-premises/configuration/kubernetes/authentication/public-access"},{"title":"reCAPTCHA","icon":"robot","href":"/vi/on-premises/configuration/kubernetes/authentication/recaptcha"},{"title":"Hạn chế mật khẩu","icon":"key","href":"/vi/on-premises/configuration/kubernetes/authentication/password-restrictions"}]},{"title":"Biên dịch trong sandbox","icon":"gear-code","href":"/vi/on-premises/configuration/kubernetes/sandboxed-compiles"},{"title":"Nhập và xuất bằng Pandoc","icon":"file-lines","href":"/vi/on-premises/configuration/kubernetes/pandoc-import-and-export"},{"group":"Tích hợp","icon":"puzzle-piece","root":{"title":"Tích hợp","icon":"puzzle-piece","href":"/vi/on-premises/configuration/kubernetes/integrations/index"},"pages":[{"title":"Tích hợp Git","icon":"code-branch","href":"/vi/on-premises/configuration/kubernetes/integrations/git-integration"},{"title":"Đồng bộ hóa GitHub","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/github.svg","href":"/vi/on-premises/configuration/kubernetes/integrations/github-synchronisation"},{"title":"Đồng bộ hóa GitLab","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/gitlab.svg","href":"/vi/on-premises/configuration/kubernetes/integrations/gitlab-synchronisation"},{"title":"Đồng bộ hóa Gitea","icon":"mug-hot","href":"/vi/on-premises/configuration/kubernetes/integrations/gitea-synchronisation"},{"title":"Đồng bộ hóa Dropbox","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/dropbox.svg","href":"/vi/on-premises/configuration/kubernetes/integrations/dropbox-synchronisation"},{"title":"Tích hợp Zotero","icon":"z","href":"/vi/on-premises/configuration/kubernetes/integrations/zotero-integration"},{"title":"Tích hợp Mendeley","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/mendeley.svg","href":"/vi/on-premises/configuration/kubernetes/integrations/mendeley-integration"},{"title":"MCP Server","icon":"plug","href":"/vi/on-premises/configuration/kubernetes/integrations/mcp-server"},{"title":"Tích hợp AI","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/openai.svg","href":"/vi/on-premises/configuration/kubernetes/integrations/ai-integration"},{"title":"Overleaf Import API","icon":"rectangle-api","href":"/vi/on-premises/configuration/kubernetes/integrations/overleaf-import-api"}]},{"title":"Mẫu","icon":"paste","href":"/vi/on-premises/configuration/kubernetes/templates"},{"title":"URL bên ngoài","icon":"link","href":"/vi/on-premises/configuration/kubernetes/external-url"},{"title":"Ghi log","icon":"memo-circle-info","href":"/vi/on-premises/configuration/kubernetes/logging"},{"title":"Proxy TLS","icon":"lock","href":"/vi/on-premises/configuration/kubernetes/tls-proxy"},{"title":"Thương hiệu","icon":"copyright","href":"/vi/on-premises/configuration/kubernetes/branding"},{"title":"Bản địa hóa","icon":"globe-pointer","href":"/vi/on-premises/configuration/kubernetes/localization"},{"title":"Gửi email","icon":"paper-plane-top","href":"/vi/on-premises/configuration/kubernetes/email-delivery"},{"title":"Redis","icon":"memory","href":"/vi/on-premises/configuration/kubernetes/redis"},{"title":"S3","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/aws.svg","href":"/vi/on-premises/configuration/kubernetes/s3"},{"title":"Thêm trợ giúp LaTeX cho người dùng","icon":"graduation-cap","href":"/vi/on-premises/configuration/kubernetes/adding-latex-user-help"},{"title":"Mở rộng theo chiều ngang","icon":"layer-group","href":"/vi/on-premises/configuration/kubernetes/horizontal-scaling"}]}]},{"group":"Bảo trì","pages":[{"title":"Di chuyển từ docker-compose.yml sang Toolkit","icon":"right-left","href":"/vi/on-premises/maintenance/docker-compose.yml-to-toolkit-migration"},{"title":"Nâng cấp triển khai của bạn","icon":"arrow-up-from-square","href":"/vi/on-premises/maintenance/upgrading-your-deployment"},{"title":"Nâng cấp trên Kubernetes","icon":"arrow-up-from-square","href":"/vi/on-premises/maintenance/upgrading-on-kubernetes"},{"group":"Dữ liệu và sao lưu","icon":"database","root":{"title":"Dữ liệu và sao lưu","icon":"database","href":"/vi/on-premises/maintenance/data-and-backups/index"},"pages":[{"title":"Xuất dự án","icon":"file-export","href":"/vi/on-premises/maintenance/data-and-backups/exporting-projects"}]},{"title":"Mở rộng TeX Live","icon":"rectangle-pro","href":"/vi/on-premises/maintenance/extending-tex-live"},{"title":"Tự động cập nhật TeX Live Full Image","icon":"arrows-rotate","href":"/vi/on-premises/maintenance/updating-tex-live-full-images-automatically"},{"title":"Mở rộng theo chiều ngang","icon":"distribute-spacing-horizontal","href":"/vi/on-premises/maintenance/horizontal-scaling"},{"title":"Di chuyển sang S3","icon":"https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/aws.svg","href":"/vi/on-premises/maintenance/s3-migration"},{"title":"Cập nhật MongoDB","icon":"database","href":"/vi/on-premises/maintenance/updating-mongodb"}]},{"group":"Quản lý người dùng và dự án","pages":[{"title":"Vai trò và quyền hạn","icon":"list-check","href":"/vi/on-premises/user-and-project-management/roles-and-permissions"},{"group":"Quản lý người dùng","icon":"users-between-lines","root":{"title":"Quản lý người dùng","icon":"users-between-lines","href":"/vi/on-premises/user-and-project-management/user-management/index"},"pages":[{"title":"Di chuyển tên người dùng","icon":"lock","href":"/vi/on-premises/user-and-project-management/user-management/username-migration"},{"title":"Chuyển sang LDAP hoặc SAML","icon":"rectangle-pro","href":"/vi/on-premises/user-and-project-management/user-management/migrating-to-ldap-or-saml"}]},{"group":"Quản lý dự án","icon":"rectangle-history","root":{"title":"Quản lý dự án","icon":"rectangle-history","href":"/vi/on-premises/user-and-project-management/project-management/index"},"pages":[{"title":"Chuyển quyền sở hữu dự án hàng loạt","icon":"lock","href":"/vi/on-premises/user-and-project-management/project-management/bulk-transfer-of-project-ownership"}]}]},{"group":"Hỗ trợ","pages":[{"title":"Giới hạn dự án","icon":"list-check","href":"/vi/on-premises/support/project-limits"},{"title":"Khắc phục sự cố","icon":"comments-question-check","href":"/vi/on-premises/support/troubleshooting"},{"title":"Nhận trợ giúp","icon":"truck-medical","href":"/vi/on-premises/support/getting-help"},{"group":"Hướng dẫn hỗ trợ","icon":"message-question","root":{"title":"Hướng dẫn hỗ trợ","icon":"message-question","href":"/vi/on-premises/support/support-guides/index"},"pages":[{"title":"Sử dụng mẫu với tư cách cá nhân","icon":"rectangle-vertical-history","href":"/vi/on-premises/support/support-guides/using-templates-as-an-individual"}]}]}]},{"tab":"Blog","icon":"rss","pages":[{"title":"Blog","href":"/vi/blog"}]},{"tab":"TeXLive","icon":"compact-disc","pages":[{"title":"TeXLive","href":"/vi/texlive"}]},{"tab":"Nhà phát triển","icon":"rectangle-terminal","pages":[{"title":"Nhà phát triển","href":"/vi/dev"}]}]},{"language":"no","pages":[{"title":"no","href":"/no/on-premises/installation/using-docker-compose/macos"}]},{"language":"da","pages":[{"title":"da","href":"/da/on-premises/installation/using-docker-compose/macos"}]},{"language":"id","pages":[{"title":"id","href":"/id/on-premises/installation/using-docker-compose/macos"}]},{"language":"zh-Hans","pages":[{"title":"zh-Hans","href":"/zh-Hans/on-premises/installation/using-docker-compose/macos"}]},{"language":"zh-Hant","pages":[{"title":"zh-Hant","href":"/zh-Hant/on-premises/installation/using-docker-compose/macos"}]}]},"basePath":"","title":"macOS - Ayakaleaf Pro","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":[],"chunks":[]}