• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
정보

Airdrop의 대체 프로젝트(?) 간편한 p2p 파일공유 snapdrop

달소 달소 539

3

5

 

안녕하세요. 달소입니다.

 

오랜만에 서버포럼의 이름에 걸맞는... 셀프호스팅용 프로젝트를 소개해드립니다!

snapdrop이란 이름에서 알수있듯이 애플의 에어드랍과 비슷한 기능을 사용할 수 있는 프로젝트입니다.

 

일반적인 파일 공유 프로젝트가 아닌 에어드랍처럼 p2p 형식으로 

셀프호스팅한 페이지에 접속된 클라이언트들을 선택해서 파일을 전송해주는 형태입니다.

 

구축한 페이지는 중계서버 역할만 하며 실제로는 WebRTC를 통해서 서로간에 데이터 전송이 이뤄지게 됩니다.

쉽게 구축힐 수 있기때문에 한번 재미로(?) 구축해보시면 되겠습니다. 같은 네트워크에 있지않더라도 중계서버에 접근이 된다면 서로간의 파일전송이 가능합니다.

 

 

Snapdrop이란?

https://github.com/RobinLinus/snapdrop

 

Snapdrop : 브라우저에서 로컬 파일 공유. Apple의 Airdrop에서 영감을 얻었습니다.

Snapdrop은 다음과 같은 멋진 기술로 구축되었습니다.

  • 바닐라 HTML5 / ES6 / CSS3 프론트엔드
  • WebRTC / 웹소켓
  • NodeJS 백엔드
  • 프로그레시브 웹 앱

 

연결은 어떻습니까? 장치에서 장치로 직접 P2P 연결입니까, 아니면 타사 서버가 있습니까?

WebRTC가 브라우저에서 지원되는 경우 P2P 연결을 사용합니다. WebRTC는 시그널링 서버가 필요하지만 연결 설정에만 사용되며 파일 전송에는 관여하지 않습니다.

 

개인 정보 보호는 어떻습니까? 파일이 타사 서버에 저장됩니까?

어떤 파일도 서버로 전송되지 않습니다. 파일은 피어 간에만 전송됩니다. Snapdrop은 데이터베이스도 사용하지 않습니다. 궁금하시다면 Server 를 살펴보세요 . Snapdrop이 전송 중인 파일을 볼 수 있더라도 WebRTC는 전송 중인 파일을 암호화하므로 서버에서 읽을 수 없습니다.

 

보안은 어떻습니까? 내 파일이 컴퓨터 간에 전송되는 동안 암호화됩니까?

예. 파일은 전송 시 암호화하는 WebRTC를 사용하여 전송됩니다.

 

이 프로젝트는 간단하게 도커로 구축할 수 있기때문에 한번 구축해보시면 나름(?) 재미있으실듯합니다.

 

도커로 snapdrop 구축하기

 

공식 깃허브에있는 docker-compose가 제대로 안되서.. linuxserver의 이미지를 사용했습니다.

 

어차피 p2p 로 서버는 중계역할만해주기때문에 이편이 오히려 간단하긴합니다.

 

image.png.jpg

 

컨테이너 생성 후 ip:8080으로 접속하면 아래처럼 잘 나오실겁니다 ㅎㅎ

 

image.png.jpg

 

이걸 두군데서 접속하게되면?

 

이렇게 브라우저와 이름이 나오는데 상대편에게 보이는 내 이름은 맨 하단

상대편이름은 중간에 나옵니다.

image.png.jpg

 

이름을 누르면 파일을 전송할 수 있습니다.

간단하게 아무거나 보내면

 

image.png.jpg

 

요로코롬 수신할수있습니다.

 

image.png.jpg

 

우클릭하면 메시지도 갑니다.

 

image.png.jpg

 

image.png.jpg

 

snapdrop용 앱도있습니다

 

앱에서 보내는것도 잘받아지는군요.

 

image.png.jpg

 

도메인을 사용하고싶으시다면 앞단에 NPM서버를 두고 ip:8080을 리버스프록시 해주시면됩니다.

 

신고공유스크랩
5
1등
게르노 2022.11.03. 00:12

내부망에선 안해봐서 모르겠는데 외부망에선 엄청 느리네요

속도가 10Mbps 아래로 나옵니다

사진 한두개는 유용하게 써도 동영상은 무리겠네요

profile image
달소 글쓴이 2022.11.03. 10:08
게르노

에어드랍 자체도 로컬네트워크에서 사용하고..

외부망을 사용하면 공인 네트워크망을사용하기때문에 회선에따라 속도편차가 꽤 클거같습니다 ㅠ

profile image 2등
행복구슬 2023.12.17. 23:51
달소님 잘몰라서 그러는데 Snapdrop 도커로 깔면 파일주고받을때 도커 저장공간이 커야하나요? ssd도커라 용량이 한정적이라 아님 중계역할만하면 저장공간이 크게 필요없을듯한데요
profile image
달소 글쓴이 2023.12.17. 23:56
행복구슬
중계역할만하기때문에 저장공간은 작아도 괜찮습니다!

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
질문 /var/www 폴더가 삭제되었습니다. ㅜ,.ㅜ 2 니속사정 19시간 전20:42 216 +1
잡담 jellyfin 자원 진짜 안쓰네요 kmw_ 21시간 전19:26 302 +1
잡담 iventoy pxe는 속도가 엄청 느리군요.. nohdd는 왜 빠르지.. 음... 2 purndal 1일 전00:52 169 +2
3900 질문
normal
맛밥 24분 전16:13 11 0
3899 질문
normal
니속사정 19시간 전20:42 216 +1
3898 잡담
image
kmw_ 21시간 전19:26 302 +1
3897 잡담
image
ljr10 21시간 전18:44 210 0
3896 질문
image
ljr10 1일 전12:45 159 0
3895 잡담
image
purndal 1일 전00:52 169 +2
3894 질문
normal
스키피95 2일 전00:07 120 0
3893 질문
normal
고심분투 2일 전17:10 204 0
3892 질문
image
경호 3일 전15:50 98 0
3891 질문
normal
경호 3일 전13:23 67 0
3890 잡담
image
기현 3일 전07:34 439 +2
3889 잡담
image
keiminem 4일 전13:12 539 0
3888 잡담
normal
달소 4일 전11:38 324 +2
3887 질문
image
EXP 4일 전23:48 94 0
3886 질문
normal
홍익 4일 전19:26 225 0
3885 정보
image
지딱코 5일 전14:31 238 +1
3884 가이드
image
달소 5일 전22:22 401 +3
3883 가이드
image
ljr10 6일 전08:20 183 0
3882 가이드
image
달소 6일 전06:46 206 +1
3881
image
달소 6일 전05:50 247 +6