add default demo files

This commit is contained in:
Nystik
2026-05-16 18:55:42 +02:00
parent 8f85529ade
commit 91ab6c77c9
4 changed files with 119 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
# Getting Started
Ignis runs the unmodified Obsidian client in your browser, and most Obsidian features work unchanged from the desktop. Most simple community plugins will work, with some compatibility issues for plugins that invoke native modules; a list of tested plugins can be found [here](https://github.com/Nystik-gh/ignis/issues/9) If you're new to Obsidian, the [Obsidian help](https://help.obsidian.md) is the place to start.
## Try a plugin or a theme
Themes and community plugins install the way they do in regular Obsidian. Try a theme to change how things look. For plugins, Dataview and Calendar are good first picks.
## File upload and download
To get a file into your vault, use the upload button in the left ribbon, or simply drag and drop files into the UI. To get files out, right-click any note for **Download** or any folder for **Download as ZIP**.
## Workspaces in browser tabs
Obsidian's Workspaces core plugin saves and restores window layouts. The bridge plugin adds the ability to have different workspaces active in different browser tabs/windows. This enables having multiple workspaces active in different windows on multiple monitors. After enabling the Workspaces core plugin and creating some workspaces, you can run the **Open workspace in tab** command to try it out.
## Going further
If Ignis seems interesting to you, the [README on GitHub](https://github.com/Nystik-gh/ignis) covers self-hosting your own instance. Feel free to contribute on plugin compatibility tracking, bug reporting, or feature requests.

View File

@@ -0,0 +1,15 @@
# Welcome to Ignis
This is a live demo of [Ignis](https://github.com/Nystik-gh/ignis), Obsidian running in a browser tab with vault files held on a server. Edit this note, poke around the sidebar, create new vaults; changes save automatically until your session ends.
## Demo limits
- Vault data is wiped after about 30 minutes of inactivity.
- Each session can hold up to 3 vaults, capped at 700 KB total.
- Obsidian account login is disabled. (Do not put credentials into a server you do not control. Be mindful of your security.)
## What to read next
- [[What is Ignis]] for what this is and how it's put together.
- [[Getting Started]] for things specific to Ignis worth trying.
- [[What works]] for the compatibility picture and what Ignis adds on top.

View File

@@ -0,0 +1,33 @@
# What is Ignis
Ignis lets you run Obsidian in a web browser, with your vault stored on a server instead of your local disk. You open a URL and get the full Obsidian editor running in a regular browser tab: markdown, canvas, themes, community plugins, all of it.
Obsidian is a local-first app, so every install holds its own vault and its own state. Obsidian Sync replicates the vault between devices, but each device still runs its own local Obsidian with its own open notes, workspaces, and plugin configuration. The other way to reach a single Obsidian instance from elsewhere has been VNC or remote desktop, which is sluggish, bandwidth-heavy, and feels less like using an app than remote-controlling a computer. Ignis is a third option: Obsidian running on a server you control, accessed through any browser, with the vault and its state on the server.
## How it works
Ignis is made up of two parts: a compatibility layer, and a bridge plugin.
### The compatibility layer
The compatibility layer has two halves.
The first is a **server** that holds your vault and exposes its files over HTTP and WebSocket. It serves Obsidian's own application files to the browser when you open the page, and answers the filesystem questions Obsidian asks while it runs.
The second is a **browser-side shim** that loads alongside Obsidian in your tab. It replaces the Node.js and Electron APIs that Obsidian normally relies on, the filesystem module, inter-process communication, Electron's clipboard, dialogs, and so on, with browser-compatible equivalents that route those calls to the server.
Ignis itself doesn't include or distribute any of Obsidian's code. The server downloads Obsidian directly from its official source the first time you start the container, and serves it to your browser unmodified.
### The bridge plugin
The bridge plugin serves as the frontend part of Ignis, **bridging** the functionality of the server and the Obsidian app. It gets installed into each vault automatically.
The plugin provides dedicated settings tabs for Ignis specific configuration and functionality, including management of a server side plugin system (work in progress). It also provides status UI for server signals, and fills some of the obvious gaps that result from running an Electron app in the browser; adding convenient upload and download functionality among other things.
## Plugins and limits
Most plugins built on Obsidian's plugin API work in Ignis, along with themes and snippets. The compatibility layer doesn't cover Node native modules or `child_process`, so plugins that depend on those don't load. For a comprehensive list of what works and what doesn't, see the [README](https://github.com/Nystik-gh/ignis#what-doesnt-work).
## Self-hosting
Ignis is open source. If you want to run your own instance, pull the image from Docker Hub and `docker compose up -d`. Setup instructions, environment variables, and the full feature list are in the [README on GitHub](https://github.com/Nystik-gh/ignis).

View File

@@ -0,0 +1,52 @@
# What works
Most of Obsidian's features work in Ignis. Some have gaps or workarounds, and Ignis also adds things that make sense for running Obsidian in a browser.
## Obsidian features that work
- All core editor features: markdown, canvas, bases, and the command palette.
- Context menus throughout the UI.
- Image rendering, inline image URLs, and image paste from the clipboard.
- Print to PDF, via a hidden popup iframe.
- Mobile UI auto-activates when the window is under 600 px wide.
- Themes and CSS snippets.
- Most community plugins built on Obsidian's plugin API.
- Cross-origin plugin requests via `requestUrl` and `fetch`, proxied through the server.
- Obsidian Sync, in self-hosted deployments with a logged-in browser tab open.
## What doesn't work
- Plugins that depend on Node native modules or `child_process` won't load.
- Streaming `zlib` classes (`createGzip`, `createDeflate`, etc.) aren't implemented. The synchronous and callback variants work via `pako`.
- The synchronous file picker (`dialog.showOpenDialogSync`), used by plugins like Importer, has a staged-files workaround: the shim asks you to pick once and serves the result on retry. Usable but rough.
- `safeStorage` is passthrough by design: `isEncryptionAvailable()` returns `false` and `encrypt`/`decrypt` are no-ops, so anything plugins store via `safeStorage` ends up as plaintext on disk. A server-side encrypted option is planned but not yet implemented.
## What Ignis adds
### Vaults
- Custom UI for Obsidian's multi-vault support. Create, open, switch, rename, and delete vaults.
- Different vaults can be loaded in different browser tabs.
### Files
- File upload from the local machine: ribbon icon, right-click on a folder -> Upload file, or drag-and-drop into the UI.
- File and folder download: right-click any note for **Download**, or any folder for **Download as ZIP**.
### Multi-tab and workspaces
- Live file sync between browser tabs via WebSocket. Open the same vault in two tabs and edits propagate within a second.
- Saved workspaces opened in separate browser tabs via a `?workspace=` URL parameter, so each tab can hold a different layout of the same vault.
- An "Open workspace in tab" command added to the command palette by the bridge plugin.
### Sync
- Obsidian Headless is implemented as a server-side plugin for continuous sync without needing an active browser tab. Only one of Obsidian Sync or Obsidian Headless can run per vault.
### Server integration
- Server-side plugin system, separate from Obsidian's community plugin system. (WIP)
- Ignis-specific settings shown as their own tabs inside Obsidian's Settings modal.
- Status bar indicators for server state and headless sync activity.
## Performance note
- Pre-compressed bootstrap response covering vault info, vault list, metadata tree, and plugin list.
- Indexer pre-fetch warms the content cache so Obsidian's startup index hits cache instead of the network.
- LRU content cache (50 MB by default) so Ignis doesn't hold the whole vault in memory at once. Memory use stays bounded regardless of vault size.
- Write coalescing for slow filesystems (rclone, FUSE, NFS, SMB).