No description
Move error classes from services/ and file-operations/ into a new errors/ directory (authentication-error, server-version-mismatch-error, sync-reset-error, file-not-found-error), plus add file-already-exists-error and http-client-error. Update consts.ts and utils/* (await-all, create-client-id, hash, rate-limit, find-matching-file). Replace data-structures (locks, min-covered, event-listeners, fix-sized-cache) and add debugging utilities (in-memory-file-system, log-to-console, slow-web-socket-factory). Removes utils/create-promise.ts. |
||
|---|---|---|
| .forgejo/workflows | ||
| .github | ||
| .vscode | ||
| docs | ||
| frontend | ||
| scripts | ||
| sync-server | ||
| .editorconfig | ||
| .gitignore | ||
| CLAUDE.md | ||
| manifest.json | ||
| package-lock.json | ||
| README.md | ||
| rustfmt.toml | ||
VaultLink self-hosted Obsidian plugin for file syncing
Develop
Set up Node.JS 25 with nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bashnvm install 25nvm use 25- Optionally, set the system-wide default:
nvm alias default 25
Set up Rust
- Install
rustup:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - Install
wasm-pack:curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh cargo install cargo-insta sqlx-cli
Install Obsidian on Linux
apt install flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub md.obsidian.Obsidian
flatpak run md.obsidian.Obsidian
Run in development mode
Start the server:
cargo install sqlx-cli
cd sync-server
cargo run config-e2e.yml
cd frontend
npm install
npm run dev
Scripts
Before pushing
scripts/check.sh --fix
Update HTTP API TS bindings
scripts/update-api-types.sh
Publish new version
scripts/bump-version.sh patch
Run E2E tests
scripts/e2e.sh 8
And to clean up the logs & database files, run scripts/clean-up.sh