Jonathan ROUQUETTE176 downloadsPublish selected vault folders to your personal VPS with property-based filtering and remote upload.
Publish selected vault folders to your personal VPS with property-based filtering and remote upload.
This plugin uploads the notes and assets you explicitly select for publication to your own self-hosted VPS endpoint, which you configure in the plugin settings. No other remote service is contacted: no third-party servers, no telemetry, no analytics, no ads. No account or payment is required. The plugin does not access files outside your vault.
The plugin lists the files of your vault (vault.getFiles, getMarkdownFiles, getAllLoadedFiles) in four places. Every listing is local, read-only and held in memory only:
Nothing from these listings is sent anywhere. Only the notes of the folders you configured (minus your ignore rules) and the assets those notes embed are uploaded, to your own server.
The plugin publishes to a server you host. A single Docker image ships everything (Node API + Angular site):
docker run -d --name obsidian-vps-publish \
-p 127.0.0.1:3000:3000 \
-e API_KEY=change-me \
-v $(pwd)/content:/content \
-v $(pwd)/assets:/assets \
jorouquette/obsidian-vps-publish:latest
Then point the plugin at your endpoint (Base URL + API key). Full production guide (nginx TLS front, firewall, auto-updates): VPS setup guide (version française).
The image and the plugin are versioned in lockstep: image X.Y.Z pairs with plugin X.Y.Z.
Search for "Publish to VPS" in Obsidian's community plugin browser.
main.js, manifest.json, and styles.css from the latest release<your-vault>/.obsidian/plugins/vps-publish/git clone https://github.com/JoRouquette/vps-publish.git
cd vps-publish
npm install
npm run dev # Watch mode (incremental build)
npm run build # Production build → main.js
npm run lint # ESLint
npm run lint:fix # ESLint with auto-fix
npm run test # Jest
npm run test:coverage # Jest with coverage report
src/ # Plugin source (Obsidian entry point, settings, UI)
libs/
core-domain/ # Domain model (entities, value objects, interfaces)
core-application/ # Application services (use cases, orchestration)
Releases are automated via semantic-release on every push to main.
Commit messages follow the Conventional Commits spec.
This repository is a read-only mirror generated from the monorepo on every stable release. Please open issues and pull requests on the monorepo.
MIT — see LICENSE