콘텐츠로 이동

환경 변수

tinyauthconfig.yaml을 구성할 때, 특정 설정은 환경 변수를 참조하게 만들 수 있어요. 이는 민감한 정보를 다룰 때 유용하며, 컨테이너화된 배포나 클라우드 환경에서 민감한 설정을 관리하는 데 도움이 될 수 있어요. 간단한 사용 예시는 다음과 같아요.

server:
public_origin: "${PUBLIC_ORIGIN}"
security:
session_secret: "$SESSION_SECRET"
hash_secret: "$HASH_SECRET"

$VAR 또는 ${VAR} 구문 모두 유효한 표현이에요.

위 설정을 사용하는 경우, docker에서는 다음과 같이 환경 변수를 전달해 사용할 수 있어요.

Terminal window
docker run \
-p 8080:8080 \
-v ./config.yaml:/opt/config.yaml \
-e PUBLIC_ORIGIN=https://example.com \
-e SESSION_SECRET=your-session-secret \
-e HASH_SECRET=your-base64url-hash-secret \
ghcr.io/tinyrack-net/tinyauth

환경 변수가 있다면 사용하되, 없는 경우의 기본값을 지정하고 싶을 수 있어요. 그럴 땐 다음과 같이 사용할 수 있어요.

server:
public_origin: "${PUBLIC_ORIGIN:-https://default-tinyauth-domain.com}"

이 경우 PUBLIC_ORIGIN 환경 변수가 설정돼 있으면 그 값을 사용하고, 설정되어 있지 않다면 https://default-tinyauth-domain.com 을 기본값으로 사용해요.

tinyauth는 이미 설정의 많은 부분에서 환경 변수를 먼저 참조하도록 기본값이 구성되어 있어요. 예를 들어 standalone 기본 설정에는 다음과 같은 환경 변수와 기본값이 자주 사용돼요.

server:
public_origin: ${PUBLIC_ORIGIN:-http://localhost:8080}
listen_port: ${LISTEN_PORT:-8080}
tokens:
access_token_ttl: ${ACCESS_TOKEN_TTL:-3600}
refresh_token_ttl: ${REFRESH_TOKEN_TTL:-2592000}
key_rotation:
enabled: ${JWT_KEY_ROTATION_ENABLED:-true}
interval_days: ${JWT_KEY_ROTATION_DAYS:-30}
overlap_days: ${JWT_KEY_OVERLAP_DAYS:-7}
security:
session_secret: ${SESSION_SECRET}
hash_secret: ${HASH_SECRET}

전체 환경 변수와 기본값을 확인하려면 설정 스키마 문서를 참고해 주세요.