Make an onion site (aka HTTP over onion services) up and running from a directory, a file, zip archive contents or another HTTP server.
Onion services are end-to-end encrypted, metadata-free and forward-secure (see design overview). Much love to onion services.
You have to have Go 1.8+ installed to build onionize
.
CLI-only version:
$ go get github.com/nogoegst/onionize/cmd/onionize
CLI + GUI version (reqiures GTK3 installed):
$ go get -tags gui github.com/nogoegst/onionize/cmd/onionize
If you have troubles setting up GUI version straight away, try to build it using Docker (see /dockerfiles). Also you may look into Dockerfiles themselves to reproduce building steps on your host OS.
To onionize things pass the path to them with optional aliases:
$ onionize /path/to/thing:/things/thing1 /path/to/another/thing:/things/thing2
or the URL:
$ onionize https://example.com/
Pass -zip
flag to serve from the zip archive.
Grab the onion link from stdout
and errors/info from stderr
.
That's it.
To run onionize
in GUI mode just don't specify any path.
Select target type, open your file/directory and click onionize
:
Then you can grab the link from a text field:
You can find more screenshots in docs
.
You may also specify a passphrase from which onion service identity key will be derived. Thus you can preserve same .onion address across setups.
Identity passphrase can be specified on stdin
by setting -p
flag in CLI
or in corresponding field in GUI.
One may load a typical onion private key from a file:
$ onionize -id-key onion.key /path/to/the-thing
You can specify tlspin private key
via -tlspin-key
flag.
When running with -local
flag TLS enabled by default via tlspin with
a generated ephemeral key.
One can also specifying paths to X.509 key and certificate:
$ onionize -tls-cert server.crt -tls-key server.key /path/to/the-thing
To disabe TLS run onionize
with -no-tls
.
I want to thank Micah Lee for OnionShare tool by which onionize was inspired.