For users already familiar with Cloudflare and Obsidian plugin installation. If you need more detail, see the Beginners Guide.
In Obsidian: Settings → Community Plugins → Browse, search Secure-Smart-Sync, install and enable it. Or install manually by copying main.js, manifest.json, and styles.css into .obsidian/plugins/Secure-Smart-Sync/.
In Cloudflare Dashboard → R2, create a new bucket. Name it anything. Keep it private (do not enable public access).
R2 Overview → Manage R2 API Tokens → Create API Token. Grant Object Read & Write on your bucket. Copy the Access Key ID, Secret Access Key, and Endpoint URL.
Open Obsidian Settings → Secure-Smart-Sync. Fill in Endpoint, Bucket, Access Key ID, and Secret Access Key. Hit Test Connection — you should see "Connected successfully".
Under Encryption, enter a strong password. Leave the method as OpenSSL AES-CBC unless you need rclone-compatible filename encryption.
Toggle on Smart Sync under Automation. Then click the SSS ribbon icon to trigger your first manual sync. Done.
| Setting | Default | Notes |
|---|---|---|
Smart Sync | Off | Recommended. Handles idle sync and cross-device notification automatically. |
Idle time before sync | 7 s | Seconds of inactivity before Smart Sync fires. |
Encryption Method | OpenSSL AES-CBC | Use rclone-base64 to also encrypt file names. |
Conflict Resolution | Keep newer | Losing side is saved as .conflict backup. |
Delete Behaviour | System trash | Deletions go to OS trash by default — safest option. |
Sync Config Dir | Off | Enable to also sync .obsidian/ settings across devices. |
Ignore Paths | — | Glob patterns, one per line. e.g. *.tmp or archive/. |
Running into something unexpected? Check the Troubleshooting guide.