28 lines
1.4 KiB
Markdown
28 lines
1.4 KiB
Markdown
# 보관함 서버
|
|
|
|
잠긴 봉투를 받는 사람이 접속할 때까지 잠시 맡아 두는 우체통입니다.
|
|
봉투 속은 기기끼리만 풀 수 있어서 서버는 내용을 읽지 못합니다.
|
|
|
|
## 실행 (파이썬만 있으면 됨)
|
|
|
|
python3 mailbox_server.py --port 8080 --db mailbox.sqlite3
|
|
|
|
## 컨테이너로 실행
|
|
|
|
podman build -t fm-mailbox -f Containerfile .
|
|
podman run -d -p 8080:8080 -v fm-data:/data fm-mailbox
|
|
|
|
## 시험
|
|
|
|
python3 test_mailbox.py
|
|
|
|
## 알아둘 점
|
|
|
|
- 저장 방식은 `mailbox_store.py` 의 `MailboxStore` 약속만 지키면 바꿀 수 있습니다 (클라우드로 옮길 때 이 파일만 교체).
|
|
- 기본: 우편함은 처음 연 기기의 비밀값에 묶입니다(번호를 먼저 선점당할 수 있음).
|
|
- 문자 확인을 켜면(`--sms-webhook <주소>` + `--require-verify`) 문자로 번호를 확인한 기기만 우편함을 열 수 있어 선점이 막힙니다.
|
|
문자 발송은 웹훅 하나(`POST {"to":"+82...","text":"..."}`, 선택적으로 `--sms-webhook-token`)라 업체에 묶이지 않습니다.
|
|
`phone_verify.py` 의 `SmsSender` 를 바꾸면 다른 방식도 쓸 수 있습니다. 시험용 `--sms-log` 는 실서비스에서 쓰지 마세요.
|
|
- 인터넷에 열 때는 앞에 HTTPS 를 붙이세요 (Caddy, nginx 등).
|
|
- 봉투는 30일 안에 못 받아 가면 정리되고, 받는 사람 한 명당 5000통까지 맡습니다.
|