简体中文 | English
👉EXPERIENCE NOW: EasyTransfer
EasyTransfer is a free, anonymous, encrypted, and easy-to-use E2EE file transfer tool. You only need to visit a simple web page to connect to any device in any network using a device code.
It is built using webRTC and Vue.js, and there is
- NO need to install any software
- NO need to register an account
- NO need to scan QR codes
- NO need to share URL links
- NO need to upload files to the server1
- NO need to worry about the network environment
- Visit EasyTransfer on the two devices where you need to transfer files.
- Enter the four-digit device code of any device into the device code input box of the other device and click the connect button.
- After waiting for the connection to succeed, you can drag and drop the file to the file area on the web page, or click the file area to select the file. Supports sending multiple files at once.
- In the settings, you can customize the STUN server and TURN server, or specify the maximum number of connections.
- This project is hosted on a free server. Please do not abuse it.
-
Fork this project.
-
Click the button below to import the entire project into glitch.
You can also choose to use the automated deployment script provided by this project. All you need to do is create a new project in Glitch and run the following command in the project's console:
git config receive.denyCurrentBranch ignore
Then set up Secrets in GitHub and set
GLITCH_GIT_URL
to the Git URL of your Glitch project.Whenever you push code to the
main
branch, GitHub Actions will automatically sync the code to the Glitch project. -
The changes you may need to make to the code include:
- IceServers: modify
iceServers
in./client/src/stores/connect.js
to your own STUN and TURN server addresses; - SignalServerUrl: modify
VITE_SIGNAL_SERVER_URL
in./client/.env.production
to your own signaling server address; - You may also need to modify
VITE_SIGNAL_SERVER_URL
in./client/.env.development
to use a different signaling server address in the development environment to avoid conflicts with the production environment.
- IceServers: modify
-
Open GitHub Pages and select the
gh-pages
branch as the source. GitHub Actions will automatically build and deploy.
-
Clone this project:
git clone https://github.com/WCY-dt/EasyTransfer.git cd EasyTransfer
-
For the signaling server, run in the project root directory:
docker build -t server-image -f ./Dockerfile . docker run -d -p 3000:3000 server-image
You can modify the exposed port number as needed.
-
Modify the signaling server address in the client code. In
./client/.env.production
, modifyVITE_SIGNAL_SERVER_URL
to the signaling server address you just deployed. -
Modify the STUN and TURN server addresses in the client code. If you have additionally deployed STUN and TURN servers, you can modify
iceServers
in./client/src/stores/connect.js
to your own STUN and TURN server addresses. -
For the client web page, run:
cd client docker build -t client-image -f ./Dockerfile . docker run -d -p 80:80 client-image
You can modify the exposed port number as needed.
- Support large file transmission
- Optimize transmission speed
- Support photo transmission
- Support plain text transmission
- Support parallel transmission
- Thanks to metered for providing free STUN and TURN servers.
- Thanks to glitch for providing free signaling servers.
Thanks to Ruanyifeng for the recommendation!
Footnotes
-
If the communicating peers need to penetrate the intranet, the file may be uploaded to the free TURN server provided by this project. You can avoid this by deploying a trusted TURN server yourself. ↩