Publish to VPS
approvedby Jonathan ROUQUETTE
Publish selected vault folders to your personal VPS with property-based filtering and remote upload. - This plugin has not been manually reviewed by Obsidian staff.
Publish to VPS — Obsidian Plugin
Publish selected vault folders to your personal VPS with property-based filtering and remote upload.
Features
- Property-based file filtering (include/exclude by frontmatter properties)
- Remote upload via configurable VPS endpoint
- Incremental sync — only changed files are uploaded
- Desktop-only (requires Node.js file system access)
Network use disclosure
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.
Self-hosted server (required)
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.
Installation
From Obsidian Community Plugins
Search for "Publish to VPS" in Obsidian's community plugin browser.
Manual
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Copy them into
<your-vault>/.obsidian/plugins/vps-publish/ - Enable the plugin in Obsidian settings
Development
Prerequisites
- Node.js 22+
- npm
Setup
git clone https://github.com/JoRouquette/vps-publish.git
cd vps-publish
npm install
Commands
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
Project structure
src/ # Plugin source (Obsidian entry point, settings, UI)
libs/
core-domain/ # Domain model (entities, value objects, interfaces)
core-application/ # Application services (use cases, orchestration)
Release
Releases are automated via semantic-release on every push to main.
Commit messages follow the Conventional Commits spec.
Related repositories
This repository is a read-only mirror generated from the monorepo on every stable release. Please open issues and pull requests on the monorepo.
- Monorepo (source of truth, issues, full docs): https://github.com/JoRouquette/obsidian-vps-publish
- Docker image (server: API + site): https://hub.docker.com/r/jorouquette/obsidian-vps-publish
- Domain library mirror: https://github.com/JoRouquette/vps-publish-core-domain
- Application library mirror: https://github.com/JoRouquette/vps-publish-core-application
License
MIT — see LICENSE
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.