-
-
Notifications
You must be signed in to change notification settings - Fork 0
Description
π Issue Description:
β¨ Feature Overview:
Implement a Golang-based file watcher that continuously monitors a local Obsidian vault (Markdown files + folder structure), and automatically syncs modified files to the configured S3 bucket after a debounce period of 5 minutes.
π§ Use Case:
This will allow users to work on their Obsidian notes locally and have them automatically backed up and accessible through the LNX Vault app. It bridges the gap between local Markdown workflows and the web UI.
π¦ Expected Behavior:
-
Watch a configurable directory (e.g.,
~/ObsidianVault) -
Detect file creations, edits, deletions in
.mdfiles and folders -
Wait for 5 minutes after the last change (debounce)
-
Upload changed/added files to their respective paths in the connected S3 bucket
-
Maintain folder structure
-
Optionally delete removed files from S3 (can be behind a flag)
-
Use environment variables to configure:
- Watch directory path
- S3 keys, bucket, region, endpoint (for Spaces or S3-compatible providers)
π Security & Auth:
- S3 credentials will be pulled from a local
.envor system env - The tool should run locally (CLI or daemon mode), no need to expose any web endpoints
βοΈ Tech Requirements:
- Language: Go
- Packages: Suggest using [fsnotify](https://github.com/fsnotify/fsnotify) for watching + [aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) for S3 integration
- Support .env file parsing using
[godotenv](https://github.com/joho/godotenv)
π Folder Structure Example:
π ~/ObsidianVault
β£ π Personal
β β π journal.md
β£ π Work
β β π project-notes.md
Should be mirrored to:
s3://lnx-vault/parthkapoor/Personal/journal.md
s3://lnx-vault/parthkapoor/Work/project-notes.md
β Acceptance Criteria:
- Local file watcher handles changes efficiently
- S3 sync works and respects directory structure
- Sync only triggers after 5 min of inactivity
- No duplicate uploads if file is unchanged
- Configurable paths and secrets via
.env - Runs on Linux/Mac/Windows
π Additional Context:
This enhancement makes the Vault usable as a personal Obsidian cloud backend β allowing users to work offline, then access notes, dotfiles, or guides from anywhere via the web UI at [lnx.parthkapoor.me](https://lnx.parthkapoor.me).