Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/donnchac/onionsprout
OnionSprout is a tool to run publicaly-accessible web services, for example from Raspberry Pi in your home, without a public IP.
https://github.com/donnchac/onionsprout
onionservice tor
Last synced: about 2 months ago
JSON representation
OnionSprout is a tool to run publicaly-accessible web services, for example from Raspberry Pi in your home, without a public IP.
- Host: GitHub
- URL: https://github.com/donnchac/onionsprout
- Owner: DonnchaC
- Created: 2020-10-03T16:26:57.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2020-10-03T16:50:33.000Z (about 4 years ago)
- Last Synced: 2023-04-05T03:19:05.969Z (over 1 year ago)
- Topics: onionservice, tor
- Language: Go
- Homepage:
- Size: 1.95 KB
- Stars: 9
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# OnionSprout
OnionSprout is a tool to run publicaly-accessible web services, for example from Raspberry Pi in your home, without a public IP. Additionally because traffic is routed via the Tor network you home location and IP address is kept private.
The tool involved a publicly accessible server, the OnionGateway, which transparently routes TLS
connections to your web server over a Tor onion service. Your onion service will have a public domain name and will be accessible by anyone without using Tor. All connections are end-to-end encrypted from the user to your onion service.## Installation
The tool can install by cloning the repo and building the go package.
```
go get github.com/DonnchaC/onionsprout
```To run you will need to have Tor running on the computer where you will host your server. OnionSprout will automatically provison a Tor onion server.
## Usage
Currently this tool sets up a local webserver which will automatically request a LetsEncrypt certifcate from the first connection. The webserver will show a test page.
```
DOMAIN=yoursubdomain.example-gateway.com onionsprout
```## TODO
The tool should have a CLI to:
- Register and configure a new subdomain or domain
- Start a new onion address and store the private key and configuration
- Configure the tool to terminate TLS connections and forward to the local service.## Example CLI
The public domain will run the OnionGateway proxy. You can host it yourself or use a service run by a third party. A third party server will have it's own interface for registering your subdomain.
```
$ onionsprout init
Enter public domain: yoursubdomain.example-gateway.com
Enter token: XXXXXXXXXXXXXXXXXXXXXXXXX
Onion address private key (leave blank to generate):
Generating onion address.....
Generated onion address: uih5owv3h5huiyyjf7rnlkimpmh3hz2qdmqjqyvazcbau2lucjh3woyd.onion
Destination server (plaintext request will be forwarded here): localhost:8080
Stored new configutation at /etc/onionsprout/yoursubdomain.example-gateway.com.yml
```Later OnionSprout can be started as a server:
```
$ onionsprout
Loading onionsprout configurations from /etc/onionsprout/
Started client service onion service on uih5owv3h5huiyyjf7rnlkimpmh3hz2qdmqjqyvazcbau2lucjh3woyd.onion forwarding to localhost:8080
...
```or
```
onionsprout yoursubdomain.example-gateway.com
Loading onionsprout configurations from /etc/onionsprout/yoursubdomain.example-gateway.com
```