[[Obsidian Sync 소개|Obsidian Sync]]는 데스크톱 앱을 사용하지 않고 보관함을 동기화할 수 있는 헤드리스 클라이언트를 제공해요. CI 파이프라인, 에이전트, 자동화된 워크플로우에 유용해요. 최신 변경 사항을 동기화하거나 파일을 지속적으로 최신 상태로 유지할 수 있어요.
[[헤드리스 Sync|Obsidian Headless]] **(오픈 베타)**를 설치하면 Obsidian 데스크톱 앱 없이 명령줄에서 [[Obsidian Sync 소개|Obsidian Sync]]와 상호작용할 수 있어요. 헤드리스 Sync는 종단 간 암호화를 포함하여 데스크톱 앱과 동일한 [[보안 및 개인정보 보호|암호화 및 개인정보 보호]]를 사용해요.
## 빠른 시작
> [!error] 시작하기 전에 데이터를 백업하세요
> 1. 예기치 않은 상황에 대비하여 시작하기 전에 항상 데이터를 백업하세요.
> 2. 동일한 기기에서 데스크톱 앱 동기화와 헤드리스 동기화를 *동시에* 사용하지 마세요. 데이터 충돌이 발생할 수 있어요. 기기당 하나의 동기화 방법만 사용하세요.
[[헤드리스 Sync|Obsidian Headless]] **(오픈 베타)** 설치:
```shell
npm install -g obsidian-headless
```
활성화된 [[플랜 및 저장 용량 제한|Obsidian Sync 구독]]이 필요해요.
```shell
# 로그인
ob login
# 원격 보관함 목록 확인
ob sync-list-remote
# 동기화를 위한 보관함 설정
cd ~/vaults/my-vault
ob sync-setup --vault "My Vault"
# 일회성 동기화 실행
ob sync
# 연속 동기화 실행 (변경 사항 감시)
ob sync --continuous
```
## 명령
### `ob sync-list-remote`
공유 보관함을 포함하여 계정에서 사용 가능한 모든 원격 보관함을 나열해요.
### `ob sync-list-local`
로컬에 설정된 보관함과 경로를 나열해요.
### `ob sync-create-remote`
새 원격 보관함을 생성해요.
```
ob sync-create-remote --name "Vault Name" [--encryption <standard|e2ee>] [--password <password>] [--region <region>]
```
| 옵션 | 설명 |
| --- | --- |
| `--name` | 보관함 이름 (필수) |
| `--encryption` | `standard`는 관리형 암호화, `e2ee`는 종단 간 암호화 |
| `--password` | 종단 간 암호화 비밀번호 (생략 시 입력 프롬프트 표시) |
| `--region` | 서버 [[동기화 지역\|지역]] (생략 시 자동) |
### `ob sync-setup`
로컬 보관함과 원격 보관함 간의 동기화를 설정해요.
```
ob sync-setup --vault <id-or-name> [--path <local-path>] [--password <password>] [--device-name <name>] [--config-dir <name>]
```
| 옵션 | 설명 |
| --- | --- |
| `--vault` | 원격 보관함 ID 또는 이름 (필수) |
| `--path` | 로컬 디렉토리 (기본값: 현재 디렉토리) |
| `--password` | E2E 암호화 비밀번호 (생략 시 입력 프롬프트 표시) |
| `--device-name` | [[버전 기록\|동기화 버전 기록]]에 표시되는 장치 이름 |
| `--config-dir` | [[설정 폴더\|설정 디렉토리]] 이름 (기본값: `.obsidian`) |
### `ob sync`
설정된 보관함에 대해 동기화를 실행해요.
```
ob sync [--path <local-path>] [--continuous]
```
| 옵션 | 설명 |
| --- | --- |
| `--path` | 로컬 보관함 경로 (기본값: 현재 디렉토리) |
| `--continuous` | 변경 사항을 감시하며 연속 실행 |
### `ob sync-config`
보관함의 [[동기화 설정 및 선택적 동기화|동기화 설정]]을 확인하거나 변경해요. 옵션 없이 실행하면 현재 설정을 표시해요.
```
ob sync-config [--path <local-path>] [options]
```
| 옵션 | 설명 |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--path` | 로컬 보관함 경로 (기본값: 현재 디렉토리) |
| `--mode` | 동기화 모드: `bidirectional` (기본값), `pull-only` (다운로드만, 로컬 변경 무시), 또는 `mirror-remote` (다운로드만, 로컬 변경 되돌리기) |
| `--conflict-strategy` | `merge` 또는 `conflict` |
| `--file-types` | 동기화할 첨부 파일 유형: `image`, `audio`, `video`, `pdf`, `unsupported` (쉼표로 구분, 비워두면 해제) |
| `--configs` | 동기화할 설정 범주: `app`, `appearance`, `appearance-data`, `hotkey`, `core-plugin`, `core-plugin-data`, `community-plugin`, `community-plugin-data` (쉼표로 구분, 비워두면 설정 동기화 비활성화) |
| `--excluded-folders` | 제외할 폴더 (쉼표로 구분, 비워두면 해제) |
| `--device-name` | 동기화 버전 기록에서 이 클라이언트를 식별하는 장치 이름 |
| `--config-dir` | 설정 디렉토리 이름 (기본값: `.obsidian`) |
### `ob sync-status`
보관함의 동기화 상태 및 설정을 표시해요.
```
ob sync-status [--path <local-path>]
```
### `ob sync-unlink`
보관함의 동기화 연결을 해제하고 저장된 자격 증명을 제거해요.
```
ob sync-unlink [--path <local-path>]
```
## 네이티브 모듈
Obsidian Headless에는 Windows와 macOS에서 파일 생성 시간(birthtime)을 설정하기 위한 사전 빌드된 네이티브 애드온이 포함되어 있어요. 이를 통해 서버에서 파일을 다운로드할 때 원래 생성 타임스탬프가 보존돼요.
이 애드온은 N-API 버전 3을 대상으로 하므로, 컴파일된 바이너리는 ABI가 안정적이며 재컴파일 없이 여러 Node.js 버전에서 작동해요.
Linux에서는 birthtime이 지원되지 않아 애드온이 포함되지 않으며, 동기화는 이 기능 없이 정상적으로 작동해요.
사전 빌드된 바이너리는 다음 플랫폼에 포함되어 있어요:
- `win32-x64`
- `win32-arm64`
- `win32-ia32`
- `darwin-x64`
- `darwin-arm64`