frindlymap/server
diadmin 076412dcdb Friendly Map 첫 커밋: 안드로이드 플랫폼 추가와 analyze·시험 통과
- flutter create --platforms=android 로 android/ 생성, tool/android_patch.py 적용
- android_patch.py: minSdk 를 낮추지 않고 23 미만일 때만 올림 (Flutter 기본 24 유지)
- lint 8건 정리, SQLite 계약 시험이 이전 메모리 DB 를 재사용하던 문제 수정
- transport_test: python3 가 없으면 python, py 로 보관함 서버 실행

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 10:43:20 +09:00
..
Containerfile Friendly Map 첫 커밋: 안드로이드 플랫폼 추가와 analyze·시험 통과 2026-10-26 10:43:20 +09:00
README.md Friendly Map 첫 커밋: 안드로이드 플랫폼 추가와 analyze·시험 통과 2026-10-26 10:43:20 +09:00
mailbox_server.py Friendly Map 첫 커밋: 안드로이드 플랫폼 추가와 analyze·시험 통과 2026-10-26 10:43:20 +09:00
mailbox_store.py Friendly Map 첫 커밋: 안드로이드 플랫폼 추가와 analyze·시험 통과 2026-10-26 10:43:20 +09:00
phone_verify.py Friendly Map 첫 커밋: 안드로이드 플랫폼 추가와 analyze·시험 통과 2026-10-26 10:43:20 +09:00
test_mailbox.py Friendly Map 첫 커밋: 안드로이드 플랫폼 추가와 analyze·시험 통과 2026-10-26 10:43:20 +09:00
test_verify.py Friendly Map 첫 커밋: 안드로이드 플랫폼 추가와 analyze·시험 통과 2026-10-26 10:43:20 +09:00

README.md

보관함 서버

잠긴 봉투를 받는 사람이 접속할 때까지 잠시 맡아 두는 우체통입니다. 봉투 속은 기기끼리만 풀 수 있어서 서버는 내용을 읽지 못합니다.

실행 (파이썬만 있으면 됨)

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통까지 맡습니다.