# Triển khai thông qua Docker Compose

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

<table><thead><tr><th width="193">Hệ điều hành</th><th width="153">Phần mềm</th><th>Giải thích</th></tr></thead><tbody><tr><td>macOS 10.14 trở lên</td><td>Docker Desktop</td><td>Thiết lập máy ảo Docker (VM) để sử dụng tối thiểu 2 CPU ảo (vCPU) và 8 GB bộ nhớ khởi tạo. Nếu không, quá trình cài đặt có thể thất bại. Để biết thêm thông tin, vui lòng tham khảo <a href="https://docs.docker.com/desktop/install/mac-install/">hướng dẫn cài đặt Docker Desktop cho Mac.</a></td></tr><tr><td>Các nền tảng Linux</td><td>Docker 19.03 trở lên<br>Docker Compose 1.25.1 trở lên</td><td>Vui lòng tham khảo hướng dẫn cài đặt Docker và hướng dẫn cài đặt Docker Compose để biết thêm thông tin về <a href="https://docs.docker.com/engine/install/">cách cài đặt Docker</a> và <a href="https://docs.docker.com/compose/install/">Docker Compose</a>, tương ứng.</td></tr><tr><td>Windows với WSL 2 được kích hoạt</td><td>Docker Desktop</td><td>Chúng tôi khuyến nghị lưu trữ mã nguồn và dữ liệu khác được liên kết với các container Linux trong hệ thống tệp Linux thay vì hệ thống tệp Windows. Để biết thêm thông tin, vui lòng tham khảo <a href="https://docs.docker.com/desktop/install/windows-install/#wsl-2-backend">hướng dẫn cài đặt Docker Desktop cho việc sử dụng backend WSL 2 trên Windows.</a></td></tr></tbody></table>

### Clone ChatX

Sao chép mã nguồn của ChatX về máy cục bộ của bạn:

```
git clone https://github.com/langgenius/chatx.git
```

### Start ChatX <a href="#start-dify" id="start-dify"></a>

Chuyển đến thư mục docker trong mã nguồn của ChatX và thực thi lệnh sau để bắt đầu ChatX:

```
cd chatx/docker
docker compose up -d
```

> Nếu hệ thống của bạn đã cài đặt Docker Compose phiên bản 2 thay vì phiên bản 1, hãy sử dụng lệnh `docker compose` thay vì `docker-compose`. Kiểm tra xem điều này có đúng không bằng cách chạy `$ docker compose version`. [Đọc thêm thông tin tại đây.](https://docs.docker.com/compose/#compose-v2-and-the-new-docker-compose-command)

Kết quả Triển khai:

```
[+] Running 7/7
 ✔ Container docker-web-1       Started                                                                                                                                                                                       1.0s 
 ✔ Container docker-redis-1     Started                                                                                                                                                                                       1.1s 
 ✔ Container docker-weaviate-1  Started                                                                                                                                                                                       0.9s 
 ✔ Container docker-db-1        Started                                                                                                                                                                                       0.0s 
 ✔ Container docker-worker-1    Started                                                                                                                                                                                       0.7s 
 ✔ Container docker-api-1       Started                                                                                                                                                                                       0.8s 
 ✔ Container docker-nginx-1     Started
```

Cuối cùng, kiểm tra xem tất cả các container có đang chạy thành công không:

```
docker compose ps
```

Điều này bao gồm 3 dịch vụ kinh doanh: api / worker / web, và 4 thành phần cơ bản: weaviate / db / redis / nginx.

```
NAME                IMAGE                              COMMAND                  SERVICE             CREATED             STATUS              PORTS
docker-api-1        langgenius/chatx-api:0.3.2          "/entrypoint.sh"         api                 4 seconds ago       Up 2 seconds        80/tcp, 5001/tcp
docker-db-1         postgres:15-alpine                 "docker-entrypoint.s…"   db                  4 seconds ago       Up 2 seconds        0.0.0.0:5432->5432/tcp
docker-nginx-1      nginx:latest                       "/docker-entrypoint.…"   nginx               4 seconds ago       Up 2 seconds        0.0.0.0:80->80/tcp
docker-redis-1      redis:6-alpine                     "docker-entrypoint.s…"   redis               4 seconds ago       Up 3 seconds        6379/tcp
docker-weaviate-1   semitechnologies/weaviate:1.18.4   "/bin/weaviate --hos…"   weaviate            4 seconds ago       Up 3 seconds        
docker-web-1        langgenius/chatx-web:0.3.2          "/entrypoint.sh"         web                 4 seconds ago       Up 3 seconds        80/tcp, 3000/tcp
docker-worker-1     langgenius/chatx-api:0.3.2          "/entrypoint.sh"         worker              4 seconds ago       Up 2 seconds        80/tcp, 5001/tcp
```

### Upgrade ChatX <a href="#upgrade-dify" id="upgrade-dify"></a>

Đến thư mục docker trong mã nguồn của ChatX và thực thi các lệnh sau:

```
cd chatx/docker
git pull origin main
docker compose down
docker compose pull
docker compose up -d
```

### Access ChatX <a href="#access-dify" id="access-dify"></a>

Cuối cùng, truy cập vào địa chỉ <http://localhost/install> để sử dụng ChatX đã triển khai.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.chatx.vn/document-chatx/bat-dau/cai-dat-tu-luu-tru/trien-khai-thong-qua-docker-compose.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
