retoor d91246967c chore: rebrand all user-facing strings from RBox to MyWebdav across docs, emails, and config
Replace every occurrence of "RBox" with "MyWebdav" in README.md, invoice templates, welcome emails, share notifications, FastAPI metadata, default database filename, domain name, S3 bucket name, TOTP issuer, and WebDAV realm header to reflect the commercial rebranding of the application.
2025-11-13 11:05:05 +00:00

MyWebdav

MyWebdav is a commercial cloud storage web application designed for secure, scalable file management and sharing. Built with modern web technologies, it provides a comprehensive solution for individuals and organizations seeking full control over their data storage.

Features

Core Functionality

  • File Management: Upload, download, organize, and manage files with a hierarchical folder structure
  • User Authentication: Secure login with optional two-factor authentication (TOTP)
  • File Sharing: Generate shareable links with customizable permissions and expiration dates
  • Search: Full-text search across file names, metadata, and content
  • Thumbnails: Automatic generation of image and video thumbnails for quick browsing
  • Photo Gallery: Dedicated gallery view with date-based organization and lazy loading
  • File Requests: Create forms for external users to submit files securely
  • Activity Logging: Comprehensive audit trail of all file operations
  • Teams: Organizational structure with role-based access control

Storage & Performance

  • Multiple Storage Backends: Support for local filesystem and S3-compatible object storage
  • WebDAV Protocol: Native WebDAV support for seamless integration with desktop clients
  • SFTP Support: Secure file transfer protocol for advanced users
  • Caching: Redis-based caching for improved performance
  • Background Processing: Asynchronous task queues for thumbnail generation and file processing
  • Quota Management: Configurable storage limits per user

Security & Compliance

  • Encryption: TLS certificate management with Let's Encrypt integration
  • At-Rest Encryption: Optional encryption of stored files
  • End-to-End Encryption: Client-side encryption mode for maximum security
  • IP Whitelisting: Enterprise-grade access controls
  • Audit Logging: Detailed logs of all permission changes and access attempts

Collaboration & Communication

  • Real-time Activity Feed: Live updates on file operations across teams
  • Commenting System: File-level discussions with email notifications
  • Email Integration: SMTP configuration for notifications and invitations
  • Webhook Support: Integration with external services via webhooks

Administration

  • Billing Integration: Stripe-powered subscription management and invoicing
  • Usage Analytics: Detailed reporting on storage consumption and bandwidth usage
  • Admin Console: Centralized user management and system monitoring
  • API Access: RESTful API for third-party integrations

Installation

Prerequisites

  • Python 3.12+
  • PostgreSQL 15+
  • Redis 7+
  • Docker and Docker Compose (recommended)

Quick Start with Docker

  1. Clone the repository and navigate to the project directory
  2. Copy the environment template:
    cp .env.example .env
    
  3. Edit .env with your configuration (database credentials, secrets, etc.)
  4. Start the services:
    docker-compose up -d
    
  5. Access the application at https://your-domain.com

Manual Installation

  1. Install dependencies:

    pip install poetry
    poetry install
    
  2. Set up the database:

    createdb mywebdav
    
  3. Configure environment variables in .env

  4. Run database migrations:

    poetry run mywebdav --migrate
    
  5. Start the application:

    poetry run mywebdav --host 0.0.0.0 --port 8000
    

Configuration

MyWebdav uses environment variables for configuration. Key settings include:

  • DATABASE_URL: PostgreSQL connection string
  • REDIS_URL: Redis connection URL
  • SECRET_KEY: JWT signing key (generate a secure random key)
  • DOMAIN_NAME: Your domain for HTTPS certificates
  • SMTP_*: Email server configuration
  • STRIPE_*: Payment processing credentials
  • STORAGE_PATH: Local storage directory path

See .env.example for a complete list of configuration options.

Usage

Web Interface

Access the web application through your browser. The interface provides:

  • File browser with drag-and-drop upload
  • Folder management and navigation
  • Search and filtering capabilities
  • User profile and settings
  • Administrative controls (for admins)

API Usage

MyWebdav provides a comprehensive REST API. Example requests:

# Upload a file
curl -X POST "https://your-domain.com/api/files/upload" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "file=@example.txt"

# List files
curl -X GET "https://your-domain.com/api/files/" \
  -H "Authorization: Bearer YOUR_TOKEN"

# Create a share link
curl -X POST "https://your-domain.com/api/shares/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"file_id": 123, "expires_at": "2024-12-31T23:59:59Z"}'

WebDAV Access

Mount MyWebdav as a network drive using WebDAV:

https://your-domain.com/webdav/

SFTP Access

Connect via SFTP using your MyWebdav credentials on port 22.

Deployment

Production Deployment

  1. Set up a reverse proxy (Nginx included in docker-compose.yml)
  2. Configure SSL certificates (automatic with Let's Encrypt)
  3. Set up database backups
  4. Configure monitoring and logging
  5. Scale as needed with load balancers

Docker Compose Services

  • app: FastAPI application with Gunicorn
  • db: PostgreSQL database
  • redis: Caching and session storage
  • nginx: Reverse proxy and static file serving
  • certbot: SSL certificate management

Environment Variables

Configure all services through the .env file. Sensitive data is automatically loaded and validated.

Security Considerations

  • Change default secrets in production
  • Enable HTTPS with valid certificates
  • Regularly update dependencies
  • Monitor access logs
  • Implement backup strategies
  • Use strong passwords and enable 2FA

Troubleshooting

Common Issues

  • Database connection errors: Verify DATABASE_URL configuration
  • File upload failures: Check storage permissions and quotas
  • Email not sending: Confirm SMTP settings
  • WebDAV connection issues: Ensure proper authentication

Logs

Application logs are available in the Docker containers:

docker-compose logs app

Support

For issues and questions:

  • Check the troubleshooting section
  • Review configuration examples
  • Consult the API documentation at /docs when running

License

This project is licensed under the MIT License. See the LICENSE file for details.

S
Description
A dropbox clone made with FastAPI, vanilla JS, vanilla CSS, Postgress. sqlite, tortoise. It even has webdav support.
Readme
3 MiB
Languages
Python 47.4%
JavaScript 26.3%
HTML 17.4%
CSS 8.1%
Makefile 0.7%