{
  "base_url": "https://mixnz.github.io/mixlab/",
  "locales": [
    "en",
    "vi"
  ],
  "pages": [
    {
      "html": "https://mixnz.github.io/mixlab/en/index/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/index.md",
      "order": 1,
      "sha256": "ecde9ceea649df86b90b485ecf083feb198fdd13cd022315d9d45607a772cb3d",
      "slug": "index",
      "summary": "Run PHP, Node, Python, Ruby, Go and Java locally on any version, with real domains and HTTPS, without Docker.",
      "title": "MixLab",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/install/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/install.md",
      "order": 2,
      "sha256": "5f280796e8e53dabd6a447288c257b8cb96d92f6e53f07a7eb4b380000929f17",
      "slug": "install",
      "summary": "The installer for your system, what it touches, what it deliberately does not, and how to check what you downloaded.",
      "title": "Installing MixLab",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/getting-started/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/getting-started.md",
      "order": 3,
      "sha256": "148380e56cd9ed182eb7fbfa6e2f2e4ac54e363658ad279bce3aa31279915ceb",
      "slug": "getting-started",
      "summary": "From a fresh install to https://blog.test with a green padlock, in about five minutes.",
      "title": "Your first site",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/projects-and-sites/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/projects-and-sites.md",
      "order": 4,
      "sha256": "0f44171f590d77a8cb3c343673f340089ffc430a75f66fc7f0715b73e0f9db1c",
      "slug": "projects-and-sites",
      "summary": "The two nouns MixLab is built on, what each one owns, and how a checkout carries its own setup.",
      "title": "Projects and sites",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/runtimes/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/runtimes.md",
      "order": 5,
      "sha256": "2f178188de778f5cda444f0165793bfa4596f3dc05288b4f08d86afd48f8d74d",
      "slug": "runtimes",
      "summary": "Install as many versions as you need, and let each directory choose its own, with no shell hook and nothing to remember.",
      "title": "PHP, Node, Python, Ruby, Go and Java versions",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/services/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/services.md",
      "order": 6,
      "sha256": "c593905b2973df8493be97de9887b5bd07fb231435a0b3b8765c6721bcee7a25",
      "slug": "services",
      "summary": "Caddy or Nginx, MariaDB, MySQL, PostgreSQL, Redis and Memcached, installed on request, configured for you, and never printing a password.",
      "title": "Servers, databases and caches",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/domains-and-https/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/domains-and-https.md",
      "order": 7,
      "sha256": "a6b49830f6f2dfad251d86fe636b7dfe33fd79dfa42de6d2dc3705d79bea8ac5",
      "slug": "domains-and-https",
      "summary": "How blog.test reaches your machine, which certificate signed it, and how to find out when the padlock is not green.",
      "title": "Names and the padlock",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/sharing/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/sharing.md",
      "order": 8,
      "sha256": "b1408dbb04f9463fb4a7fbb5f1ea870538882fe3171a07166e2a8b3dafa1c2a6",
      "slug": "sharing",
      "summary": "Put one site on the local network, scan a QR code, and take it back off again. One site, one port, one rule.",
      "title": "Showing a site to your phone",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/blueprints/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/blueprints.md",
      "order": 9,
      "sha256": "5f5f1360eb4746975ca84d85884dfe890de010a7d99e4c8f1dd2a9565c24ed26",
      "slug": "blueprints",
      "summary": "Write down what a project is made of, and set the same thing up again somewhere else, or on somebody else's machine.",
      "title": "Blueprints",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/extensions/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/extensions.md",
      "order": 10,
      "sha256": "dbc8da97a5411b73dac121c57bb832e7eb87d946f6f5e96b03b10f3c4af70f48",
      "slug": "extensions",
      "summary": "The tools you reach for beside the stack, such as phpMyAdmin, Mailpit and MinIO, installed from a signed registry, with what each one may do shown before you agree.",
      "title": "Extensions",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/permissions/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/permissions.md",
      "order": 11,
      "sha256": "70689e3d687acbe7aeea42f215b3c6b1c5ec9b53da08859822f9e1b4de56e77b",
      "slug": "permissions",
      "summary": "Every administrator prompt MixLab can raise, what each one literally changes, and why nothing of MixLab's ever stays running as root.",
      "title": "What MixLab asks permission for",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/updating/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/updating.md",
      "order": 12,
      "sha256": "fcb2bc81dd2f0189739f6ad126be8ab36cb87e0845e208e5239a644d72941c27",
      "slug": "updating",
      "summary": "Updates are opt-in, checked against a signature, and rehearsed before anything is replaced. One binary is deliberately never replaced this way.",
      "title": "Keeping MixLab current",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/uninstalling/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/uninstalling.md",
      "order": 13,
      "sha256": "b3ce687f485b50635f532857dcbfff1714cec55140200acb990b348ec3ed4b5a",
      "slug": "uninstalling",
      "summary": "Undo everything MixLab wrote outside its own directory, see the list before you agree, and keep your databases if you want them.",
      "title": "Removing MixLab",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/troubleshooting/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/troubleshooting.md",
      "order": 14,
      "sha256": "82432f94e277f71d30abaab3cdc8e64683209037f5bc6e392b5fcb60b7a3b374",
      "slug": "troubleshooting",
      "summary": "mix doctor first, then the four commands that answer the questions people actually have, and one file that holds everything a bug report needs.",
      "title": "When something is wrong",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/cli/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/cli.md",
      "order": 15,
      "sha256": "2d39c57e30b5fa4ffc50768dfe50ad63fcba1888bbe11d57bfde822775455a88",
      "slug": "cli",
      "summary": "Every mix command and every flag, generated from the binary's own definitions.",
      "title": "Command reference",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/for-agents/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/for-agents.md",
      "order": 16,
      "sha256": "10d9800039fe20f80d7e33e127533487868ba6472310b923e9e9c68e102b06a7",
      "slug": "for-agents",
      "summary": "Every page of this handbook is plain Markdown at a guessable address, with a manifest, a single-file bundle, and the same bytes inside the mix binary.",
      "title": "Reading this as a program",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/privacy/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/privacy.md",
      "order": 17,
      "sha256": "29588b3d68aca26935d0d4a38221bf2ddfbadd84a783c0a0f41be5a77fa9a43c",
      "slug": "privacy",
      "summary": "What MixLab keeps on your machine, the few times it reaches the network by itself, and what the sync server holds when you sign in, none of which it can read.",
      "title": "Privacy",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/en/self-hosting/",
      "locale": "en",
      "markdown": "https://mixnz.github.io/mixlab/en/self-hosting.md",
      "order": 18,
      "sha256": "4de9e13ac0240995a9df115adadda9580dd6f80433e2796a482406652c3b09af",
      "slug": "self-hosting",
      "summary": "Sync with a server you run yourself, on Cloudflare Workers or in a Docker container, and point MixLab at it.",
      "title": "Running your own sync server",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/index/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/index.md",
      "order": 1,
      "sha256": "b6e092f2f2f3815c8c47b48e1828f7e5868afee0a60edbba227bc94bf18a4d3c",
      "slug": "index",
      "summary": "Chạy PHP, Node, Python, Ruby, Go và Java ngay trên máy với đúng phiên bản bạn cần, có tên miền thật và HTTPS, không cần Docker.",
      "title": "MixLab",
      "translation_of": "en/index.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/install/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/install.md",
      "order": 2,
      "sha256": "858acc89ce35cf766a20c0365c8e00b4edb7807b121908578d4c017acaa1424b",
      "slug": "install",
      "summary": "Bộ cài cho hệ điều hành của bạn, nó đụng vào những gì, cố ý không đụng vào những gì, và cách kiểm tra file vừa tải.",
      "title": "Cài đặt MixLab",
      "translation_of": "en/install.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/getting-started/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/getting-started.md",
      "order": 3,
      "sha256": "d5882e5ea7ec8364227e203ce49540307fb24b77d5436206115d3e31ab2d609f",
      "slug": "getting-started",
      "summary": "Từ máy vừa cài xong tới https://blog.test với ổ khoá xanh, mất khoảng năm phút.",
      "title": "Site đầu tiên của bạn",
      "translation_of": "en/getting-started.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/projects-and-sites/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/projects-and-sites.md",
      "order": 4,
      "sha256": "0b00442cc17c1d789f3373cb5478f041a8ac69a363fcfba034ee5b3c99533dd5",
      "slug": "projects-and-sites",
      "summary": "Hai khái niệm cốt lõi của MixLab, mỗi cái quản những gì, và cách một bản checkout mang theo cấu hình của chính nó.",
      "title": "Dự án và site",
      "translation_of": "en/projects-and-sites.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/runtimes/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/runtimes.md",
      "order": 5,
      "sha256": "6bca3ec8fd06f17c4d87df671e434a8f870f389a73f43cc64b33667c36ecfeb1",
      "slug": "runtimes",
      "summary": "Cài bao nhiêu phiên bản tuỳ bạn, và để mỗi thư mục tự chọn phiên bản của nó. Không hook shell, không phải nhớ gì cả.",
      "title": "Phiên bản PHP, Node, Python, Ruby, Go và Java",
      "translation_of": "en/runtimes.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/services/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/services.md",
      "order": 6,
      "sha256": "6c6bfe204629d57d0240a6000ce4e911a389e2f6f370423952df9dfdf3e7d214",
      "slug": "services",
      "summary": "Caddy hoặc Nginx, MariaDB, MySQL, PostgreSQL, Redis và Memcached. Cài khi bạn yêu cầu, cấu hình sẵn cho bạn, và không bao giờ in mật khẩu ra màn hình.",
      "title": "Máy chủ, cơ sở dữ liệu và bộ nhớ đệm",
      "translation_of": "en/services.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/domains-and-https/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/domains-and-https.md",
      "order": 7,
      "sha256": "dd91bd49618aa22a48df3cb1ee537f141c1f47327103cbb2b92dad9968edc31b",
      "slug": "domains-and-https",
      "summary": "Vì sao blog.test trỏ về máy bạn, ai ký chứng chỉ cho nó, và cách tìm ra vấn đề khi ổ khoá không xanh.",
      "title": "Tên miền và ổ khoá",
      "translation_of": "en/domains-and-https.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/sharing/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/sharing.md",
      "order": 8,
      "sha256": "98f9ee08757cce50ba86a174345fbe1beb8193d84d43645591fab04ae6fe997c",
      "slug": "sharing",
      "summary": "Đưa đúng một site ra mạng nội bộ, quét mã QR, rồi rút nó về. Một site, một cổng, một luật.",
      "title": "Cho điện thoại xem site của bạn",
      "translation_of": "en/sharing.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/blueprints/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/blueprints.md",
      "order": 9,
      "sha256": "3c73087bb57c92363098512d946cf84b4a705f814291aa9e6777f363e02ed2b1",
      "slug": "blueprints",
      "summary": "Ghi lại một dự án gồm những gì, rồi dựng lại y hệt ở nơi khác, hoặc trên máy của người khác.",
      "title": "Blueprint",
      "translation_of": "en/blueprints.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/extensions/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/extensions.md",
      "order": 10,
      "sha256": "94e136b3421faa33156a5b7042d14f487046e2288e0976289d8657d8e459f17a",
      "slug": "extensions",
      "summary": "Những công cụ đi kèm stack như phpMyAdmin, Mailpit, MinIO. Cài từ một registry có chữ ký, và cho bạn xem mỗi cái được phép làm gì trước khi đồng ý.",
      "title": "Extension",
      "translation_of": "en/extensions.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/permissions/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/permissions.md",
      "order": 11,
      "sha256": "7fca7875b0094ba14f0d356ef78dd08375e62569cf5f985868e24deac9da2fe7",
      "slug": "permissions",
      "summary": "Mọi hộp thoại quyền quản trị mà MixLab có thể hiện lên, mỗi cái thay đổi chính xác điều gì, và vì sao không có gì của MixLab chạy thường trực với quyền root.",
      "title": "MixLab xin quyền để làm gì",
      "translation_of": "en/permissions.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/updating/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/updating.md",
      "order": 12,
      "sha256": "c3cb62035f34e38f125d48a9f34ee905ccb3cdc673eb2ef09bf6782404612df2",
      "slug": "updating",
      "summary": "Cập nhật do bạn quyết, có kiểm tra chữ ký, và có chạy thử trước khi thay bất cứ thứ gì. Riêng một chương trình cố ý không bao giờ được thay theo đường này.",
      "title": "Cập nhật MixLab",
      "translation_of": "en/updating.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/uninstalling/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/uninstalling.md",
      "order": 13,
      "sha256": "54bbf27320ea78aa9905c75766fd5e51d634cc98f579c5b53a702068c2d14438",
      "slug": "uninstalling",
      "summary": "Hoàn tác mọi thứ MixLab đã ghi bên ngoài thư mục của nó, xem danh sách trước khi đồng ý, và giữ lại cơ sở dữ liệu nếu bạn muốn.",
      "title": "Gỡ MixLab",
      "translation_of": "en/uninstalling.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/troubleshooting/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/troubleshooting.md",
      "order": 14,
      "sha256": "f962e2114ce2a8d82c1dc833d89d784e90f418a2ba5ed293d131d912a1202c2e",
      "slug": "troubleshooting",
      "summary": "Chạy mix doctor trước, rồi bốn lệnh trả lời đúng những câu hỏi người dùng hay gặp, và một file gom đủ mọi thứ một báo cáo lỗi cần.",
      "title": "Khi có gì đó không ổn",
      "translation_of": "en/troubleshooting.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/cli/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/cli.md",
      "order": 15,
      "sha256": "da07b059fb2c48e2a0e7eedc47418936fb07a45639c37ba084d055eeefc99409",
      "slug": "cli",
      "summary": "Danh sách đầy đủ mọi lệnh mix, sinh tự động từ chính chương trình. Chỉ có bản tiếng Anh, và đây là lý do.",
      "title": "Tham chiếu lệnh",
      "translation_of": null
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/for-agents/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/for-agents.md",
      "order": 16,
      "sha256": "b21699b8430cfd39899b547ea075946d035ea1a7ad524d232b1f57c22e6a60f5",
      "slug": "for-agents",
      "summary": "Mọi trang của cẩm nang này đều là Markdown thuần tại một địa chỉ dễ đoán, kèm một manifest, một file gộp, và cùng nội dung đó nằm sẵn trong chương trình mix.",
      "title": "Đọc cẩm nang này bằng chương trình",
      "translation_of": "en/for-agents.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/privacy/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/privacy.md",
      "order": 17,
      "sha256": "f5b01db6504d0d84d5ec7eaf999002f87c8c2851a1e2e8355977751835954e46",
      "slug": "privacy",
      "summary": "MixLab giữ gì trên máy bạn, những lần hiếm hoi nó tự kết nối mạng, và máy chủ đồng bộ giữ gì khi bạn đăng nhập mà không đọc được gì.",
      "title": "Quyền riêng tư",
      "translation_of": "en/privacy.md"
    },
    {
      "html": "https://mixnz.github.io/mixlab/vi/self-hosting/",
      "locale": "vi",
      "markdown": "https://mixnz.github.io/mixlab/vi/self-hosting.md",
      "order": 18,
      "sha256": "aa6d29d4cb1c94ad94ff7f2390a9553aa315d43f872719ab75e61b037f46c8d8",
      "slug": "self-hosting",
      "summary": "Đồng bộ qua máy chủ của riêng bạn, chạy trên Cloudflare Workers hoặc trong container Docker, rồi trỏ MixLab vào đó.",
      "title": "Tự chạy máy chủ đồng bộ",
      "translation_of": "en/self-hosting.md"
    }
  ],
  "product": "MixLab",
  "version": "0.0.20"
}
