Obsidian.md directly in your browser.
Container based on Docker Baseimage KasmVNC by linuxserver.
As of Apr. 6th 2024, linuxserver released their image of Obsidian.
Going forward, I highly recommend using their image, I will keep this image up to date though.
Supports Docker Mods for those interested in using git.
Under no circumstances expose this container to anything but your local machine, unless you really know what you're doing.
Failure to practice proper security could lead to exposure of your vault.
Some snippets to get you started.
services:
obsidian-docker:
image: ghcr.io/lanjelin/obsidian-docker:latest
container_name: obsidian-docker
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Oslo
- DRINODE=/dev/dri/renderD128 # select GPU
ports:
- "3000:3000" #http
- "3001:3001" #https
volumes:
- /path/to/vaults:/config/obsidian
devices:
- /dev/dri:/dev/dri # enable GPU Accel
restart: unless-stopped
docker run -d \
--name=obsidian-docker \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/Oslo \
-e DRINODE=/dev/dri/renderD128 \
-p 3000:3000 \
-p 3001:3001 \
-v /path/to/vaults:/config/obsidian \
--device /dev/dri:/dev/dri \
--restart unless-stopped \
ghcr.io/lanjelin/obsidian-docker:latest
I've inlcuded a template to make it a fast process setting this up in UnRaid.
Simply run the following to download the template, then navigate to your Docker-tab, click Add Container, and find Obsidian in the Template-dropdown.
wget -O /boot/config/plugins/dockerMan/templates-user/my-Obsidian.xml https://raw.githubusercontent.com/Lanjelin/docker-templates/main/lanjelin/obsidian.xml
The application can be accessed at:
This container is based on Docker Baseimage KasmVNC which means there are additional environment variables and run configurations to enable or disable specific functionality.
Variable | Description |
---|---|
CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default 3000. |
CUSTOM_HTTPS_PORT | Internal port the container listens on for https if it needs to be swapped from the default 3001. |
CUSTOM_USER | HTTP Basic auth username, abc is default. |
PASSWORD | HTTP Basic auth password, abc is default. If unset there will be no auth |
SUBFOLDER | Subfolder for the application if running a subfolder reverse proxy, need both slashes IE /subfolder/ |
TITLE | The page title displayed on the web browser, default "KasmVNC Client". |
FM_HOME | This is the home directory (landing) for the file manager, default "/config". |
START_DOCKER | If set to false a container with privilege will not automatically start the DinD Docker setup. |
DRINODE | If mounting in /dev/dri for DRI3 GPU Acceleration allows you to specify the device to use IE /dev/dri/renderD128 |
Variable | Description |
---|---|
--privileged |
Will start a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. For increased performance mount the Docker directory inside the container to the host IE -v /home/user/docker-data:/var/lib/docker . |
-v /var/run/docker.sock:/var/run/docker.sock |
Mount in the host level Docker socket to either interact with it via CLI or use Docker enabled applications. |
--device /dev/dri:/dev/dri |
Mount a GPU into the container, this can be used in conjunction with the DRINODE environment variable to leverage a host video card for GPU accelerated appplications. Only Open Source drivers are supported IE (Intel,AMDGPU,Radeon,ATI,Nouveau) |
This container is capable of delivering a true lossless image at a high framerate to your web browser by changing the Stream Quality preset to "Lossless", more information here. In order to use this mode from a non localhost endpoint the HTTPS port on 3001 needs to be used. If using a reverse proxy to port 3000 specific headers will need to be set as outlined here.