This repository has been archived on 2021-07-08. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2020-12-05 20:59:38 -08:00
.gitignore Add --skip-mdns to allow full bypassing of zeroconf. This allows operation within iOS 2020-12-04 02:12:32 -08:00
config.go Use os.MkdirAll() instead of os.Mkdir() for cases where ~/Downloads is nonexistant 2020-12-05 17:18:22 -08:00
deviceDiscovery.go Add FatalHook for graceful shutdown in case of Fatal log 2020-12-03 09:32:03 -08:00
fileCrypto.go Add comments describing Zstd compression 2020-12-05 16:55:22 -08:00
files.go If GET /index fails, retry in 500ms 2020-12-05 20:59:38 -08:00
go.mod Implement dir type and add Zstd compression 2020-12-05 16:47:04 -08:00
go.sum Implement dir type and add Zstd compression 2020-12-05 16:47:04 -08:00
keyCrypto.go Add FatalHook for graceful shutdown in case of Fatal log 2020-12-03 09:32:03 -08:00
keyExchange.go Clean up unnecessary code 2020-12-04 12:55:55 -08:00
logging.go Add FatalHook for graceful shutdown in case of Fatal log 2020-12-03 09:32:03 -08:00
main.go Add makefile and improve error message for no args 2020-12-04 23:44:19 -08:00
Makefile Add macOS rule to makefile and add information to readme 2020-12-05 00:19:03 -08:00
README.md Clarify README and add dir type to it 2020-12-05 16:58:19 -08:00

OpenSend

Send files between systems quickly and securely

Usage

Receiver

  • Use opensend -r to start the receiver

Sender

  • Use opensend -s -t <type> -d <data>
  • type can be
    • url
    • file
    • dir
  • data can be
    • A website URL
    • A file path
    • A directory path
  • Example: opensend -s -t url -d "https://google.com"
  • Example: opensend -s -t file -d ~/file.txt
  • Example: opensend -s -t dir -d /home/user

Building

  • This project uses go modules, so building is easy
  • First, go 1.14+ must be installed (use buster-backports on debian)
  • Then, run make inside the project's directory.
  • This will get the dependencies and compile all the files.

Installing

To install, simply follow the building instructions and then run

  • Linux: sudo make install
  • macOS: sudo make install-macos

Using on iOS

Opensend can run on iOS using the iSH app.

  • Install go using apk add go
  • Clone this repository
  • Run make
  • Use opensend as normal, but skip device discovery
    • Device discovery does not work properly in iSH due to Alpine Linux
    • When running receiver, add --skip-mdns
    • When running sender, add --send-to <IP>
    • This applies bidirectionally
  • Known issues
    • Opensend takes a while to become ready on iOS

Ports to whitelist

  • TCP 9797 for key exchange
  • TCP 9898 for file transfer