Publish to VPS

approved

by 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.

49 downloadsUpdated 9d agoMIT

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

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Copy them into <your-vault>/.obsidian/plugins/vps-publish/
  3. 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.

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.