콘텐츠로 이동

설정 스키마

이 문서는 현재 tinyauthconfig.yaml 구조를 top-level 그룹 기준으로 정리한 레퍼런스예요.

항목유형기본값환경 변수설명
public_originstring (URL)http://localhost:8080PUBLIC_ORIGIN공개 URL. 리다이렉트, 이메일 링크, OIDC issuer metadata의 기준이 돼요.
listen_portnumber8080LISTEN_PORTstandalone 서버가 바인딩할 포트예요.
trust_proxyboolean | string | string[] | numberfalseTRUST_PROXY리버스 프록시 헤더 신뢰 설정이에요.
항목유형기본값환경 변수설명
access_token_ttlinteger (최소 60)3600ACCESS_TOKEN_TTL액세스 토큰 수명(초)
refresh_token_ttlinteger (최소 3600)2592000REFRESH_TOKEN_TTL리프레시 토큰 수명(초)
key_rotation.enabledbooleantrueJWT_KEY_ROTATION_ENABLEDJWT 키 자동 순환 활성화
key_rotation.interval_daysinteger (최소 1)30JWT_KEY_ROTATION_DAYS키 순환 주기(일)
key_rotation.overlap_daysinteger (최소 1)7JWT_KEY_OVERLAP_DAYS이전 키 유지 기간(일)
항목유형기본값환경 변수설명
supported_languagesLocale[]['en', 'ko', 'ja']-지원 언어 목록
default_language'auto' | Locale'auto'DEFAULT_LANGUAGE기본 언어
fallback_languageLocale'en'FALLBACK_LANGUAGE대체 언어
항목유형기본값환경 변수설명
light_themeAppTheme'light'LIGHT_THEME라이트 모드 테마
dark_themeAppTheme'dark'DARK_THEME다크 모드 테마
theme_mode'light' | 'dark' | 'system''system'THEME_MODE테마 선택 방식
background_urlstring (URL)기본 배경 이미지BACKGROUND_URL배경 이미지 URL
icon_urlstring (URL)-ICON_URL로고 이미지 URL
titleRecord<string, string>기본 다국어 제목-언어별 제목
subtitleRecord<string, string>기본 다국어 부제목-언어별 부제목
항목유형기본값환경 변수설명
enabledbooleanfalseREGISTRATION_ENABLED자체 회원가입 활성화 여부. 비밀번호 가입과 최초 OAuth 가입 모두 이 값을 따라요.
allowed_email_patternsstring[][]-가입 허용 이메일 패턴. enabled: true일 때만 적용되며, 빈 배열이면 모든 이메일 가입을 허용해요.
email_verification_requiredbooleantrueEMAIL_VERIFICATION_REQUIRED비밀번호 회원가입 후 이메일 인증 필수 여부
signup_noticeRecord<string, string>{}-암시적 약관 동의 안내 문구(HTML 가능)
항목유형기본값환경 변수설명
enabledbooleanfalseACCOUNT_DELETION_ENABLED사용자 직접 탈퇴 허용 여부
retentionDurationString'30d'ACCOUNT_DELETION_RETENTION탈퇴 요청 후 실제 영구 삭제까지의 유예 기간
항목유형기본값환경 변수설명
level'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal' | 'silent''info'LOG_LEVEL로그 레벨
format'json' | 'pretty''json'LOG_FORMAT로그 출력 형식
항목유형기본값환경 변수설명
session_secretstring (16자 이상)필수SESSION_SECRET세션 쿠키 서명 키
hash_secretstring (base64url 32바이트)필수HASH_SECRET비밀번호, 클라이언트 시크릿, 일회성 토큰 해싱용 루트 시크릿
pbkdf2_iterationsinteger (최소 1)600000PBKDF2_ITERATIONSPBKDF2 반복 횟수

database.type에 따라 하위 필드가 달라져요.

항목유형기본값환경 변수설명
type'sqlite'-DATABASE_TYPE데이터베이스 유형
pathstring/opt/tinyauth/database.dbDATABASE_PATH데이터베이스 파일 경로
testbooleanfalseDATABASE_TEST테스트 모드 여부
항목유형기본값환경 변수설명
type'postgres'-DATABASE_TYPE데이터베이스 유형
hoststring'localhost'DATABASE_HOST호스트
portnumber5432DATABASE_PORT포트
userstring'postgres'DATABASE_USER사용자
passwordstring'postgres'DATABASE_PASSWORD비밀번호
namestring'tinyauth'DATABASE_NAME데이터베이스 이름
항목유형기본값환경 변수설명
enabledbooleantruePASSWORD_AUTH_ENABLED비밀번호 인증 활성화
two_factor.enrollment_requiredbooleanfalsePASSWORD_2FA_ENROLLMENT_REQUIRED비밀번호 사용자의 2차 인증 등록 필수 여부
totp.enabledbooleanfalsePASSWORD_TOTP_ENABLEDTOTP 사용 여부
totp.issuerstring'Tinyrack'PASSWORD_TOTP_ISSUER인증 앱 표시 이름
policy.min_lengthnumber8PASSWORD_MIN_LENGTH최소 길이
policy.max_lengthnumber128PASSWORD_MAX_LENGTH최대 길이
항목유형기본값환경 변수설명
enabledbooleanfalsePASSKEY_ENABLED패스키 인증 활성화
rp_idstringserver.public_origin에서 추출PASSKEY_RP_IDWebAuthn RP ID (도메인만)
originsstring[][server.public_origin]-허용 WebAuthn origin 목록

email은 선택 설정이며, 메일 전송 기능을 사용할 때만 필요해요.

항목유형기본값환경 변수설명
transport'smtp' | 'test'-EMAIL_TRANSPORT이메일 전송 방식
fromstring-EMAIL_FROM발신자 주소
항목유형기본값환경 변수설명
hoststring'localhost'EMAIL_HOSTSMTP 서버 호스트
portnumber465EMAIL_PORTSMTP 포트
securebooleantrueEMAIL_SECURESSL/TLS 사용 여부
userstring필수EMAIL_USERSMTP 사용자
passwordstring필수EMAIL_PASSWORDSMTP 비밀번호

배열 형태로 여러 제공자를 설정할 수 있어요. 사용하지 않을 때는 섹션을 생략하거나 []로 두면 돼요. 자세한 내용은 타사 로그인 개요를 참고해 주세요.

항목유형설명
idstring고유 식별자
type'github' | 'google' | 'apple' | 'generic_oauth'제공자 유형
enabledboolean활성화 여부
display_namestring표시 이름
icon_urlstring아이콘 URL
client_idstringOAuth 클라이언트 ID
client_secretstringOAuth 클라이언트 시크릿
authorization_urlstring인증 엔드포인트
token_urlstring토큰 엔드포인트
userinfo_urlstring | null사용자 정보 엔드포인트
email_urlstring이메일 조회 엔드포인트
scopesstring[]요청 스코프 목록
email_conflict_strategy'auto_link' | 'require_link'이메일 충돌 처리 방식
항목유형설명
idstring내부 고유 식별자
namestring표시 이름
logo_uristring로고 URL
client_idstring공개 클라이언트 ID
client_secretstring클라이언트 시크릿
redirect_urisstring[]허용 리다이렉트 URL
response_typesstring[]허용 응답 유형
grant_typesstring[]허용 권한 부여 유형
scopestring허용 스코프(공백 구분)
항목유형설명
substring사용자 고유 식별자
emailstring이메일 주소
passwordstring초기 비밀번호
role'user' | 'admin'사용자 역할

배열 형태로 여러 약관을 설정할 수 있어요.

항목유형설명
idstring고유 식별자 (소문자, -, _)
requiredboolean필수 동의 여부
consent_mode'explicit' | 'implicit'동의 수집 방식
versionstring약관 버전
contentRecord<string, { title, type, content }>언어별 약관 내용

content의 각 항목에서 typelink 또는 text만 사용할 수 있어요.

항목유형기본값환경 변수설명
enabledbooleantrueSCHEDULER_ENABLED내장 스케줄러 활성화
cronstring'0 2 * * *'SCHEDULER_CRONcron 표현식
항목유형기본값환경 변수설명
revoked_tokens.enabledbooleantrueCLEANUP_REVOKED_TOKENS_ENABLED취소된 토큰 정리
revoked_tokens.retentionDurationString'0'CLEANUP_REVOKED_TOKENS_RETENTION보존 기간
oauth_codes.enabledbooleantrueCLEANUP_OAUTH_CODES_ENABLED인증 코드 정리
oauth_codes.consumed_retentionDurationString'24h'CLEANUP_OAUTH_CODES_RETENTION사용된 코드 보존 기간
email_verifications.enabledbooleantrueCLEANUP_EMAIL_VERIFICATIONS_ENABLED이메일 인증 토큰 정리
email_verifications.retentionDurationString'0'CLEANUP_EMAIL_VERIFICATIONS_RETENTION보존 기간
password_resets.enabledbooleantrueCLEANUP_PASSWORD_RESETS_ENABLED비밀번호 재설정 토큰 정리
password_resets.retentionDurationString'0'CLEANUP_PASSWORD_RESETS_RETENTION보존 기간
pending_oauth_registrations.enabledbooleantrueCLEANUP_PENDING_OAUTH_REGISTRATIONS_ENABLED중단된 OAuth 가입 정리
pending_oauth_registrations.retentionDurationString'0'CLEANUP_PENDING_OAUTH_REGISTRATIONS_RETENTION보존 기간
항목유형기본값환경 변수설명
enabledbooleantrue-라이브 OpenAPI 라우트 GET /api/docs, GET /api/docs/json 노출 여부
titlestring'TinyAuth API'-OpenAPI 문서 제목
descriptionstring'OpenID Connect Provider API'-OpenAPI 문서 설명
ui_titlestring'TinyAuth API Reference'-라이브 Scalar API 레퍼런스 UI의 브라우저 페이지 제목
항목유형기본값환경 변수설명
enabledbooleantrueFRONTEND_ENABLED프론트엔드 서빙 활성화 여부
mode'proxy' | 'static''static'FRONTEND_MODEproxy는 업스트림 전달, static은 디스크 서빙
pathstring런타임 기본값FRONTEND_PATH프론트엔드 경로
html_variablesRecord<string, string>{}-HTML 템플릿 치환 변수