Breaking Free from VNC: Running Obsidian as a True Self-Hosted Web App
Let's be honest: knowledge management tools come and go, but Obsidian has earned its place as a serious contender for anyone serious about building a personal knowledge base. The "files over apps" philosophy resonates deeply with developers and power users who want control over their data. But what happens when you want to access that carefully crafted Zettelkasten from a corporate laptop, a borrowed device, or just a browser while traveling? Traditionally, this meant either syncing everything locally (not always possible on restricted devices) or dealing with janky VNC wrappers that made text editing feel like driving with the parking brake on.
I've been down this road myself. The VNC-based solutions work, technically speaking. You get Obsidian running somewhere on a server, and you access it through your browser. Clipboard support exists, IME works, and you can technically do your work. But there's something fundamentally unsatisfying about controlling a remote desktop through a web interface. High latency turns every keystroke into a waiting game, and the whole experience feels like a workaround rather than a proper solution.
This is where Ignis enters the picture, and honestly, it's been a game-changer.
What Makes Ignis Different
Unlike traditional VNC approaches that essentially give you a remote desktop session, Ignis takes advantage of Obsidian's Electron foundation to deliver something closer to a native web application. The interface renders properly in your browser, and the experience feels considerably more responsive because it isn't sending entire screen frames across the network.
Getting Ignis deployed is refreshingly straightforward. Whether you prefer Docker or Podman, the setup process is well-documented and container-friendly. For those running rootless containers in their homelabs (a growing trend among the self-hosted crowd), Ignis plays nicely with that workflow.
The real question, though, is how you handle vault synchronization when you introduce multiple web sessions.
The Synchronization Puzzle
Here's where things get interesting—and where I spent considerable time figuring out the right approach.
If you're using the official Obsidian Sync, there's Obsidian Headless to consider. But many power users, myself included, have settled on Obsidian LiveSync for its flexibility. The challenge? LiveSync's indexing database lives in browser local storage, not on the server. To LiveSync, every new browser session looks like a completely different device.
This becomes a problem the moment you open Ignis in a second browser window. Suddenly, LiveSync thinks it's a fresh device and starts uploading everything again. In a collaborative or multi-device setup, this isn't just annoying—it's a data corruption risk waiting to happen.
The naive solution is to simply disable community plugins in Ignis. But that means losing essential plugins like Calendar and Tasks, which breaks the consistency of your workflow across devices. Not ideal.
After digging into the LiveSync repository, I discovered they've recently added a dedicated CLI tool for headless operation. The documentation had some mismatches with the actual implementation (classic open-source gotcha), but once you understand the mechanics, you can run LiveSync as a daemon that properly handles synchronization without browser-based quirks.
Rounding Out the Terminal Experience
One trade-off when moving to a pure web deployment: the official Obsidian CLI becomes inaccessible. For those of us who love working from the terminal, this felt like a significant loss. Fortunately, the community has answers here too. Tools like notesmd-cli provide similar functionality for headless environments. Just remember to configure your preferred terminal editor rather than expecting Obsidian to launch—the desktop app simply isn't there in this setup.
On Authentication
I want to pause on something important: Ignis doesn't include built-in authentication by default. Some might view this as a drawback, but in the self-hosted ecosystem, this is often a feature. It means you can integrate with your existing authentication stack.
For those running multiple self-hosted applications, solutions like Tinyauth with Pocket ID passkey support allow you to gate access without maintaining yet another set of credentials. Your entire self-hosted infrastructure becomes a cohesive, securely authenticated ecosystem—which is exactly how homelab enthusiasts have been building things for years.
The Bottom Line
After months of experimentation with various approaches, the Ignis-plus-headless-LiveSync combination has transformed how I work with my vault. The web interface finally feels like a proper application rather than a remote desktop workaround, synchronization works reliably across sessions, and I maintain terminal access for those quick edits.
For developers and tech-savvy users who take their knowledge management seriously, this kind of self-hosted setup represents the best of both worlds: you get the powerful features and plugin ecosystem of Obsidian, combined with the accessibility and control that comes from running your tools on infrastructure you own.
Your knowledge base shouldn't be trapped behind proprietary sync services or locked to specific devices. With the right combination of tools, you can have a truly portable, truly yours, Obsidian experience that works from any browser, anywhere.
What's your current approach to accessing your knowledge base on the go? Drop your thoughts below—always curious to hear how others have solved similar challenges in their homelabs and workflows.