A lightweight WebDAV service management tool based on Python + PySide6, providing a visual configuration interface with cross-platform support.
- Pure Visual Operation - No command-line configuration required, all features accessible via GUI
- Configuration Validation - Strict validation mechanism, invalid configurations cannot be applied
- Toast Notifications - Windows-style notification system
- System Tray Support - Minimize to system tray for convenient access
- Cross-Platform - Supports Windows, Linux, and macOS
- Secure Authentication - Username/password access control
- Comprehensive Logging - Complete operation and error logging
- Client Compatibility - Supports various clients (Android, Windows, Linux)
- Python 3.7 or higher
- Supported OS: Windows 10+, Linux, macOS
- At least 100MB free disk space
# Create project directory
mkdir webdav_manager
cd webdav_managerpip install -r requirements.txt
# or
uv syncOr install manually:
pip install PySide6 wsgidav cheroot
# or
uv add PySide6 wsgidav cherootpython main.py
# or
uv run python main.py-
Start the Program
- Run
python main.py - The program will automatically create a
./datadirectory for configuration and logs
- Run
-
Configure the Service
- Share Directory: Click "Browse" to select the folder to share
- Service Port: Set the service port (recommended 8088-8099, range 1025-65535)
- Username: Set the login username
- Password: Set the login password
-
Apply Configuration
- Click "Apply Config" button
- The program will automatically validate the configuration
- Valid configurations are saved to
./data/config.json
-
Start the Service
- Click "Start Service" button
- Wait for "Service started" notification
- The interface will display the running status
-
Get Access URL
- Click "Copy Access URL" button
- Access URL format:
http://[YOUR_IP]:[PORT]/
Recommended apps:
- ES File Explorer
- Solid Explorer
- FX File Explorer
Connection steps:
- Open the app's network feature
- Add WebDAV connection
- Enter server address, username, and password
- Access files after successful connection
Method 1: Map Network Drive
- Open "This PC"
- Click "Map network drive"
- Enter address:
http://[SERVER_IP]:[PORT]/ - Enter username and password
- Complete the mapping
Method 2: Direct Access via File Explorer
- In the address bar, enter:
\\[SERVER_IP]@[PORT]\DavWWWRoot - Enter username and password
Method 1: Using davfs2
sudo apt-get install davfs2
sudo mount -t davfs http://[SERVER_IP]:[PORT]/ /mnt/webdavMethod 2: Using File Manager
- Nautilus (GNOME): Files → Connect to Server
- Dolphin (KDE): Network → Add Network Folder
ipconfigLook for the IPv4 address
ip addr
# or
ifconfigConfiguration file location: ./data/config.json
{
"share_dir": "/path/to/share",
"port": 8088,
"username": "admin",
"password": "password",
"last_update": "2024-01-01 12:00:00"
}Log file location: ./data/webdav.log
Log content includes:
- Program startup and shutdown
- Configuration changes
- Service start/stop events
- Errors and warnings
You can open the log file via the "View Log" button in the interface.
webdav_manager/
├── main.py # Main program entry
└── manager/
├── ui_manager.py # UI interface management
├── config_manager.py # Configuration management
├── service_manager.py # Service management
├── notification_manager.py # Notification management
└── tray_manager.py # System tray management
├── requirements.txt # Dependencies list
├── README.md # Documentation
├── assets/
│ └── icon.ico # Application icon
└── data/ # Data directory (auto-created)
├── config.json # Configuration file
└── webdav.log # Runtime log
A: Change the port number in the configuration, avoid commonly used ports like 80, 443, 8080. Recommended port range: 8088-8099.
A:
- Check firewall settings to ensure the port is open
- Verify client and server are on the same network
- Confirm IP address and port are correct
- Check username and password
A: Check read/write permissions for the shared directory, ensure the program has access. On Windows, you may need to run as administrator.
A: Click the "View Log" button in the interface, or directly open the ./data/webdav.log file.
A: This tool is designed for internal network environments. For external access, you need:
- Configure router port forwarding
- Set firewall rules
- Consider security (recommended use VPN)
A:
- Windows: Requires administrator privileges
- Linux: Requires root privileges or use ports above 1025
A: The program will automatically detect and reset to default configuration, just reconfigure.
-
When sharing many files
- Recommended to use SSD
- Organize directory structure reasonably
- Avoid excessively deep directory hierarchies
-
Multi-client concurrent access
- Ensure server has sufficient bandwidth
- Monitor system resource usage
-
Long-term operation
- Regularly check log file size
- Clean up log files if necessary
-
Use strong passwords
- Use complex usernames and passwords
- Change passwords regularly
-
Internal network use only
- Use only in trusted network environments
- Avoid direct exposure to the public internet
-
Permission control
- Only share necessary directories
- Regularly check shared directory content
-
Firewall configuration
- Only allow trusted IP access
- Restrict port access range
Use PyInstaller to package into standalone executable:
pip install pyinstaller
pyinstaller --onefile --windowed --name WebDAV-Manager --icon=assets/icon.ico main.pypip install pyinstaller
pyinstaller --onefile --name webdav-manager main.pyThe generated executable will be in the dist directory.
If you encounter issues, please:
- Check the log file
./data/webdav.log - Review the configuration file
./data/config.json - Refer to the FAQ section in this document
- Initial release
- Implemented basic WebDAV service functionality
- Provided visual configuration interface
- Supported cross-platform operation
- Toast notification system
- Complete logging
- System tray integration
This project is for learning and personal use only.
Enjoy your file sharing experience! 🚀
