Skip to content
/ mup Public

A micro file uploader written in Go to easily share files over LAN

License

Notifications You must be signed in to change notification settings

aziis98/mup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

μploader - Micro Uploader

Build and Release

screenshot

A simple file uploader that can be used to easily move and share files across the local network between devices with a web browser.

It only uses Go Chi and pflag as dependencies and the releases provide a statically linked binary for Linux.

Motivation. Sometimes I want to move files between my pc and a device I do not own that has an old browser version (that generally means expired https certificates, oh and without any cables). When I try to search for a tool like this I always find random outdated projects that aren't easy to setup. So I made this tool that can be easily installed on all linux systems.

Demo

I have setup a demo hosted on glitch.me that clears the uploads every couple of minutes. This is just to preview the UI, use at your own risk:

https://checkered-pyrite-garage.glitch.me

Installation

Static Binary from Release

Run the following command to install the latest version to ~/.local/bin/mup

curl -sSL https://raw.githubusercontent.com/aziis98/mup/main/install | sh

Then you can run mup from anywhere in your terminal, the default upload directory is Uploads so this can even be run directly from the home folder (only the files inside Uploads are served to the client).

Git

$ git clone https://github.com/aziis98/mup
$ cd mup

# Run the server
$ go run -v .

# Build the binary
$ go build -v -o bin/mup .

Dockerfile

I provide this just to easily deploy on a local server. I do not recomend to expose this publicly on the web as there is no auth or password and there is no upload limit to the number of files and all files in the Uploads/ folder are public by default for now.

$ docker build -t mup .
$ docker run -p 5000:5000 -v $PWD/Uploads:/Uploads mup

# On a LAN go to "<ip from below>:5000"
$ ip addr | grep 'inet 192'

Usage

$ mup --help
Usage:
  mup [OPTIONS] [UPLOAD_FOLDER]

A micro file uploader, the default upload folder is 'Uploads'

Options:
  -h, --host string           Host to run the server on (default "0.0.0.0")
  -s, --max-upload-size int   Maximum upload size in MB (default 100)
  -p, --port int              Port to run the server on (default 5000)

To Do

  • Decrease minimum requirements (make this work without js, now needed for the upload with live progress bar)

  • Update Github Action to make a release for the Raspberry Pi (aarch64 and armv7l)