Skip to content

Navigation Menu

Sign in
Appearance settings

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

Appearance settings

a-wing/filegogo

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Filegogo
Filegogo

send.22333.fun

A file transfer tool that can be used in the browser webrtc p2p

Github Actions Go Report Card GitHub Release License

Demo.gif

Deploy on your self server

docker run -p 8080:8080 ghcr.io/a-wing/filegogo:latest server

Architecture

filegogo-arch

Components

  • app
    • server
    • webapp
    • client-cli (current, have many problems)
  • lib
    • libfgg.js (only browser)
    • libfgg.go
    • libfgg.rs

Build && Install

make

Run Development

Webapp

npm install

# frontend
# Default Listen port: 3000
# Auto Proxy port: 8080
npm run dev

Server

# Default Listen port: 8080
go run ./main.go server

Client

run cli client. For example:

# send command
go run ./main.go send -s http://localhost:8080/6666 <file>

# recv command
go run ./main.go recv -s http://localhost:8080/6666 <file>

Config

Reference iceServer config

Built-in turn server

# Enable Built-in turn server
[turn]

# if no set, use random user
user = "filegogo:filegogo"

realm = "filegogo"
listen = "0.0.0.0:3478"

# Public ip
# if aws, aliyun
publicIP = "0.0.0.0"
relayMinPort = 49160
relayMaxPort = 49200

iceServer Use Other

For example: coturn

Docker Deployment Coturn

docker run -d --network=host --name=coturn coturn/coturn:alpine \
           -n --log-file=stdout \
           --min-port=49160 --max-port=49200 \
           --lt-cred-mech --fingerprint \
           --no-multicast-peers --no-cli \
           --no-tlsv1 --no-tlsv1_1 \
           --realm=filegogo \
           --user=filegogo:filegogo \
           --external-ip='$(detect-external-ip)' \
           --relay-ip='$(detect-external-ip)' \
           --listening-ip='$(detect-external-ip)' \
           --listening-device=eth0

Test Deployment

# Test stun
turnutils_stunclient cn.22333.fun
turnutils_stunclient stun.22333.fun

# Test turn
turnutils_uclient -u filegogo -w filegogo -y cn.22333.fun
turnutils_uclient -u filegogo -w filegogo -y turn.22333.fun

Package Manager Deployment

apt install coturn
# /etc/turnserver.conf

listening-ip={YOUR_IP_ADDRESS}
relay-ip={YOUR_IP_ADDRESS}

# Public ip
# if aws, aliyun
external-ip={YOUR_IP_ADDRESS}

fingerprint
lt-cred-mech
user=filegogo:filegogo
realm=filegogo

Acknowledgments

About

A file transfer tool that can be used in the browser webrtc p2p

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 6

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.