mirror of
https://github.com/MercuryWorkshop/adrift.git
synced 2025-05-12 22:00:02 -04:00
readme update
This commit is contained in:
parent
7247439445
commit
bc80f9171c
1 changed files with 37 additions and 7 deletions
44
README.md
44
README.md
|
@ -1,8 +1,12 @@
|
|||
_surf_the_\_web_adrift\_
|
||||
_surf_the_web_adrift_fix_ --------- "ce why do you keep making stupid proxies with zero use case"
|
||||
|
||||
# Adrift
|
||||
|
||||
Adrift is a Decentralized proxy utilizing the WebRTC protocol.
|
||||
Adrift is a fast and modern decentralized web proxy network, utilizing transport over WebRTC.
|
||||
|
||||
Clients will invisibly connect to one of several tracking servers to exchange an "offer". From there, it uses NAT traversal to link up with a random exit node also running adrift, without the need to port forward. This lightens the load on individial server hosters and makes the network difficult to effectively block. [more information](https://coolelectronics.me/blog/surf-the-web-adrift)
|
||||
|
||||
See a functional demo [here](https://adrift-6c1f6.web.app/)
|
||||
|
||||
### Before everything..
|
||||
|
||||
|
@ -16,13 +20,9 @@ pnpm build
|
|||
cd ..
|
||||
```
|
||||
|
||||
### Getting started
|
||||
|
||||
Currently, there aren't any middle nodes, only an exit node which is requires nodejs to run.
|
||||
|
||||
### Getting started with the server
|
||||
|
||||
inside the server/ directory, run `pnpm install`, followed by `pnpm dev`
|
||||
inside the server/ directory, run `pnpm install`, followed by `pnpm start`
|
||||
|
||||
### Getting started with the client
|
||||
|
||||
|
@ -55,3 +55,33 @@ cd frontend/
|
|||
pnpm install
|
||||
VITE_ADRIFT_DEV=1 VITE_ADRIFT_SINGLEFILE= pnpm dev
|
||||
```
|
||||
|
||||
# To host a tracker...
|
||||
|
||||
As of now, the project relies on at least one central tracking server to keep offers forwarded smoothly. If you have the infrastructure to keep a tracker of your own running 24/7 and want to host one yourself, here's how to.
|
||||
|
||||
Create a new firebase project. Enable authentication and a realtime DB. Set these rules in the realtime DB
|
||||
|
||||
```
|
||||
{
|
||||
"rules": {
|
||||
"peers":{
|
||||
"$uid": {
|
||||
".read": "$uid === auth.uid",
|
||||
".write": "$uid === auth.uid"
|
||||
}
|
||||
},
|
||||
"swarm": {
|
||||
"$id": {
|
||||
".read": true,
|
||||
".write":true,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Next, create a service account with all permissions. Download the authentication file and save it to `tracker/src/admin-creds.json`
|
||||
cd into `tracker/`, `pnpm start`, and make sure to choose a port with the `PORT` environment variable that's accessible from the internet.
|
||||
|
||||
Open `tracker-list/index.ts`, and add a new entry. Name your entry accordingly, copying in the client-side firebase tokens for the `firebase` field, and putting the domain where your tracker is available in the `tracker` field. After testing, submit a PR and if we trust you, it will be merged and your tracker will show as an option.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue