diff --git a/README.md b/README.md index c1c098e..23cc345 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@
- Run Obsidian in the browser. No VNC required. + Run Obsidian in the browser. No remote desktop required.
@@ -52,11 +52,13 @@ Ignis has **no built-in authentication**. The server is completely open by defau If you are exposing Ignis to the internet, **you should really** put an authentication layer in front of it. Options include: -- A reverse proxy with basic auth (nginx, Caddy, Traefik) +- A reverse proxy with Basic Auth (nginx, Caddy, Traefik) - An SSO proxy like Authelia, Authentik, or OAuth2 Proxy - A VPN (Tailscale, WireGuard) - Cloudflare Application Tunnel +Example for Basic Auth, and Authelia can be found [here](examples). + > [!CAUTION] > Do not run Ignis on a public network without auth. Anyone with the url can read and write your vault files. diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 01fa103..facfca5 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -24,7 +24,7 @@ The shim layer makes Obsidian think it's running in Electron. The bridge plugin ### Loading -The Obsidian index file is patched to run the shim loader first. It replaces the module system and makes a blocking HTTP request to fetch the vault's directory tree into memory. The request has to be blocking because Obsidian makes synchronous filesystem calls during page load, before the event loop is running, so the cache has to already be populated. +Obsidian's index file is intercepted during serving and the shim loader is loaded ahead of Obsidian's own scripts. It replaces the module system and makes a blocking HTTP request to fetch the vault's directory tree into memory. The request has to be blocking because Obsidian makes synchronous filesystem calls during page load, before the event loop is running, so the cache has to already be populated. ### Modules @@ -49,7 +49,7 @@ Sync calls use synchronous XHR to ensure blocking behavior. Async calls use fetc ### IPC -IPC is faked with a synchronous dispatcher that maps channel names to handlers. +IPC is implemented as a synchronous dispatcher that maps channel names to handlers. ### Obsidian Plugin Compatibility @@ -97,4 +97,4 @@ A basic plugin system for extending the server. Still early, the core lifecycle An Ignis plugin is a Node.js package under `server/plugins/