π 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 .md files 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
.env or system env
- The tool should run locally (CLI or daemon mode), no need to expose any web endpoints
βοΈ Tech Requirements:
π 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:
π 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).
π 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 foldersWait 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:
π Security & Auth:
.envor system envβοΈ Tech Requirements:
[godotenv](https://github.com/joho/godotenv)π Folder Structure Example:
Should be mirrored to:
β Acceptance Criteria:
.envπ 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).