Logseq Sync Alternative
Self-hosted file sync for Logseq using WebDAV server for cross-device synchronization.
Overview
WebDAV (Web Distributed Authoring and Versioning) is an HTTP protocol extension that enables collaborative editing and file management on remote web servers. Developed in the late 1990s as RFC 4918, WebDAV transforms any HTTP server into a network file system, allowing clients to perform operations like creating, changing, and moving documents on a server. This makes it an ideal protocol for synchronizing files across devices, particularly for applications like note-taking tools that require consistent data availability.
This stack combines the lightweight Bytemark WebDAV server with NGINX as a reverse proxy to create a robust file synchronization service specifically optimized for Logseq. The Bytemark WebDAV container provides a standards-compliant WebDAV implementation with HTTP Basic authentication, while NGINX handles SSL termination, request routing, and provides additional security layers. Together, they create a self-hosted alternative to commercial sync services, giving users complete control over their note data and synchronization infrastructure.
This solution is perfect for privacy-conscious knowledge workers, teams requiring data sovereignty, and organizations that need to keep sensitive research or business notes within their own infrastructure. The combination offers enterprise-grade reliability while remaining simple enough for individual users to deploy on personal servers, making it an excellent choice for anyone seeking independence from cloud-based sync services without sacrificing functionality or cross-platform compatibility.
Key Features
- RFC 4918 compliant WebDAV server supporting standard file operations across all major operating systems
- HTTP Basic authentication with configurable username/password pairs for secure access control
- NGINX reverse proxy providing SSL/TLS termination and HTTP/2 support for encrypted synchronization
- Event-driven NGINX architecture optimizing performance for concurrent Logseq client connections
- WebDAV PROPFIND and PROPPATCH support enabling Logseq metadata synchronization and conflict resolution
- NGINX rate limiting and connection management preventing sync conflicts during high-frequency updates
- Cross-platform compatibility supporting Logseq desktop, mobile, and web clients simultaneously
- WebDAV LOCK/UNLOCK mechanisms ensuring data integrity during concurrent editing sessions
Common Use Cases
- 1Personal knowledge management with Logseq synchronization across desktop and mobile devices
- 2Small research teams sharing and collaborating on interconnected notes and documentation
- 3Academic institutions providing students with self-hosted note synchronization infrastructure
- 4Consulting firms maintaining client confidentiality by keeping project notes on private servers
- 5Privacy-focused individuals avoiding commercial sync services like iCloud or Dropbox for personal data
- 6Remote development teams synchronizing technical documentation and meeting notes across time zones
- 7Healthcare organizations maintaining HIPAA-compliant patient note synchronization for authorized staff
Prerequisites
- Minimum 256MB RAM for NGINX Alpine container and WebDAV server concurrent operation
- Ports 80, 443, and 8080 available for HTTP, HTTPS, and direct WebDAV access respectively
- SSL certificates configured for production HTTPS access (Let's Encrypt or commercial CA)
- Basic understanding of WebDAV protocol and Logseq sync configuration settings
- Network firewall rules allowing WebDAV traffic on configured ports from client devices
- WEBDAV_USER and WEBDAV_PASSWORD environment variables configured for authentication
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 webdav: 3 image: bytemark/webdav:latest4 ports: 5 - "8080:80"6 environment: 7 AUTH_TYPE: Basic8 USERNAME: ${WEBDAV_USER}9 PASSWORD: ${WEBDAV_PASSWORD}10 volumes: 11 - webdav_data:/var/lib/dav12 networks: 13 - logseq-net14 restart: unless-stopped1516 nginx: 17 image: nginx:alpine18 ports: 19 - "80:80"20 - "443:443"21 volumes: 22 - ./nginx.conf:/etc/nginx/nginx.conf:ro23 depends_on: 24 - webdav25 networks: 26 - logseq-net27 restart: unless-stopped2829volumes: 30 webdav_data: 3132networks: 33 logseq-net: 34 driver: bridge.env Template
.env
1# WebDAV Credentials2WEBDAV_USER=logseq3WEBDAV_PASSWORD=secure_passwordUsage Notes
- 1WebDAV at http://localhost:8080
- 2Configure Logseq sync settings
- 3Works with any WebDAV client
- 4Cross-platform synchronization
Individual Services(2 services)
Copy individual services to mix and match with your existing compose files.
webdav
webdav:
image: bytemark/webdav:latest
ports:
- "8080:80"
environment:
AUTH_TYPE: Basic
USERNAME: ${WEBDAV_USER}
PASSWORD: ${WEBDAV_PASSWORD}
volumes:
- webdav_data:/var/lib/dav
networks:
- logseq-net
restart: unless-stopped
nginx
nginx:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- webdav
networks:
- logseq-net
restart: unless-stopped
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 webdav:5 image: bytemark/webdav:latest6 ports:7 - "8080:80"8 environment:9 AUTH_TYPE: Basic10 USERNAME: ${WEBDAV_USER}11 PASSWORD: ${WEBDAV_PASSWORD}12 volumes:13 - webdav_data:/var/lib/dav14 networks:15 - logseq-net16 restart: unless-stopped1718 nginx:19 image: nginx:alpine20 ports:21 - "80:80"22 - "443:443"23 volumes:24 - ./nginx.conf:/etc/nginx/nginx.conf:ro25 depends_on:26 - webdav27 networks:28 - logseq-net29 restart: unless-stopped3031volumes:32 webdav_data:3334networks:35 logseq-net:36 driver: bridge37EOF3839# 2. Create the .env file40cat > .env << 'EOF'41# WebDAV Credentials42WEBDAV_USER=logseq43WEBDAV_PASSWORD=secure_password44EOF4546# 3. Start the services47docker compose up -d4849# 4. View logs50docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/logseq-sync-server/run | bashTroubleshooting
- 401 Unauthorized errors: Verify WEBDAV_USER and WEBDAV_PASSWORD environment variables match Logseq client credentials
- Logseq sync timeout failures: Increase NGINX proxy_read_timeout and proxy_send_timeout values in nginx.conf
- WebDAV PROPFIND method not allowed: Ensure nginx.conf allows WebDAV methods (PROPFIND, PROPPATCH, MKCOL, DELETE)
- File corruption during sync: Check WebDAV container disk space and verify volume mount permissions are correctly set
- SSL certificate verification errors: Configure proper SSL certificates in NGINX or disable certificate verification in Logseq client for self-signed certificates
- High memory usage during large graph sync: Adjust NGINX worker processes and implement request rate limiting for WebDAV endpoints
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download