Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebDAV Server Manager

A cross-platform WebDAV server manager with both Graphical (GUI) and Command-Line (CLI) interfaces, built on WsgiDAV and Cheroot.

Features

  • 🖥️ Dual interface — GUI (PySide6) & interactive CLI (Rich/Click)
  • One-shot modepython main.py serve --dir /path
  • 🔐 Basic authentication support
  • 🔒 Read-only mode
  • 📋 Real-time log viewer in both GUI and CLI
  • 💾 Persistent configuration (~/.webdav-server/config.json)
  • ♻️ Hot restart without losing configuration

Quick Start

# Install dependencies
pip install -r requirements.txt

# Launch GUI (or fallback to CLI if no display)
python main.py

# Force CLI interactive mode
python main.py --cli

# One-shot serve
python main.py serve --dir /path/to/share --port 8080

CLI Usage

Usage: python main.py [OPTIONS] COMMAND [ARGS]...

Commands:
  start    Start the server (blocks until Ctrl+C)
  serve    Quick one-shot directory serving
  status   Show server status
  config   View or reset saved configuration

Interactive Shell

Run python main.py or python main.py --cli to enter the interactive shell:

 webdav> start --dir /home/share --port 9090 --auth --user admin
 webdav> status
 webdav> stop
 webdav> config show
 webdav> help
 webdav> quit

GUI

The GUI provides a visual configuration panel with:

  • Directory browser picker
  • Host / port settings
  • Read-only & authentication toggles
  • Start / Stop / Restart buttons
  • Live scrolling log output

Configuration

Persistent config is stored at ~/.webdav-server/config.json:

{
  "host": "0.0.0.0",
  "port": 8080,
  "root_dir": ".",
  "readonly": false,
  "auth": false,
  "username": "",
  "password": "",
  "verbose": 1
}

Dependencies

  • Python 3.10+
  • WsgiDAV — WebDAV server
  • Cheroot — Pure-Python HTTP server
  • Click — CLI framework
  • Rich — Terminal UI
  • PySide6 — GUI (optional, falls back to CLI)

License

This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages