Skip to main content
앱의 모든 서버 측 구성은 환경 변수로 합니다. 로컬 개발에서는 .env.local, Docker 배포에서는 .env.production을 사용하고, Vercel에서는 프로젝트의 Settings → Environment Variables에서 설정합니다.

환경 변수

DEEPSEEK_API_KEY와 GEMINI_API_KEY 중 하나 이상을 입력하세요. 둘 다 입력하지 않으면 방문자가 설정에서 자신의 키를 입력해야 앱을 사용할 수 있고, 홈 화면의 오늘의 문장도 내장된 예비 문장으로 바뀝니다.
전체 예시:
.env.production

모델 제공업체

앱은 OpenAI 호환 Chat Completions API로 모델을 호출합니다. 서버는 제공업체에 따라 요청 매개변수를 자동으로 조정합니다.
  • DeepSeek: json_object 형식으로 구조화된 결과를 받고, 사고 모드를 끕니다.
  • Gemini: 엄격한 JSON Schema로 구조화된 결과를 받습니다. gemini-flash-latest는 low 추론 단계를, gemini-flash-lite-latest는 minimal 추론 단계를 사용합니다.

사용자 지정 API 주소 사용

프록시나 호환 게이트웨이를 통해 모델 제공업체에 접속한다면 DEEPSEEK_API_URL 또는 GEMINI_API_URL을 설정할 수 있습니다. 주소는 Base URL이 아니라 전체 Chat Completions 엔드포인트여야 합니다.
API 주소는 서버 환경 변수에서만 설정할 수 있습니다. 브라우저 요청에 사용자 지정 API URL이 포함되면 서버는 요청을 바로 거부합니다. 앱이 임의 주소로 요청을 전달하는 프록시로 악용되는 것을 막기 위해서입니다.

요청 시간 제한

접속 비밀번호

CODE를 설정하면 방문자는 사이트를 열 때 먼저 접속 비밀번호를 입력해야 합니다.
  • 인증에 성공하면 서버가 HttpOnly 세션 Cookie ja_session을 기록합니다. 유효 기간은 7일입니다.
  • 세션 토큰은 CODE를 키로 사용해 HMAC-SHA256으로 서명합니다. CODE를 바꾸면 로그인된 모든 세션이 즉시 무효가 됩니다.
  • 인증하지 않으면 분석, 번역, 뜻풀이, 이미지 인식, 음성 읽기, 대화, 오늘의 문장 등의 API가 모두 401을 반환합니다.
  • 프로덕션 환경에서는 Cookie에 Secure 플래그가 붙으므로 HTTPS로 접속해야 합니다.
CODE는 간단한 비공개 배포에서 모르는 사람이 API 사용량을 소모하지 못하게 막는 용도입니다. 완전한 계정 및 권한 시스템을 대신할 수는 없습니다.

Umami 통계

다음 두 변수를 모두 입력하면 앱이 Umami 통계 스크립트를 불러옵니다.
둘 중 하나라도 비어 있으면 앱은 Umami를 불러오지 않습니다. 두 변수는 서버가 런타임에 읽으므로, 값을 바꾼 뒤 서비스를 다시 시작하면 적용됩니다. Docker 배포에서도 이미지를 다시 빌드할 필요가 없습니다. 통계는 기능 사용량만 기록하며 내용은 전혀 기록하지 않습니다. 자세한 내용은 API 키와 개인정보를 참고하세요.