Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Send and receive files securely through Tor.

License

NotificationsYou must be signed in to change notification settings

ciehanski/onionbox

Repository files navigation

A basic implementation ofOnionShare in Go.Mostly built as a fun project, onionbox is still a WIP so usage is not guaranteed secure,yet.

Key Features:

  • All files are stored in memory andnever written to disk. The bytes fromeach uploaded file are written to an individualzip buffer (in memory, and also compressed 😄) and then written directlyto the response for download. Zip was chosen since it is the most universal archivingstandard that is supported by all operating systems.
  • You have the ability to encrypt the uploaded files' bytes ifthe content is extra sensitive. AES-GCM-256 is used for encryption. This means, while stored in memory, the files' byteswill be encrypted as well.If password encryption is enabled, recipients will need to enter the correct passwordbefore the download.
  • You have the ability to limit the number of downloads per download linkgenerated.
  • You have the ability to enforce that download links automatically expire after a specific duration of your choosing.
  • 2-way file sharing. For instance, if you are the recipient of confidential informationbut the sender is not technically-savvy, you yourself can run an onionbox server, send them thegenerated .onion URL and have them upload the files directly for you to download.
  • Can be run in a Docker container, or locally on your host machine. You couldof course deploy onionbox to any cloud provider of your choosing.
  • Static binary! Woo!

onionbox Example-1onionbox Example-2

TODO:

  • Implement more tests
  • Android support (build almost working)
  • Windows support
  • ARM support
  • QR Code Generation
  • Add another mode supporting cli-only upload from disk

Build/Install

The easiest way to installonionbox will be to download the applicable binaryfrom thereleases section. You can also install if you have theGo toolchaininstalled and if you are running a flavor of Linux. This will not work with Windows or macOS. This will take a long time, roughly ~10 minutes. You can build from source with theMakefile:

$ git clone https://github.com/ciehanski/onionbox.$cd onionbox&& make build

Usage

Once you have theonionbox binary simply make it executable and run it with the various flagsprovided:

$ chmod +x onionbox$ ./onionbox -lport 8080 -debug    -lport<int>: tell onionbox which port to make your onion service locally    run on.    -rport<int>: tell onionbox which port to make your onion service remotely    available on.    -torv3<bool>: tell onionbox to run on torv3 or torv2.    -torrc<string>: utilize a custom Torrc file to run your onion service.    -debug<bool>: tell onionbox to print debug logs or silence logs.

Contributing:

Contributions and PRs are welcome!

You can get started by either forking or cloning the repo. After, you can get startedby running:

make run

This will go ahead and build everything necessary to interface with Tor. After composehas completed building, you will have a newonionbox container which will be yourdev environment.

Anytime a change to a .go or .mod file is detected the container will rerun withthe changes you have made. You must save in your IDE or text editor for thechanges to be picked up. It takes roughly ~35 seconds for onionbox to restart afteryou have made changes.

You can completely restart the build with:

make restart

Run tests:

makeexecmaketest

Get container logs:

make logs

Shell into docker container:

makeexec

Lint the project:

make lint

License:

  • AGPLv3

FOSSA Status


[8]ページ先頭

©2009-2025 Movatter.jp