Self-Hosted Tools

How to Use Obsidian in ANY Web Browser: Complete 2026 Docker Guide

Obsidian is hands-down one of the most powerful and privacy-respecting note-taking tools available today. Because all your notes are stored locally as plain .md Markdown text files on your drive, you have complete ownership over your thoughts and data.

However, Obsidian’s local-first architecture comes with one huge drawback for many users: it relies on native desktop and mobile applications.

If you work in an office where corporate IT restricts you from installing unauthorized .exe software, or if you use a lightweight Chromebook or tablet, accessing your personal knowledge base can feel nearly impossible.

In this guide, we are solving that problem permanently. By hosting Obsidian inside a lightweight Docker container using the official LinuxServer.io image, you can stream the full desktop Obsidian interface—including custom themes, community plugins, hotkeys, and interactive graph view—directly inside any standard web browser!

How It Works Behind the Scenes

The team at LinuxServer.io packages the full desktop version of Obsidian inside a container powered by KasmVNC.

Instead of running a heavy virtual machine, the container renders the graphical application headlessly on your server and streams the interface to your web browser with ultra-low latency. You can type, drag and drop files, open split panes, and use keyboard shortcuts exactly as if Obsidian were installed directly on your machine.

Step 1: The Docker Compose Configuration

To get started, create a dedicated directory on your server (for example, ~/docker/obsidian) and create a docker-compose.yml file:

services:
  obsidian:
    image: lscr.io/linuxserver/obsidian:latest
    container_name: obsidian
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - CUSTOM_USER=admin
      - PASSWORD=YourStrongPasswordHere
    volumes:
      - ./config:/config
      - ./vaults:/vaults
    ports:
      - 3000:3000
      - 3001:3001
    restart: unless-stopped

Configuration Breakdown:

  • PUID & PGID: Matches your host user and group IDs (run id in your terminal to check; 1000 is standard on Ubuntu/Debian).
  • CUSTOM_USER & PASSWORD: Sets basic HTTP authentication so strangers cannot access your web session without entering your credentials.
  • ./config: Stores Obsidian's internal settings, themes, and community plugin files persistently on your host.
  • ./vaults: The folder where your actual markdown notes and starter vaults live.
  • 3000 / 3001: Web ports for HTTP and HTTPS access.

Step 2: Set Correct Linux Folder Permissions

Docker containers can fail to launch or save notes if the underlying host folders don't have the appropriate read/write permissions.

Before launching the container, run these two quick commands inside your directory:

# Create the config and vaults folders
mkdir -p config vaults

# Ensure your local user owns the folders
sudo chown -R 1000:1000 ./vaults ./config

# Grant read/write execution permissions
chmod -R 775 ./vaults ./config

Step 3: Launch Your Container

Start your Obsidian container in detached background mode:

docker compose up -d

Docker will download the latest LinuxServer image and initialize the container in about 15 to 30 seconds.

Step 4: Open Obsidian in Your Web Browser

  1. Open any web browser (Google Chrome, Firefox, Safari, or Microsoft Edge).
  2. Navigate to http://YOUR-SERVER-IP:3000 (or https://YOUR-SERVER-IP:3001 for SSL).
  3. Enter the username and password you defined in your docker-compose.yml file.
  4. You will be greeted with the familiar Obsidian welcome screen!
  5. Click Open folder as vault and choose /vaults.
Want a Pre-Built Workspace? Unzip our free 2026 Obsidian Starter Vault directly into your ./vaults folder on the server. When you open the web interface, your entire folder structure, templates, and styling will load instantly!

How to Access Your Web Obsidian Securely from Anywhere

Now that Obsidian is running inside your browser, how do you access it when you're away from home?

Instead of risking your network with dangerous router port forwarding, pair this setup with a Cloudflare Zero Trust Tunnel.

By linking port 3000 to a custom subdomain like vault.yourdomain.com and enabling Cloudflare email OTP protection, you can safely log into your full desktop Obsidian workspace from any hotel, coffee shop, or restricted corporate device in the world with enterprise-grade security. (Read our complete Cloudflare Zero Trust Tunnel Setup Guide).

Frequently Asked Questions

Does Graph View and community plugins work in the browser?
Yes! Because this container runs the actual desktop Electron build of Obsidian, all WebGL graph animations, community plugins (Dataview, Templater, Excalidraw), and custom CSS snippets render 100% identically to native desktop.

How much RAM does the container use?
When actively streaming, the LinuxServer Obsidian container typically consumes between 180MB to 350MB of RAM, making it exceptionally lightweight even on budget servers or Proxmox nodes.

Can I sync notes to my phone simultaneously?
Yes! Because the ./vaults directory contains standard .md files, you can point Syncthing, Git, or Nextcloud at that same directory to keep your mobile Obsidian app in perfect synchronization.

Summary: Note-Taking Freedom Without Compromise

Running Obsidian inside a Docker container provides the ultimate productivity bridge: you get the uncompromised privacy and speed of a local-first markdown vault, combined with the universal accessibility of a cloud-based web app.

Check out our 3 Must-Change Obsidian Settings and our Essential Plugins Guide to finish customizing your vault!