OpenRung
A free, privacy-first relay network that helps you reach the open internet. Open source and nonprofit-run.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗기획서 Downloads/DATE_CHECK_MVP_개발자전달용_최종.docx 기준으로 만든 로컬 시험판이다.
npm start # PC 서버(dev.mjs) http://localhost:4040 관리자 /admin
npm test # 핵심 규칙 시험 (네트워크 없이)
npm run images # 배경 사진 3장 다시 만들기 (gpt-image-2, 비용 발생 — 오너 승인 뒤에만)
Node 20 이상, 외부 패키지 없음. 키는 .env.local.
| 키 | 쓰는 곳 |
|---|---|
GEMINI_API_KEY, GEMINI_MODEL | 대화 분석·캡처 글자 읽기·사진 관찰 (gemini-2.5-flash) |
NAVER_CLIENT_ID, NAVER_CLIENT_SECRET | 2026-10-22 부터 쓰지 않음 — 네이버 검색 API 약관(유료 서비스 사용·수익 행위 금지) 때문에 '네이버에서 직접 보기' 버튼으로 바꿈 |
GOOGLE_VISION_API_KEY (2026-10-26 연결 — GCP winaid-461106 키 datecheck-vision, Vision API 만 허용) | 사진 도용 확인 — 같은 사진이 올라간 웹페이지(구글 Cloud Vision 웹 검색). 넣으면 바로 켜진다 |
OPENAI_API_KEY | 배경 사진 생성 스크립트만 |
ADMIN_KEY | /admin 들어가는 키 |
DATA_GO_KR_KEY (2026-10-26 연결 — 공공데이터포털 계정 키 하나) | 국세청 사업자 상태 · 공정위 통신판매·방문판매·후원방문판매·다단계 · 금융위 기업기본정보 · 심평원 병원정보. API 마다 활용신청만 따로 |
SUPABASE_URL, SUPABASE_PUBLISHABLE_KEY, SUPABASE_SECRET_KEY (2026-10-27 — Supabase 프로젝트 datecheck, 서울) | 로그인(Auth)과 데이터베이스(조회 기록·동의·횟수·문의). 서버에서만 쓰고 브라우저에는 보내지 않는다. 표 구조는 db/schema.sql |
REPORT_SECRET | 조회 기록 암호화 키(AES-256-GCM). ★운영에서 없으면 조회가 멈춘다 |
PRICE_VARIANTS·PRICE_CASEFILE·PRICE_RECHECK | 2026-10-27 결제를 없애며 뺐다 |
첫 화면(누구나) → 조회 시작 → 로그인·가입(이메일, 켜져 있으면 구글·카카오) → 약관 동의(처음 한 번) → 팝업에서 조회할 정보 선택(7종 — 2026-10-26 '이름'·'SNS 주소'·'쇼핑몰·사업체명'·'상대가 직접 말한 정보' 뺌) → 한 화면에 하나씩 입력 → 확인(이용자 책임·30일 보관 두 칸) → 13개 항목 결과가 바로 /report/아이디 → /my(내 조회)에서 30일 동안 다시 열기·지우기.
cleanInput 이 버린다.vercel.json regions: ["icn1"]. 전에는 미국 동부(iad1)에서 돌아 입력 전체가 국외로 나갔다. 구글 제미나이·Vision 으로 가는 대화·사진은 여전히 국외 이전 → 정식 처리방침에 적을 것(법 제28조의8)..ai-note)와 첫 화면 바닥글. 결과물 표시: AI 가 쓴 신호·사실(by: 'ai' — 대화 분석·사진 관찰)에 'AI 생성' 표시, 리포트 안내줄(.rp-ai), 신고용 정리본 '· AI 생성'. 같은 사진 웹 검색(Vision)은 생성형 AI 가 아니라 표시하지 않는다.api()(public/app.js) 하나로. 인터넷 끊김·연결 실패·늦음(504)·너무 큼(413)·JSON 아닌 답·서버 오류를 쉬운 말로 바꾸고, 점검·리포트 열기·문의는 화면에 남는 안내 + '다시 시도'. 설정을 못 받으면 점검 창 대신 안내와 '다시 시도'.next.why). 사진이 아닌 파일·HEIC·너무 큰 사진 안내. 대화 글 2만 자 넘으면 미리 알림.unsaved).busy()(lib/sources.mjs) 로 '무엇을 못 했는지 + 지금 할 수 있는 일(공식 화면 버튼)'. 이런 칸만 남은 항목은 상태 retry → '다시 확인 필요', 리포트 '잠시 확인하지 못한 항목' 구역. 키가 없어 못 하는 pending(연동 준비 중)과 구분. 공공데이터·국세청 조회는 연결 오류·5xx 한 번 더, 302 는 따라가지 않고 두 번까지 다시.clear(특이사항 없음)가 아니라 manual → '직접 확인 필요', 리포트 '직접 확인할 항목' 구역(2026-10-27 — 사기 계좌도 초록 칩으로 읽히던 것). 넣은 값을 되풀이한 문장은 tip.node scripts/hira-list.mjs — 진단 시스템(Desktop/winaid-diagnosis)의 data/hira/hospitals.json.gz 와 같은 원본 zip 의 약국 시트로 만든다(분기마다). vercel.json includeFiles: datasets/** 로 함수에 같이 실린다.
/api/pay 없음./api/analyze)·리포트(/api/report)·내 조회(/api/reports)·지우기. 첫 화면·안내 페이지·예시 리포트·약관·문의는 누구나.attest: true 가 없으면 받지 않는다. 약관 제4·5조(content/legal.mjs).dc_at 1시간, dc_rt 30일, SameSite=Lax·Secure) — 만료되면 서버가 갱신 토큰으로 바꿔 준다(lib/auth.mjs). 다른 사이트에서 온 POST(Origin 다름)는 거절. 구글·카카오는 PKCE(/api/auth/oauth → Supabase → /api/auth/callback), Supabase 에서 켜면 버튼이 자동으로 나온다(/api/config auth). 메일 링크(가입 확인·비밀번호 재설정)는 token_hash 로 /api/auth/confirm — 다른 기기에서 열어도 된다.CONSENT_VERSION(lib/auth.mjs) — 약관을 바꾸면 날짜를 올리면 모두 다시 동의한다.QUOTA, 데이터베이스 take_quota 가 계정·종류별로 잠그고 센다). 접속 주소 한도(LIMITS)는 1차 방어.mailer_autoconfirm 을 켜 둠(메일 확인 없이 가입). 비밀번호 찾기 메일을 쓰려면 SMTP(예: Gmail 앱 비밀번호, Resend)를 Supabase 에 붙이고 autoconfirm 을 끈다.C:/tmp/dc-auth(auth-config.mjs — 사이트 주소·돌아올 주소·한국어 메일, sql.mjs — db/schema.sql 적용).This is the beginning of the README. Read the rest at the original. Read the full README ↗