> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/vi/quan-ly-nguoi-dung-va-du-an/project-management.md).

# Quản lý dự án

### Xem nhật ký kiểm tra của một dự án

Quản trị viên có thể thấy một **Nhật ký kiểm tra** cho mỗi dự án. Nhật ký kiểm tra này hiển thị các sự kiện như khi chia sẻ liên kết thay đổi giữa riêng tư/dựa trên token, khi lời mời được gửi/chấp nhận và khi một người dùng tham gia dự án bằng token. Quản trị viên có thể xem các nhật ký này theo từng dự án thông qua **Phiên bản của bạn** -> **Quản trị** -> **Quản lý người dùng** sau đó:

* Tìm kiếm người dùng
* Nhấp vào nút **Dự án** tab
* Chọn một dự án
* Nhấp vào biểu tượng (i)
* Nhấp vào nút **Nhật ký kiểm tra** tab

Nếu một dự án được chia sẻ với một cộng tác viên được đặt tên (sử dụng địa chỉ email của họ), sau khi người nhận đã tham gia, họ sẽ được liệt kê trên hộp thoại Chia sẻ cùng với quyền của họ và hiển thị cho chủ sở hữu dự án. Thông tin này cũng sẽ được hiển thị cho Quản trị viên khi xem tab Thông tin Dự án của dự án thông qua bảng quản trị.

### Khôi phục tài liệu đã xóa

1. Đăng nhập bằng thông tin đăng nhập quản trị viên của bạn
2. Nhấp **Quản trị** và chọn **Quản lý người dùng**
3. Dùng trường tìm kiếm, nhập email của người dùng mà bạn muốn khôi phục tài liệu cho
4. Nhấp vào địa chỉ email của họ trong danh sách kết quả trả về để mở trang thông tin người dùng của họ
5. Nhấp vào nút **Dự án** tab và dùng trường tìm kiếm để tìm dự án
6. Nhấp vào biểu tượng thông tin bên cạnh tên dự án để mở **Thông tin Dự án**
7. Nhấp vào nút **Tài liệu đã xóa** tab
8. Nhấp vào nút **Khôi phục** nút bên cạnh tài liệu đã xóa để khôi phục lại vào dự án của người dùng.

Tệp được khôi phục sẽ có định dạng sau: `TÊN_TỆP-DẤU_THỜI_GIAN.PHAN_MỞ_RỘNG`. Ví dụ, một phiên bản được khôi phục của `main.tex` sẽ được khôi phục về thư mục gốc của dự án với tên tệp `main-2024-02-23-130441542.tex`.

### Chuyển quyền sở hữu của một dự án

Bảng quản trị trong Server Pro có một trang riêng cho mỗi dự án. Bạn có thể đến đó bằng cách tìm kiếm người dùng trên "/admin/user", sau đó vào **Dự án** tab của họ, tìm dự án trong danh sách và nhấp vào biểu tượng thông tin; hoặc bằng cách điều hướng trực tiếp đến trang với project-id đã biết [**https://your-instance-url/admin/project/**](https://your-instance-url/admin/project/). Trên trang thông tin dự án, bạn có thể tìm thấy một **Chuyển quyền sở hữu** nút, mở ra một hộp thoại nơi bạn có thể chỉ định bất kỳ người dùng nào làm chủ sở hữu mới. Chủ sở hữu mới không cần phải là cộng tác viên hiện có trong dự án.

{% hint style="info" %}
Lưu ý rằng chủ sở hữu trước đó sẽ được thêm làm cộng tác viên với quyền đọc và ghi vào dự án như một phần của quá trình chuyển quyền sở hữu.
{% endhint %}

### Cập nhật thời gian chờ biên dịch của dự án&#x20;

Thời gian chờ biên dịch mặc định cho các dự án hiện được đặt là 180 giây. Có thể thay đổi giá trị này và cần thực hiện theo quy trình hai bước.

Trước tiên, chỉnh sửa **config/variables.env** tệp và thêm `COMPILE_TIMEOUT`biến môi trường và đặt giá trị của nó thành thời gian chờ mong muốn tính bằng giây. Ví dụ, `COMPILE_TIMEOUT=300` cho 5 phút.

{% hint style="danger" %}
Không đáng để tăng thời gian chờ quá 10 phút. Nếu bạn làm vậy, rất có thể bạn sẽ gặp thời gian chờ ở một thành phần khác của ứng dụng.
{% endhint %}

Sau khi thay đổi này được thực hiện, bạn sẽ cần tạo lại **sharelatex** container bằng cách chạy `bin/up -d`lệnh.

Việc đặt biến môi trường này sẽ cập nhật giá trị thời gian chờ chỉ cho người dùng mới, nó **sẽ không** được áp dụng hồi tố cho những người dùng hiện có vì nó được điền khi người dùng được tạo lần đầu.

Để điều chỉnh thời gian chờ cho những người dùng hiện có, bạn sẽ cần thay đổi từng bản ghi người dùng trong cơ sở dữ liệu. Chúng tôi khuyên bạn hết sức thận trọng khi làm việc này, và khuyến nghị tạo một bản sao lưu nhất quán trước khi thực hiện bất kỳ thay đổi nào.

Bạn có thể tìm thông tin về việc sao lưu [tại đây](/on-premises/vi/bao-tri/data-and-backups.md).

Để cập nhật giá trị thời gian chờ biên dịch trên tất cả người dùng hiện có, bạn sẽ cần chạy lệnh shell sau trên host Docker:

{% code overflow="wrap" %}

```bash
echo 'db.users.updateMany({}, {$set: {"features.compileTimeout": <value>}})' | docker exec -i mongo mongosh --quiet localhost/sharelatex
```

{% endcode %}

Bạn sẽ cần thay thế `<value>` trong truy vấn ở trên bằng giá trị thời gian chờ mong muốn tính bằng giây.

Sau khi lệnh hoàn tất, bạn sẽ thấy thông báo xác nhận kèm theo số bản ghi đã được sửa đổi. Sau đó bạn có thể gõ exit rồi nhấn phím enter để quay lại shell của host.

### Theo dõi quyền truy cập dự án

Có thể xem ai và khi nào một dự án được tải bằng lệnh sau:

{% code overflow="wrap" %}

```bash
docker exec sharelatex bash -c 'grep "join project request" /var/log/overleaf/web.log'
```

{% endcode %}

Lệnh này sẽ cho cả `dấu thời gian`, `ID người dùng` và `ID dự án`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/vi/quan-ly-nguoi-dung-va-du-an/project-management.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
