Metadata-Version: 2.4
Name: fluxload
Version: 1.2.3
Summary: FluxLoad: An enterprise-grade collaborative file sharing platform with real-time features, user management, and advanced search.
Home-page: https://github.com/MuadzHdz/fluxload
Author: Mu'adz
Author-email: adzhdz73@gmail.com
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Communications :: File Sharing
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Flask>=2.3
Requires-Dist: Werkzeug>=2.3
Requires-Dist: qrcode[pil]>=7.0
Requires-Dist: Flask-SocketIO>=5.3
Requires-Dist: python-socketio>=5.8
Requires-Dist: Flask-SQLAlchemy>=3.0
Requires-Dist: Flask-Login>=0.6
Requires-Dist: SQLAlchemy>=2.0
Requires-Dist: python-multipart>=0.0.6
Requires-Dist: python-jose[cryptography]>=3.3
Requires-Dist: passlib[bcrypt]>=1.7
Requires-Dist: celery>=5.2
Requires-Dist: redis>=4.5
Requires-Dist: elasticsearch>=8.9
Requires-Dist: boto3>=1.28
Requires-Dist: google-api-python-client>=2.95
Requires-Dist: google-auth-httplib2>=0.1
Requires-Dist: google-auth-oauthlib>=1.0
Requires-Dist: Pillow>=9.5
Requires-Dist: Flask-Session>=0.5
Requires-Dist: whoosh>=2.7
Requires-Dist: watchdog>=3.0
Requires-Dist: schedule>=1.2
Requires-Dist: psutil>=5.9
Requires-Dist: python-magic>=0.4
Requires-Dist: PyPDF2>=3.0
Requires-Dist: python-docx>=0.8.11
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

<div align="center">

# FluxLoad (Python Version)

![Python](https://img.shields.io/badge/Python-3.8+-blue.svg?style=for-the-badge&logo=python)
![Flask](https://img.shields.io/badge/Flask-3.0+-lightgrey.svg?style=for-the-badge&logo=flask)
![License](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)

</div>

A modern file sharing server with two modes: a simple single-user server and an advanced multi-user enterprise server.

---

## Quick Start

### Install from PyPI (Recommended)

```bash
pip install fluxload
```

### Or from source

```bash
git clone https://github.com/muadzhdz/fluxload.git
cd fluxload
pip install -r requirements.txt
```

### Basic Mode (Simple file sharing)

```bash
python -m fluxload -d /path/to/share
```

### Advanced Mode (Multi-user, admin, search, etc.)

The `fluxload` command runs the advanced server by default:

```bash
fluxload -d /path/to/share          # production mode
fluxload --dev-mode -d /path/to/share  # development mode
```

Or run directly without installing:

```bash
python -m fluxload.advanced_main -d /path/to/share
python -m fluxload.advanced_main --dev-mode -d /path/to/share
```

---

> **Note:** `--redis-url` and `--elasticsearch-url` require optional packages:
> ```bash
> pip install Flask-Session redis elasticsearch
> ```

## CLI Options

| Flag | Description |
|------|-------------|
| `-d` / `--directory` | Directory to serve (default: current dir) |
| `-p` / `--port` | Port to listen on (default: 8000) |
| `-b` / `--bind` | Bind address (default: 0.0.0.0) |
| `--password` | Enable password protection |
| `-o` / `--open` | Open browser automatically |

### Advanced-Only Options

| Flag | Description |
|------|-------------|
| `--dev-mode` | Enable development mode with auto-reload |
| `--workers` | Number of worker processes (default: 1) |
| `--max-upload-size` | Max upload size per file (default: 100MB) |
| `--storage-quota` | Default storage quota per user (default: 5GB) |
| `--disable-registration` | Disable user registration (default: enabled) |
| `--disable-file-sharing` | Disable file sharing (default: enabled) |
| `--database-url` | Database connection URL (default: SQLite) |
| `--redis-url` | Redis session storage (requires `pip install Flask-Session redis`) |
| `--elasticsearch-url` | Elasticsearch for search (requires `pip install elasticsearch`) |
| `--admin-email` | Administrator email displayed in admin dashboard |
| `--site-name` | Site name displayed in UI (default: FluxLoad Pro) |

---

## Access

Open `http://<your-ip>:8000` in any browser on the same network. A QR code is printed in the terminal for easy mobile access.

## License

MIT
