Skip to content

A lightweight Python HTTP server with file upload support, smart directory listing, and automatic filename collision handling - No dependencies required.

License

Notifications You must be signed in to change notification settings

LilSuperUser/ViperTransfer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ViperTransfer

ViperTransfer is a lightweight, standalone server powered by Python3's built-in HTTP server. It allows you to serve files, upload via browser, and automatically handle filename collisions - All without a single external dependency.


Features

  • Smart Directory Listing Styled HTML UI that displays file names, sizes, and last modified timestamps.
  • Human-Readable File Sizes Files are displayed in B, KB, MB, GB, etc., with clean formatting.
  • Drag-and-Drop File Uploads Upload single or multiple files directly from your browser using a clean form interface.
  • Safe File Saving Prevents overwriting by appending numeric suffixes to duplicate file names.
  • No External Dependencies Built entirely with Python's standard libraries (http.server, cgi, os, urllib, etc.).

Installation & Setup

1. Clone the repository and make the script executable

git clone https://github.com/LilSuperUser/ViperTransfer.git
cd ./ViperTransfer
chmod +x file-server.py

2. (Optional) Add the script to your PATH

This allows you to run the server from anywhere and serve the directory you are currently in.


Usage

Start the server:

file-server.py [port]

# or

python file-server.py [port]
  • If no port is provided, it defaults to 8000
  • Example: file-server.py 8080

Open the server in your browser:

http://localhost:[port]/

# if port is 8000 then
http://localhost:8000/

You'll see the directory contents and a file upload form.


Access from Other Devices

  • The server binds to 0.0.0.0, making it accessible from all local network interfaces.

  • To transfer files between two machines (on same network):

    • Start the server on machine A.

    • Find its local IP address (eg: 192.168.100.9)

    • From machine B, open:

      http://192.168.100.9:8000

      ​ (or whatever port you used)

You can expose the server globally by using port forwarding - but do so with caution and proper security in place.


UI Preview

UI Preview


License

This project is licensed under the GPL v3 License. You are free to use, modify, and distribute this software under the terms of the GPL v3 license


Contributions

Contributions are welcome!!

  1. Fork this repository
  2. Create a new branch
  3. Commit your changes
  4. Push to your fork
  5. Open a pull request

About

A lightweight Python HTTP server with file upload support, smart directory listing, and automatic filename collision handling - No dependencies required.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages