Publish your markdown files to the web with a single click. This plugin allows you to share your Obsidian notes via public URLs with optional password protection. Host notes on your own server and access them through your custom domain — complete control over your data with no third-party dependencies.
Host on your own server, share from your own domain — keep full control over your published content without relying on third-party services.
See how your published notes look in action:
👉 Example Publication: The Law of Large Numbers
- Full control over your data - Host and store your notes on your own server
- Custom domain support - Share notes from your personal domain (e.g.,
notes.yourdomain.com) - Privacy-first - No third-party services, your content stays on your infrastructure
- Self-hosted solution - Deploy your own publishing server in minutes
- One-click publishing - Publish any markdown file instantly
- Password protection - Optionally protect publications with a password
- Publication history - Track all your published files
- Auto-copy links - Automatically copy URLs to clipboard
- Multiple access points - Publish from ribbon, file menu, editor menu, or command palette
- Update existing - Update previously published files while keeping the same URL
To use this plugin, you need to deploy your own publishing server. This gives you complete control over where your notes are stored and how they're accessed.
👉 obsidian-pub-server - Self-hosted server for publishing Obsidian notes
The server project provides:
- Ready-to-deploy server application
- Docker support for easy deployment
- Custom domain configuration
- Full API documentation
- Security best practices
Follow the instructions in the server repository to:
- Deploy the server on your infrastructure (VPS, home server, cloud)
- Configure your custom domain
- Set up SSL/HTTPS for secure connections
- Get your API URL and secret key for plugin configuration
- ⬇️ Download Latest Release
- Extract the archive
- Copy the
obsidian-pub-pluginfolder to<your-vault>/.obsidian/plugins/ - Reload Obsidian
- Enable the plugin in Settings → Community plugins
# Clone or download this repository
cd obsidian-pub-plugin
# Install dependencies
npm install
# Build the plugin
npm run buildThis will create main.js in the root directory. Copy main.js, manifest.json, and styles.css to your vault's plugin folder.
- Go to Settings → Web Publish
- Enter your API URL (your publishing server endpoint, e.g.,
https://notes.yourdomain.com/api) - Enter your Secret Key (authentication token from your server)
- Optionally set a default password
- Configure behavior preferences
- API URL - The URL of your publishing server API
- Secret Key - Authentication key for your server
- Default Password - Pre-fill password field with this value
- Auto-copy link - Automatically copy published URL to clipboard
- Show in file menu - Add publish option to file context menu
- Show in ribbon - Show publish button in left sidebar
-
Open any markdown file
-
Use one of these methods:
- Click the share icon in the ribbon
- Right-click the file → "Publish to web"
- Use the command palette: "Publish current file to web"
- Right-click in editor → "Publish to web"
-
Optionally set a password
-
Click "Publish"
-
Copy or open the generated link (will use your custom domain)
When publishing a file that's already been published:
- Update - Replace content while keeping the same URL
- Create New - Generate a new publication with a new URL
- Go to Settings → Web Publish → "Open History"
- Or use command: "View publication history"
From history, you can:
- Copy links
- Open in browser
- Navigate to source file
- Remove entries
- Search publications
Publish current file to web- Publish the active markdown fileView publication history- Open the history modalCopy last published link- Copy the most recent publication URL
Your server needs to implement these endpoints (see obsidian-pub-server for reference implementation):
Health check endpoint
Check if file exists
Create new publication
Update existing publication
Delete publication (optional)
- Secret keys are stored locally in your vault
- Passwords are not logged
- HTTPS is recommended for production use
- All requests include authorization headers
- Your data never leaves your server
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
For issues and feature requests:
- Plugin issues - Visit this repository
- Server issues - Visit obsidian-pub-server
MIT License
Enjoy publishing your notes with full control over your data! ❤️
