Tác giả:
    Ngày tạo:2026-06-30Cập nhật lần cuối:2026-09-27

    Tự lưu trữ Intlayer (Self-Hosting)

    Intlayer có thể chạy trên cơ sở hạ tầng của riêng bạn mà không cần tài khoản Intlayer Cloud. Ba cấu hình được cung cấp, tất cả đều có thể thiết lập bằng cùng một trình cài đặt (install.sh, install.ps1 trên Windows, hoặc npx intlayer init infra):

    SetupWhat it isPick it for
    Ứng dụng DesktopBảng điều khiển gốc cho macOS, Linux và WindowsMột ứng dụng máy khách cục bộ, không cần lưu trữ
    Docker All-in-OneBảng điều khiển, API, MongoDB, Redis và MinIO trong một container duy nhấtThử nghiệm và cài đặt trên máy đơn quy mô nhỏ
    Docker ComposeMột container cho mỗi dịch vụ, mọi kho lưu trữ dữ liệu đều có thể thay thế bằng dịch vụ được quản lýMôi trường sản xuất, mở rộng quy mô, cơ sở dữ liệu được quản lý

    Table of Contents

    Hình ảnh và Gói đã xuất bản

    ArtifactDocker HubGHCR mirrorContents
    All-in-one containerintlayer/cms-allghcr.io/aymericzip/intlayer/cms-allapp + backend + MongoDB 8 + Redis + MinIO + Chromium
    Dashboard (frontend)intlayer/cms-frontendghcr.io/aymericzip/intlayer/cms-frontendTanStack Start dashboard on Bun
    API (backend)intlayer/cms-backendghcr.io/aymericzip/intlayer/cms-backendFastify REST API on Bun + Chromium
    Desktop appGitHub releasesn/a.dmg (macOS), .deb / .rpm / .AppImage (Linux), .exe / .msi (Windows)

    Cả ba hình ảnh đều được xây dựng từ cùng một tệp docker/selfhost/Dockerfile và được xuất bản theo từng bản phát hành. Stack Compose cũng kéo các hình ảnh chính thức mongo:8, redis:8-alpine và quay.io/minio/minio.

    Thiết lập

    Trình cài đặt sẽ hỏi cấu hình bạn mong muốn, kiểm tra các điều kiện tiên quyết (đề xuất cài đặt Docker), ghi tệp môi trường với các secret đã được tạo sẵn và kéo các hình ảnh. Nó không tự khởi động bất cứ điều gì: các chế độ Docker yêu cầu cấu hình trình gửi thư trước, vì vậy nó kết thúc bằng việc in lệnh cần chạy. Việc chạy lại là an toàn: tệp môi trường hiện có sẽ không bao giờ bị ghi đè, điều này cũng làm cho nó trở thành phương thức nâng cấp.

    Bảng điều khiển Intlayer dưới dạng ứng dụng gốc được xây dựng bằng Tauri. Đăng nhập vào Intlayer Cloud (https://app.intlayer.org), vì vậy không cần lưu trữ máy chủ. Đây là lựa chọn phù hợp khi bạn muốn dùng ứng dụng cục bộ thay vì tab trình duyệt.

    Cài đặt

    Trình cài đặt sẽ tải xuống gói thích hợp cho hệ điều hành và CPU của bạn rồi mở nó (macOS), cài đặt nó (dpkg / rpm trên Linux), hoặc khởi chạy trình hướng dẫn cài đặt (Windows). Bạn cũng có thể tải xuống thủ công từ trang Bản phát hành.

    sh
    curl -fsSL https://intlayer.org/install.sh | sh -s -- --mode desktop
    

    In PowerShell:

    powershell
    $env:INTLAYER_MODE = "desktop"; irm https://intlayer.org/install.ps1 | iex
    
    bash
    npx intlayer init infra --mode desktop
    

    Yêu cầu

    • Node.js: Ứng dụng nhúng máy chủ bảng điều khiển và khởi động bằng tệp thực thi node của máy. Cài đặt từ nodejs.org nếu ứng dụng không mở.
    Bản dựng desktop đã xuất bản giao tiếp với backend Intlayer Cloud. Để trỏ nó đến backend tự lưu trữ, cần phải xây dựng lại ứng dụng với VITE_BACKEND_URL được đặt thành API của bạn, xem Giới hạn.

    Mọi thứ chạy bên trong một container intlayer/cms-all duy nhất, được giám sát bởi s6-overlay, với mọi kho dữ liệu được lưu trữ liên tục trên một volume duy nhất.

    plaintext
                    ┌─────────────────────────────┐
     browser ──────▶ │  app  (TanStack Start)  :3000│ ──┐
     (localhost)    └─────────────────────────────┘   │ VITE_BACKEND_URL (baked at build)
                    ┌─────────────────────────────┐   │
                    │  backend (Fastify/Bun)  :3100│ ◀─┘
                    └──────────────┬──────────────┘
              ┌──────────┬─────────┼──────────────┐
              ▼          ▼         ▼               ▼
          mongo:27017  redis:6379  minio:9000   Chromium
          /data/mongo  /data/redis /data/minio  (in-image)
          (1-node RS)              minio:9001
    
    Dịch vụCổng máy chủMục đích
    app3000Bảng điều khiển (Giao diện người dùng CMS)
    backend3100REST API (endpoint /health)
    mongonội bộMongoDB 8, replica-set nút đơn rs0
    redisnội bộHàng đợi tác vụ (BullMQ) và bộ nhớ đệm
    minio9000 (S3), 9001 (console)Lưu trữ đối tượng tương thích S3 cho ảnh đại diện và ảnh chụp màn hình

    Thứ tự khởi động được kiểm soát bởi các phụ thuộc s6 (mongod → khởi tạo replica-set, minio → tạo bucket, sau đó là backend, rồi đến app), và các dịch vụ sẽ tự khởi động lại khi kết thúc, do đó lần khởi động đầu tiên sẽ tự phục hồi.

    Điều kiện tiên quyết

    • Docker ≥ 24: Trình cài đặt đề xuất cài đặt nó (qua get.docker.com trên Linux, Homebrew trên macOS). Trên Windows, trước tiên hãy cài đặt Docker Desktop (backend WSL 2).
    • Các cổng 3000, 3100, 9000, và 9001 còn trống trên máy chủ. Cổng MinIO 9000 phải duy trì khả năng truy cập từ trình duyệt vì tài nguyên được tải trực tiếp từ S3_PUBLIC_URL.
    • Trình gửi thư (mailer): Khóa API Resend hoặc relay SMTP.

    1. Cài đặt

    Ghi ./intlayer.env với BETTER_AUTH_SECRET và S3_SECRET_ACCESS_KEY đã tạo, đặt một vài câu hỏi để điền phần còn lại, sau đó kéo intlayer/cms-all:latest.

    sh
    curl -fsSL https://intlayer.org/install.sh | sh -s -- --mode docker
    

    In PowerShell:

    powershell
    $env:INTLAYER_MODE = "docker"; irm https://intlayer.org/install.ps1 | iex
    
    bash
    npx intlayer init infra --mode docker
    

    2. Trả lời các câu hỏi thiết lập

    Trình cài đặt sẽ hỏi (nhấn Enter để chấp nhận giá trị gợi ý; mọi câu trả lời đều có thể thay đổi trong tệp sau này):

    • Tên miền phục vụ Intlayer. Để trống để giữ nguyên localhost. Với tên miền như example.org, trình cài đặt gợi ý https://cms.example.org cho bảng điều khiển, https://back.example.org cho API và https://s3.example.org/intlayer cho kho lưu trữ đối tượng, rồi ghi DOMAIN, APP_URL, BACKEND_URL và S3_PUBLIC_URL. Xem Tên miền tùy chỉnh cho các bước tiếp theo.
    • Trình gửi thư: Resend (khóa API) hoặc SMTP relay (máy chủ, cổng, thông tin xác thực), cùng với địa chỉ người gửi. Bước này có thể bỏ qua và thực hiện thủ công sau.
    • Khóa API OpenAI tùy chọn cho các tính năng AI.

    Khi không có terminal (ví dụ khi script được chạy từ CI), các câu hỏi được bỏ qua và chỉ các secret được tạo. Mở intlayer.env và điền Resend hoặc SMTP thủ công (xem chi tiết tại Trình gửi thư toàn cục):

    intlayer.env
    # Option A: Resend
    RESEND_API_KEY=<your-resend-key>
    
    # Option B: SMTP (takes over from Resend as soon as MAIL_SMTP_HOST is set)
    MAIL_SMTP_HOST=smtp.example.com
    MAIL_SMTP_PORT=587
    MAIL_SMTP_USER=<user>
    MAIL_SMTP_PASSWORD=<password>
    MAIL_FROM=Intlayer <no-reply@example.com>
    

    3. Khởi chạy

    Đây là lệnh khởi chạy do trình cài đặt in ra (với tên miền tùy chỉnh, trước đó sẽ chạy docker build để tạo intlayer/cms-all:custom, xem Tên miền tùy chỉnh):

    sh
    docker run -d --name intlayer \
      --restart unless-stopped \
      -p 3000:3000 -p 3100:3100 -p 9000:9000 -p 9001:9001 \
      -v intlayer-data:/data \
      --env-file ./intlayer.env \
      intlayer/cms-all:latest
    
    powershell
    docker run -d --name intlayer `
      --restart unless-stopped `
      -p 3000:3000 -p 3100:3100 -p 9000:9000 -p 9001:9001 `
      -v intlayer-data:/data `
      --env-file ./intlayer.env `
      intlayer/cms-all:latest
    

    CLI chạy trình cài đặt và in lệnh docker run … như hiển thị ở các tab khác. Hãy dán vào terminal của bạn sau khi đã định cấu hình mailer.

    Mở http://localhost:3000 (hoặc URL bảng điều khiển của bạn) và làm theo hướng dẫn Thiết lập lần đầu. Lần khởi động đầu tiên sẽ khởi tạo replica-set và bucket, vui lòng đợi trong giây lát.

    Sao lưu và Nâng cấp

    Toàn bộ trạng thái được lưu trong volume intlayer-data (/data/mongo, /data/redis, /data/minio).

    sh
    # Backup (stop the container first so MongoDB's files are consistent)
    docker stop intlayer
    docker run --rm -v intlayer-data:/data -v "$(pwd)":/backup busybox tar czf /backup/intlayer-data.tar.gz /data
    docker start intlayer
    
    # Restore
    docker run --rm -v intlayer-data:/data -v "$(pwd)":/backup busybox tar xzf /backup/intlayer-data.tar.gz -C /
    

    Để nâng cấp, hãy chạy lại trình cài đặt (nó sẽ kéo hình ảnh mới nhất và giữ nguyên intlayer.env), sau đó chạy docker rm -f intlayer và chạy lại lệnh khởi chạy. Để sử dụng MongoDB được quản lý thay vì bản đi kèm, hãy đặt MONGODB_URI trong intlayer.env.

    Một container cho mỗi dịch vụ trên mạng Compose riêng tư. Bảng điều khiển và API sử dụng các hình ảnh intlayer/cms-frontend và intlayer/cms-backend đã xuất bản; các kho dữ liệu sử dụng hình ảnh chính thức của mongo, redis và minio.

    plaintext
                    ┌───────────────────┐
     browser ──────▶ │  app        :3000 │ ── SSR ──▶ http://backend:3100
     (localhost)    └───────────────────┘
                    ┌───────────────────┐
     browser ──────▶ │  backend    :3100 │
     (localhost)    └─────────┬─────────┘
              ┌───────────────┼───────────────┐
              ▼               ▼               ▼
         mongo:27017     redis:6379      minio:9000 ◀── browser (assets)
         (1-node RS)                     minio:9001
    
    Dịch vụHình ảnhVai trò
    appintlayer/cms-frontendBảng điều khiển trên :3000; chờ backend khỏe mạnh
    backendintlayer/cms-backendAPI trên :3100 với Chromium; chờ Mongo, Redis và bucket MinIO
    mongomongo:8Replica-set nút đơn rs0, được khởi tạo bởi chính healthcheck của nó
    redisredis:8-alpineHàng đợi và bộ nhớ đệm, lưu trữ liên tục chỉ nối thêm (append-only)
    minioquay.io/minio/minioLưu trữ S3 trên :9000, console trên :9001
    minio-initquay.io/minio/mcChạy một lần: tạo bucket và chính sách tải xuống ẩn danh

    Dữ liệu được lưu trữ trong các volume intlayer_mongo-data, intlayer_redis-data và intlayer_minio-data. Các kết nối dịch vụ (MONGODB_URI, REDIS_URL, S3_ENDPOINT, URL backend nội bộ cho render phía máy chủ) được gắn cố định trong tệp compose và được ưu tiên hơn tệp .env (chỉ chứa các secret và tích hợp tùy chọn).

    Điều kiện tiên quyết

    • Docker ≥ 24 với plugin Compose: Trình cài đặt đề xuất cài đặt nó trên Linux và macOS. Trên Windows, trước tiên hãy cài đặt Docker Desktop (backend WSL 2) terlebih dahulu.
    • Các cổng 3000, 3100, 9000 và 9001 còn trống trên máy chủ.
    • Trình gửi thư: Khóa API Resend hoặc relay SMTP.

    1. Cài đặt

    Ghi docker-compose.yml và .env với các secret đã tạo vào ./intlayer/, đặt các câu hỏi thiết lập giống như chế độ all-in-one (tên miền, trình gửi thư, khóa OpenAI) và kéo các hình ảnh.

    sh
    curl -fsSL https://intlayer.org/install.sh | sh -s -- --mode compose
    

    Or by hand:

    sh
    mkdir intlayer && cd intlayer
    curl -fsSLO https://raw.githubusercontent.com/aymericzip/intlayer/main/docker/selfhost/docker-compose.yml
    curl -fsSL  https://raw.githubusercontent.com/aymericzip/intlayer/main/docker/selfhost/.env.template -o .env
    # fill in BETTER_AUTH_SECRET and S3_SECRET_ACCESS_KEY (openssl rand -hex 32)
    

    In PowerShell:

    powershell
    $env:INTLAYER_MODE = "compose"; irm https://intlayer.org/install.ps1 | iex
    

    Or by hand:

    powershell
    mkdir intlayer; cd intlayer
    irm https://raw.githubusercontent.com/aymericzip/intlayer/main/docker/selfhost/docker-compose.yml -OutFile docker-compose.yml
    irm https://raw.githubusercontent.com/aymericzip/intlayer/main/docker/selfhost/.env.template -OutFile .env
    # fill in BETTER_AUTH_SECRET and S3_SECRET_ACCESS_KEY
    
    bash
    npx intlayer init infra --mode compose
    

    2. Cấu hình Mailer

    Nếu bạn đã bỏ qua câu hỏi về trình gửi thư, hãy điền Resend hoặc SMTP vào intlayer/.env, tương tự như container all-in-one (xem Trình gửi thư toàn cục).

    3. Khởi chạy

    sh
    cd intlayer && docker compose up -d
    

    Với tên miền tùy chỉnh, trình cài đặt cũng tải xuống docker-compose.build.yml và lệnh khởi chạy trở thành docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build (xem Tên miền tùy chỉnh).

    Mở http://localhost:3000 (hoặc URL bảng điều khiển của bạn) và làm theo hướng dẫn Thiết lập lần đầu.

    Kho dữ liệu được quản lý

    Xóa dịch vụ bạn đang thay thế khỏi tệp compose (cùng với mục depends_on của nó trong backend), và ghi đè biến tương ứng:

    docker-compose.yml
    services:
      backend:
        environment:
          MONGODB_URI: mongodb+srv://user:password@cluster0.xxxxx.mongodb.net/intlayer
          REDIS_URL: rediss://default:password@redis.example.com:6380
          S3_ENDPOINT: https://s3.eu-west-1.amazonaws.com
          S3_PUBLIC_URL: https://intlayer-assets.s3.eu-west-1.amazonaws.com
    

    S3_ACCESS_KEY_ID / S3_SECRET_ACCESS_KEY / S3_BUCKET_NAME hoạt động trực tiếp với bất kỳ nhà cung cấp nào tương thích với S3.

    Mở rộng quy mô

    app và backend là stateless. Đằng sau bộ cân bằng tải, giả sử loại bỏ các ánh xạ cổng máy chủ cố định và proxy định tuyến theo tên dịch vụ, docker compose up -d --scale backend=3 sẽ hoạt động. Các tác vụ nền được điều phối qua Redis (BullMQ), vì vậy nhiều bản sao backend chia sẻ hàng đợi một cách an toàn.

    Xây dựng từ nguồn

    Một cấu hình ghi đè chuyển đổi hai dịch vụ Intlayer từ image: sang build:. Từ bản sao của kho lưu trữ:

    sh
    cd docker/selfhost
    docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build
    

    Nếu không có bản sao, hãy trỏ ngữ cảnh build trực tiếp đến kho lưu trữ bằng cách đặt INTLAYER_BUILD_CONTEXT=https://github.com/aymericzip/intlayer.git#main trong .env. Các đối số build VITE_* của bảng điều khiển lấy theo DOMAIN, APP_URL và BACKEND_URL trong cùng tệp, đó là cách áp dụng tên miền tùy chỉnh.

    Sao lưu và Nâng cấp

    sh
    # Backup one volume (repeat for intlayer_redis-data and intlayer_minio-data)
    docker compose stop
    docker run --rm -v intlayer_mongo-data:/data -v "$(pwd)":/backup busybox tar czf /backup/mongo-data.tar.gz /data
    docker compose start
    
    # Upgrade, volumes are kept
    docker compose pull && docker compose up -d
    

    Cài đặt của Trình cài đặt

    Nếu không có --mode (hoặc INTLAYER_MODE), trình cài đặt sẽ nhắc menu: desktop, docker (all-in-one), hoặc compose. Nó cũng đọc một số biến môi trường; hãy truyền chúng vào shell thay vì curl vì lệnh này được truyền qua đường ống (piped):

    sh
    curl -fsSL https://intlayer.org/install.sh | INTLAYER_COMPOSE_DIR=./cms sh -s -- --mode compose
    
    powershell
    $env:INTLAYER_MODE = "compose"; $env:INTLAYER_COMPOSE_DIR = ".\cms"; irm https://intlayer.org/install.ps1 | iex
    
    VariableDefaultApplies toDescription
    INTLAYER_MODE(asked)alldesktop, docker or compose, same as --mode
    INTLAYER_DOWNLOAD_DIR~/DownloadsdesktopWhere the app installer is saved
    INTLAYER_IMAGEintlayer/cms-all:latestdockerAll-in-one image to pull
    INTLAYER_ENV_FILE./intlayer.envdockerWhere to write the environment file
    INTLAYER_CONTAINER_NAMEintlayerdockerContainer name
    INTLAYER_DATA_VOLUMEintlayer-datadockerNamed volume mounted at /data
    INTLAYER_APP_PORT3000dockerHost port for the dashboard
    INTLAYER_API_PORT3100dockerHost port for the API
    INTLAYER_S3_PORT9000dockerHost port for the MinIO S3 API
    INTLAYER_CONSOLE_PORT9001dockerHost port for the MinIO console
    INTLAYER_COMPOSE_DIR./intlayercomposeWhere docker-compose.yml and .env are written
    INTLAYER_SELFHOST_REFmainbothGit ref the compose file and env template are fetched from
    INTLAYER_BUILD_CONTEXT…/intlayer.git#mainbothBuild context used when a custom domain requires a rebuild
    INTLAYER_CUSTOM_IMAGEintlayer/cms-all:customdockerTag of the all-in-one image built for a custom domain
    Các biến cổng chỉ thay đổi phía máy chủ của ánh xạ. Các hình ảnh đã xuất bản có http://localhost:3000, http://localhost:3100, http://localhost:9000 được biên dịch sẵn vào gói bảng điều khiển, vì vậy hãy giữ nguyên các giá trị mặc định trừ khi bạn tự xây dựng hình ảnh, xem Giới hạn.

    Thiết lập lần đầu

    Khi mở bảng điều khiển trên một phiên bản mới (cơ sở dữ liệu trống), bạn sẽ tự động được chuyển hướng đến trang /init:

    1. Tạo tài khoản đầu tiên. Vì bộ sưu tập người dùng đang trống, tài khoản này sẽ tự động được nâng cấp thành Super Admin.
    2. Một email xác minh sẽ được gửi qua Resend hoặc relay SMTP của bạn. Xác minh email là bắt buộc, đó là lý do tại sao phải cấu hình trình gửi thư trước khi khởi chạy.
    3. Nhấp vào liên kết trong email và đăng nhập.

    Sau khi đã có quản trị viên, /init sẽ chuyển hướng đến trang đăng nhập thông thường.

    Biến môi trường

    Cả hai chế độ Docker đều đọc cùng một tệp (tệp intlayer.env cho container hoặc .env cho Compose) được tạo từ docker/selfhost/.env.template.

    Bắt buộc

    VariableExampleDescription
    BETTER_AUTH_SECRET(generated)32-byte secret for session signing
    S3_SECRET_ACCESS_KEY(generated)Secret for the bundled MinIO
    RESEND_API_KEY(your key)Transactional email via Resend. Required for first-run setup unless an SMTP relay is configured instead (see Global mailer)

    Được cố định bởi việc triển khai

    Các biến này được đặt bởi hình ảnh (all-in-one) hoặc bởi tệp compose, và chỉ cần ghi đè cho một cấu trúc triển khai không chuẩn. DOMAIN, APP_URL, BACKEND_URL và S3_PUBLIC_URL là ngoại lệ: khi được đặt trong tệp env, chúng được ưu tiên ở cả hai chế độ (xem Tên miền tùy chỉnh).

    VariableAll-in-oneDocker ComposeDescription
    PORT31003100Backend listening port
    APP_URLhttp://localhost:3000http://localhost:3000Public URL of the dashboard
    BACKEND_URLhttp://localhost:3100http://localhost:3100Public URL of the backend API
    DOMAINlocalhostlocalhostCookie domain
    SELF_HOSTEDtruetrueDisables the cloud-only API endpoints (billing, subscriptions, marketplace)
    MONGODB_URImongodb://127.0.0.1:27017/intlayer?replicaSet=rs0mongodb://mongo:27017/…MongoDB connection string, any mongodb:// or mongodb+srv:// cluster works
    REDIS_URLredis://127.0.0.1:6379redis://redis:6379Redis
    S3_ENDPOINThttp://127.0.0.1:9000http://minio:9000MinIO (server-to-server)
    S3_PUBLIC_URLhttp://localhost:9000/intlayerhttp://localhost:9000/intlayerPublic URL for browser asset loading
    S3_BUCKET_NAMEintlayerintlayerBucket name
    S3_ACCESS_KEY_IDintlayerintlayerMinIO access key

    Dịch vụ Compose app nhận thêm INTLAYER_BACKEND_INTERNAL_URL=http://backend:3100: trình duyệt tiếp cận API tại localhost:3100, nhưng quá trình kết xuất phía máy chủ chạy bên trong mạng Compose nên nó phải sử dụng tên dịch vụ.

    Tên miền tùy chỉnh

    Backend đọc các URL công khai của nó khi chạy, nhưng bảng điều khiển đã biên dịch sẵn chúng: các hình ảnh đã xuất bản intlayer/cms-frontend và intlayer/cms-all chỉ hoạt động trên http://localhost:3000. Vì vậy, phục vụ Intlayer trên tên miền của riêng bạn cần hai thứ, cả hai đều được trình cài đặt chuẩn bị khi bạn trả lời câu hỏi về tên miền:

    1. Bốn biến trong tệp env, được backend đọc (cookie, liên kết email, callback OAuth, URL tài nguyên) và được docker-compose.build.yml dùng làm đối số build:

      intlayer.env
      DOMAIN=example.org                          # cookie domain, parent of the hosts below
      APP_URL=https://cms.example.org
      BACKEND_URL=https://back.example.org
      S3_PUBLIC_URL=https://s3.example.org/intlayer
      
    2. Một hình ảnh bảng điều khiển được build với các URL đó. Docker build trực tiếp từ kho lưu trữ, không cần bản sao:

      sh
      # Docker Compose: the override reads the build args from .env
      docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build
      
      # All-in-one
      docker build -f docker/selfhost/Dockerfile \
        --build-arg VITE_DOMAIN=example.org \
        --build-arg VITE_SITE_URL=https://cms.example.org \
        --build-arg VITE_IDE_URL=https://cms.example.org \
        --build-arg VITE_BACKEND_URL=https://back.example.org \
        -t intlayer/cms-all:custom \
        https://github.com/aymericzip/intlayer.git#main
      

    Sau đó đặt một reverse proxy có TLS phía trước container: cms.example.org → cổng 3000, back.example.org → 3100, s3.example.org → 9000. Ba máy chủ phải có chung hậu tố DOMAIN, vì cookie phiên được giới hạn trong phạm vi đó.

    Tùy chọn (các tính năng sẽ giảm cấp nhẹ nhàng khi không được đặt)

    VariableFeature
    OPENAI_API_KEYAI-assisted translation and content audit
    GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRETGitHub OAuth login
    GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRETGoogle OAuth login
    GITLAB_CLIENT_ID, GITLAB_CLIENT_SECRETGitLab OAuth login
    MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRETMicrosoft OAuth login

    Trình gửi thư toàn cục (Mailer)

    Tất cả các email giao dịch, bao gồm các email ngoài tổ chức như đặt lại mật khẩu và magic links, đều đi qua một trong hai cổng truyền tải toàn cục:

    • Resend: Sử dụng RESEND_API_KEY.
    • SMTP: Sử dụng các biến MAIL_SMTP_*. Đặt MAIL_SMTP_HOST sẽ lập tức chọn giao thức SMTP và bỏ qua RESEND_API_KEY.

    MAIL_PROVIDER chỉ cần thiết khi muốn buộc sử dụng một phương thức truyền tải nếu cả hai đều được cấu hình (ví dụ: MAIL_PROVIDER=resend để giữ Resend khi máy chủ SMTP tồn tại).

    VariableExampleDescription
    MAIL_FROMIntlayer <no-reply@acme.com>Sender header for either transport. Accepts a bare address or Name <email>
    MAIL_SMTP_HOSTsmtp.acme.comSMTP host. Setting it selects the SMTP transport
    MAIL_SMTP_PORT587SMTP port (defaults to 587)
    MAIL_SMTP_SECUREfalseImplicit TLS. Set true for port 465
    MAIL_SMTP_USER(your user)SMTP username (optional; omit for unauthenticated relays)
    MAIL_SMTP_PASSWORD(your password)SMTP password
    MAIL_PROVIDERresendOptional override: smtp or resend. Leave unset to auto-select
    Thứ tự ưu tiên: Trình gửi thư riêng của tổ chức (được cấu hình từ bảng điều khiển Tổ chức) sẽ ghi đè trình gửi thư toàn cục, và trình gửi thư toàn cục sẽ ghi đè khóa Resend mặc định.

    Kết nối Dự án Intlayer của bạn

    Sau khi stack đang chạy, hãy cấu hình dự án của bạn để trỏ đến backend và bảng điều khiển tự lưu trữ thay vì intlayer.org.

    Cấu hình dự án

    intlayer.config.ts
    import type { IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      editor: {
        clientId: process.env.INTLAYER_CLIENT_ID,
        clientSecret: process.env.INTLAYER_CLIENT_SECRET,
    
        /**
         * URL of the self-hosted CMS dashboard.
         * Default: https://app.intlayer.org
         */
        cmsURL: process.env.INTLAYER_CMS_URL, // e.g. http://localhost:3000
    
        /**
         * URL of the self-hosted backend API.
         * Default: https://back.intlayer.org
         */
        backendURL: process.env.INTLAYER_BACKEND_URL, // e.g. http://localhost:3100
      },
    };
    
    export default config;
    

    Set the environment variables in your project's .env:

    sh
    INTLAYER_CMS_URL=http://localhost:3000
    INTLAYER_BACKEND_URL=http://localhost:3100
    INTLAYER_CLIENT_ID=<your-client-id>
    INTLAYER_CLIENT_SECRET=<your-client-secret>
    

    Tạo thông tin đăng nhập truy cập trong bảng điều khiển tự lưu trữ của bạn tại Dự án → Khóa truy cập (http://localhost:3000/projects).

    SDK @intlayer/api

    Khi sử dụng SDK @intlayer/api theo phương thức lập trình, hãy truyền backendURL một cách rõ ràng:

    cms.ts
    import { createIntlayerCMS } from "@intlayer/api";
    import { dictionaryEndpoint } from "@intlayer/api/dictionary";
    
    const cms = createIntlayerCMS({
      editor: {
        clientId: process.env.INTLAYER_CLIENT_ID,
        clientSecret: process.env.INTLAYER_CLIENT_SECRET,
        backendURL: process.env.INTLAYER_BACKEND_URL, // http://localhost:3100
      },
    });
    
    const { data: dictionaries } = await dictionaryEndpoint(cms).getDictionaries();
    

    Giới hạn

    • Tên miền tùy chỉnh đồng nghĩa với việc build lại. Tất cả các URL VITE_* hướng đến trình duyệt đều được nhúng sẵn vào bảng điều khiển tại thời điểm xây dựng, và các hình ảnh đã xuất bản (cùng với ứng dụng desktop) có sẵn các giá trị localhost / Intlayer Cloud. Mặc định, bảng điều khiển phải được truy cập tại http://localhost:3000, API tại :3100 và MinIO tại :9000; ánh xạ lại cổng của máy chủ cũng có tác dụng tương tự. Trình cài đặt chuẩn bị mọi thứ để build lại từ kho lưu trữ khi bạn cung cấp tên miền (xem Tên miền tùy chỉnh), nhưng bản thân quá trình build mất vài phút. Việc trỏ ứng dụng desktop đến backend tự lưu trữ không được hỗ trợ.
    • Gửi thư yêu cầu một mailer hoạt động. Thiết lập lần đầu bắt buộc phải xác minh email, vì vậy phải định cấu hình RESEND_API_KEY hoặc một relay SMTP (MAIL_SMTP_*). Sau khi quản trị viên đầu tiên đăng nhập, các tổ chức cũng có thể cấu hình mailer SMTP hoặc Resend riêng của họ từ bảng điều khiển.
    • Ứng dụng desktop yêu cầu Node.js trên máy để khởi động máy chủ nhúng.
    • Không có trợ lý tài liệu. Trợ lý tài liệu AI của intlayer.org (/api/ai/ask, /api/search/doc) dựa trên khoảng 130 MB embedding tài liệu được tính toán trước mà các hình ảnh tự lưu trữ không đi kèm; hai route này không được đăng ký ở chế độ tự lưu trữ. Các tính năng AI riêng của bảng điều khiển (dịch, kiểm tra, tự động hoàn thành, chat) không bị ảnh hưởng và chỉ cần OPENAI_API_KEY.

    Liên kết hữu ích