> 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/ko/user-and-project-management/project-management.md).

# 프로젝트 관리

### 프로젝트 감사 로그 보기

관리자는 **감사 로그** 를 각 프로젝트별로 볼 수 있습니다. 이 감사 로그에는 링크 공유가 비공개/토큰 기반 사이에서 변경된 시점, 초대가 전송/수락된 시점, 사용자가 토큰을 사용해 프로젝트에 참여한 시점과 같은 이벤트가 표시됩니다. 관리자는 **내 인스턴스** -> **관리자** -> **사용자 관리** 그런 다음:

* 사용자를 검색합니다
* 다음으로, 온프레미스 Server Pro 계정에 로그인합니다 **프로젝트** 탭
* 프로젝트를 선택합니다
* (i) 아이콘을 클릭합니다
* 다음으로, 온프레미스 Server Pro 계정에 로그인합니다 **감사 로그** 탭

프로젝트가 특정 협업자(이메일 주소 사용)와 공유된 경우, 수신자가 참여하면 공유 모달에 해당 사용자의 권한과 함께 표시되며 프로젝트 소유자도 이를 볼 수 있습니다. 이 정보는 관리 패널을 통해 해당 프로젝트의 프로젝트 정보 탭을 볼 때 관리자에게도 표시됩니다.

### 삭제된 문서 복구

1. 관리자 자격 증명으로 로그인합니다
2. 클릭 **관리자** 그리고 **사용자 관리**
3. 검색 필드를 사용하여 문서를 복원하려는 사용자의 이메일을 입력합니다
4. 결과 목록에 표시된 이메일 주소를 클릭하여 사용자 정보 페이지를 엽니다
5. 다음으로, 온프레미스 Server Pro 계정에 로그인합니다 **프로젝트** 탭에서 검색 필드를 사용하여 프로젝트를 검색합니다
6. 프로젝트 이름 옆의 정보 아이콘을 클릭하여 **프로젝트 정보**
7. 다음 **삭제된 문서** 탭
8. 다음 **복구** 버튼을 삭제된 문서 옆에서 클릭하여 사용자의 프로젝트로 복원합니다.

복원된 파일은 다음 형식을 사용합니다: `파일명-타임스탬프.확장자`. 예를 들어, `main.tex` 의 복원된 버전은 프로젝트의 루트에 파일 이름 `main-2024-02-23-130441542.tex`.

### 프로젝트 소유권 이전

Server Pro의 관리 패널에는 프로젝트별 전용 페이지가 있습니다. "/admin/user"에서 사용자를 검색한 다음 해당 사용자의 **프로젝트** 탭으로 이동해 목록에서 프로젝트를 찾고 정보 아이콘을 클릭하거나, 알려진 프로젝트 ID가 있다면 해당 페이지로 직접 이동할 수 있습니다 [**https://your-instance-url/admin/project/**](https://your-instance-url/admin/project/). 프로젝트 정보 페이지에서 **소유권 이전** 버튼을 찾을 수 있으며, 이를 클릭하면 새 소유자로 지정할 사용자를 지정할 수 있는 모달이 열립니다. 새 소유자는 프로젝트의 기존 협업자일 필요가 없습니다.

{% hint style="info" %}
이전 소유자는 소유권 이전 과정의 일부로 프로젝트에 대한 읽기 및 쓰기 권한을 가진 협업자로 추가됩니다.
{% endhint %}

### 프로젝트 컴파일 제한 시간 업데이트&#x20;

프로젝트의 기본 컴파일 타임아웃은 현재 180초로 설정되어 있습니다. 이 값을 변경할 수 있으며, 두 단계의 절차가 필요합니다.

먼저 **config/variables.env** 파일을 편집하고 `COMPILE_TIMEOUT`환경 변수를 추가한 다음 값을 원하는 타임아웃(초)으로 설정합니다. 예를 들어, `COMPILE_TIMEOUT=300` 은 5분입니다.

{% hint style="danger" %}
타임아웃을 10분 이상으로 늘리는 것은 가치가 없습니다. 그렇게 하면 애플리케이션의 다른 구성 요소에서 타임아웃이 발생할 가능성이 큽니다.
{% endhint %}

이 변경이 완료되면, **sharelatex** 를 실행하여 `bin/up -d`명령을 사용해 모든 서비스를 다시 생성합니다.

이 환경 변수를 설정하면 타임아웃 값은 새 사용자에 대해서만 업데이트되며 **않습니다** 사용자가 처음 생성될 때 채워지므로 기존 사용자에게 소급 적용되지는 않습니다.

기존 사용자의 타임아웃을 조정하려면 데이터베이스의 각 사용자 레코드를 변경해야 합니다. 이 작업은 매우 신중하게 진행할 것을 권장하며, 변경을 하기 전에 일관된 백업을 수행할 것을 권장합니다.

백업 수행에 대한 정보는 [여기](/on-premises/ko/maintenance/data-and-backups.md).

모든 기존 사용자의 컴파일 타임아웃 값을 업데이트하려면 Docker 호스트에서 다음 셸 명령을 실행해야 합니다:

{% code overflow="wrap" %}

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

{% endcode %}

위 쿼리에서 `<value>` 를 원하는 타임아웃 값(초)으로 바꿔야 합니다.

명령이 완료되면 수정된 레코드 수와 함께 확인 메시지가 표시됩니다. 그런 다음 exit를 입력하고 Enter 키를 눌러 호스트 셸로 돌아갈 수 있습니다.

### 프로젝트 접근 추적

다음 명령으로 누가 언제 프로젝트를 불러왔는지 확인할 수 있습니다:

{% code overflow="wrap" %}

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

{% endcode %}

이 명령은 다음 두 가지를 모두 제공합니다: `타임스탬프`, `user_id` 그리고 `project_id`.


---

# 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/ko/user-and-project-management/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.
