Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lorenzodifuccia/http.server

(Beautiful) replacement for the `http.server` Python3 module. Allows file upload, preview and much more.
https://github.com/lorenzodifuccia/http.server

bootstrap5 flask html5 http-server python python3

Last synced: 3 days ago
JSON representation

(Beautiful) replacement for the `http.server` Python3 module. Allows file upload, preview and much more.

Awesome Lists containing this project

README

        

# http.server
A (_beautiful_) replacement for the `http.server` Python3 module.

`pip3 install beautify-http-server`

Features:
- File download 🤷‍♂️
- File **upload** 🤩
- **Preview** (pdf, text, image, music, **video**) 🧐
- List files in `.zip` and `.tar` archives remotely, with the ability to **view** or **download** a single entry 😮
- **Mobile-friendly** 🤳

## Example

- **Preview**:

- **Mobile**:



> _Dev Tips_: force to view a zip-like file by passing `#zip` in the URL 😉


## Usage
After installation (`pip3 install beautify-http-server`, see below), run:
```bash
$ # to serve current working directory, on 127.0.0.1:8000
$ http.server

$ http.server --bind 0.0.0.0 --port 8080 --folder ~/Downloads

$ http.server -h
usage: http.server [-h] [--bind BIND] [--port PORT] [--folder FOLDER]
[--debug | --no-output]

optional arguments:
-h, --help show this help message and exit
--bind BIND Specify bind address [default: 127.0.0.1]
--port PORT Specify server port [default: 8000]
--folder FOLDER Specify which directory to serve [default: current working
directory]
--debug Use "flask.run" in Debug mode instead of "waitress" WSGI
server
--no-output Disable server output (set logging.level >= WARNING)
```

> ### **ATTENTION**: this program is meant to be run locally, do not expose on Internet!


## Installation
As easy as:
```bash
$ pip3 install beautify-http-server
```

Otherwise:
```bash
$ # (Optional)
$ virtualenv venv && source venv/bin/activate

$ git clone https://www.github.com/lorenzodifuccia/http.server
$ cd http.server
$ pip install .

$ python3 -m http_server ...
OR
$ http.server ...
```

This project has the following dependencies:
- Python3 (see [`requirements.txt`](requirements.txt))
- Flask [[link](https://flask.palletsprojects.com/en/2.2.x/)]
- Waitress [[link](https://docs.pylonsproject.org/projects/waitress/en/stable/index.html)]
- Humanize [[link](https://github.com/python-humanize/humanize)]
- HTML5
- Bootstrap 5 (CSS + JS) [[link](https://getbootstrap.com/docs/5.2/getting-started/introduction/)]
- Bootstrap Icons [[link](https://icons.getbootstrap.com/)]


## Future
Known issues:
- HTML5 and Browsers do not fully support `.mkv` files


Made with <3 by [me](https://www.github.com/lorenzodifuccia)