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 (runidin your terminal to check;1000is 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
- Open any web browser (Google Chrome, Firefox, Safari, or Microsoft Edge).
- Navigate to
http://YOUR-SERVER-IP:3000(orhttps://YOUR-SERVER-IP:3001for SSL). - Enter the username and password you defined in your
docker-compose.ymlfile. - You will be greeted with the familiar Obsidian welcome screen!
- Click Open folder as vault and choose
/vaults.
./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!