A Docker container that runs the full-featured Logseq desktop application in a web browser, providing access to all desktop features including plugins and HTTP API functionality.
While Logseq offers a web application, its functionality is highly limited compared to the desktop version. The web app doesn't support plugins and, more importantly, doesn't expose an HTTP API server that can be used for automation and integrations.
This Docker container solves these limitations by running the complete Logseq desktop application in a containerized environment, accessible through your web browser. This gives you:
- Full plugin support - Use all available Logseq plugins
- HTTP API access - Integrate Logseq with other tools and workflows
- Desktop feature parity - Access all features available in the desktop version
- Remote accessibility - Run Logseq on any headless server (AWS, Azure, self-hosted, NAS devices, etc.)
This container uses KasmVNC technology to stream the desktop Logseq application to your web browser:
- Base Infrastructure: Built on LinuxServer's KasmVNC base image, which provides a web-accessible VNC server
- Desktop Application: Downloads and installs the official Logseq desktop application (AppImage for x86_64, ZIP package for ARM64)
- Web Streaming: KasmVNC streams the desktop application interface directly to your browser - no additional VNC client needed
- Full Functionality: Since it's the actual desktop application running in a Linux environment, all features work exactly as they would on your local machine
The result is seamless access to the complete Logseq desktop experience through any modern web browser, while maintaining full compatibility with plugins and API functionality.
This container supports multiple architectures and will automatically detect your system:
- x86_64 (Intel/AMD 64-bit) - Uses Logseq AppImage
- ARM64/aarch64 (Apple Silicon, ARM servers, ARM-based NAS) - Uses Logseq ZIP package
docker run -d \
--privileged \
-p 3000:3000 \
-p 12315:12315 \
-v config:/config \
-v notes:/notes \
--name logseq \
nulinspiratie/docker-logseq:latestdocker run -d \
--privileged \
-p 3000:3000 \
-p 12315:12315 \
-v /path/to/your/existing/config:/config \
-v /path/to/your/existing/notes:/notes \
--name logseq \
nulinspiratie/docker-logseq:latestReplace /path/to/your/existing/config and /path/to/your/existing/notes with the actual paths to your existing Logseq configuration and notes directories.
After running the container, access Logseq at http://localhost:3000
The container uses two main volumes for data persistence:
/config- Logseq configuration and settings/notes- Your Logseq notes and data
Docker will create and manage these volumes automatically:
-v config:/config \
-v notes:/notes \To use existing config files or notes folders from your host system, use absolute paths:
# Use existing directories
-v /path/to/your/existing/config:/config \
-v /path/to/your/existing/notes:/notes \
# Example with real paths
-v /home/user/.logseq:/config \
-v /home/user/Documents/LogseqNotes:/notes \Important Notes:
- Use absolute paths (starting with
/) for bind mounts - Ensure the directories exist on your host system before running the container
- The container runs as a specific user, so make sure the directories are readable/writable
- On Linux/macOS, you may need to adjust permissions:
chmod -R 755 /path/to/your/directories
3000- Web interface for accessing Logseq12315- HTTP API server
Most NAS systems (Synology, QNAP, etc.) support Docker containers:
- Open your NAS Docker interface
- Search for
nulinspiratie/docker-logseq - Set up the volumes:
- For new setups: Use named volumes (
configandnotes) - For existing data: Map to existing folders on your NAS
/config→ your preferred config folder (e.g.,/volume1/docker/logseq/config)/notes→ your Logseq notes folder (e.g.,/volume1/LogseqNotes)
- For new setups: Use named volumes (
- Map ports
3000and12315 - Enable privileged mode
- Access Logseq at
http://your-nas-ip:3000
To contribute or modify this project:
# Clone the repository
git clone https://github.com/nulinspiratie/docker-logseq.git
cd docker-logseq
# Build the Docker image
docker build -t logseq-dev .docker run -d \
--privileged \
-p 3000:3000 \
-p 12315:12315 \
-v config:/config \
-v notes:/notes \
--name logseq-dev \
logseq-dev- Make changes to the dockerfile or configuration
- Rebuild the image:
docker build -t logseq-dev . - Stop and remove the old container:
docker stop logseq-dev && docker rm logseq-dev - Run the updated image using the command above
The image is automatically built and published when you push to the main branch. To create a new versioned release:
git tag v0.10.13
git push origin v0.10.13This will trigger automated builds for both version-tagged and latest images.
- Navigate to Logseq URL (e.g.
localhost:3000) - Press three dots (
...) on the topright ->Settings - Go to
Advanced-> EnableDeveloper Mode - Go to
Features-> EnableHTTP APIs Server-> PressRestart App - Once app is restarted, press
APIin topright - Go to
Server Configuration-> SetHostto0.0.0.0 - Again press
API->Start Server - Verify that API url is working (e.g.
localhost:12315) - Add a bearer token (and also add to any apps that require it)
This project is based on the original work by @CorrectRoadH. Thank you for the initial implementation!