Skip to content
이 페이지는 AI의 도움으로 작성 및 번역되었습니다. 부정확한 내용이 있으면 개선에 참여해 주세요. GitHub에서 편집

환경 변수

PRX는 API 키, 설정 경로, 런타임 재정의를 위한 환경 변수를 읽습니다. 환경 변수는 API 키와 같은 보안에 민감한 필드에 대해 config.toml의 값보다 우선합니다.

설정 경로

변수기본값설명
OPENPRX_CONFIG_DIR~/.openprx설정 디렉터리를 재정의합니다. PRX는 이 디렉터리 내에서 config.tomlconfig.d/를 찾습니다
OPENPRX_WORKSPACE~/.openprx/workspace워크스페이스 디렉터리(메모리, 세션, 데이터)를 재정의합니다

OPENPRX_CONFIG_DIR이 설정된 경우 OPENPRX_WORKSPACE와 활성 워크스페이스 마커보다 우선합니다.

설정 디렉터리 결정 순서:

  1. OPENPRX_CONFIG_DIR (최우선)
  2. OPENPRX_WORKSPACE
  3. 활성 워크스페이스 마커 (~/.openprx/active_workspace.toml)
  4. ~/.openprx/ (기본값)

프로바이더 API 키

각 프로바이더에는 전용 환경 변수가 있습니다. PRX는 config.tomlapi_key 필드로 대체하기 전에 이를 먼저 확인합니다.

주요 프로바이더

변수프로바이더
ANTHROPIC_API_KEYAnthropic (Claude)
OPENAI_API_KEYOpenAI
GEMINI_API_KEYGoogle Gemini
GOOGLE_API_KEYGoogle Gemini (대안)
OPENROUTER_API_KEYOpenRouter
OLLAMA_API_KEYOllama (보통 불필요)
GLM_API_KEYZhipu GLM
ZAI_API_KEYZ.AI
MINIMAX_API_KEYMinimax
MOONSHOT_API_KEYMoonshot
DASHSCOPE_API_KEYAlibaba Qwen (DashScope)

OAuth 토큰

일부 프로바이더는 API 키에 추가로(또는 대신) OAuth 인증을 지원합니다:

변수프로바이더설명
ANTHROPIC_OAUTH_TOKENAnthropicClaude Code OAuth 토큰
CLAUDE_CODE_ACCESS_TOKENAnthropicClaude Code 액세스 토큰 (대안)
CLAUDE_CODE_REFRESH_TOKENAnthropic자동 갱신을 위한 Claude Code 리프레시 토큰
MINIMAX_OAUTH_TOKENMinimaxMinimax OAuth 액세스 토큰
MINIMAX_OAUTH_REFRESH_TOKENMinimaxMinimax OAuth 리프레시 토큰
MINIMAX_OAUTH_CLIENT_IDMinimaxOAuth 클라이언트 ID 재정의
MINIMAX_OAUTH_REGIONMinimaxOAuth 리전 (global 또는 cn)
QWEN_OAUTH_TOKENQwenQwen OAuth 액세스 토큰
QWEN_OAUTH_REFRESH_TOKENQwenQwen OAuth 리프레시 토큰
QWEN_OAUTH_CLIENT_IDQwenQwen OAuth 클라이언트 ID 재정의
QWEN_OAUTH_RESOURCE_URLQwenQwen OAuth 리소스 URL 재정의

호환/서드파티 프로바이더

변수프로바이더
GROQ_API_KEYGroq
MISTRAL_API_KEYMistral
DEEPSEEK_API_KEYDeepSeek
XAI_API_KEYxAI (Grok)
TOGETHER_API_KEYTogether AI
FIREWORKS_API_KEYFireworks AI
PERPLEXITY_API_KEYPerplexity
COHERE_API_KEYCohere
NVIDIA_API_KEYNVIDIA NIM
VENICE_API_KEYVenice
LLAMACPP_API_KEYllama.cpp server
KIMI_CODE_API_KEYKimi Code (Moonshot)
QIANFAN_API_KEYBaidu Qianfan
CLOUDFLARE_API_KEYCloudflare AI
VERCEL_API_KEYVercel AI

대체

변수설명
API_KEY프로바이더별 변수가 설정되지 않았을 때 사용되는 일반 대체

도구 및 채널 변수

변수설명
BRAVE_API_KEYBrave Search API 키 ([web_search]에서 provider = "brave"인 경우)
GITHUB_TOKENGitHub 개인 액세스 토큰 (스킬 및 통합에서 사용)
GOOGLE_APPLICATION_CREDENTIALSGoogle Cloud ADC 파일 경로 (서비스 계정을 통한 Gemini)

런타임 변수

변수설명
OPENPRX_VERSION보고되는 버전 문자열 재정의
OPENPRX_AUTOSTART_CHANNELS"1"로 설정하면 부팅 시 채널 리스너 자동 시작
OPENPRX_EVOLUTION_CONFIG진화 설정 경로 재정의
OPENPRX_EVOLUTION_DEBUG_RAW원시 진화 디버그 로깅 활성화

설정 내 변수 치환

PRX는 config.toml 내에서 ${VAR_NAME} 구문을 기본적으로 확장하지 않습니다. 그러나 다음 접근 방식으로 환경 변수 치환을 달성할 수 있습니다:

1. 환경 변수 직접 사용

API 키의 경우 PRX가 자동으로 해당 환경 변수를 확인합니다. 설정 파일에서 참조할 필요가 없습니다:

toml
# api_key가 필요 없음 -- PRX가 ANTHROPIC_API_KEY를 자동으로 확인함
default_provider = "anthropic"
default_model = "anthropic/claude-sonnet-4-6"

2. 셸 래퍼 사용

envsubst 또는 유사한 도구를 사용하여 템플릿에서 config.toml을 생성합니다:

bash
envsubst < config.toml.template > ~/.openprx/config.toml

3. 시크릿이 포함된 분할 설정 사용

시크릿을 배포 시 환경 변수에서 생성되는 별도 파일에 보관합니다:

bash
# 시크릿 프래그먼트 생성
cat > ~/.openprx/config.d/secrets.toml << EOF
api_key = "$ANTHROPIC_API_KEY"

[channels_config.telegram]
bot_token = "$TELEGRAM_BOT_TOKEN"
EOF

.env 파일 지원

PRX는 .env 파일을 자동으로 로드하지 않습니다. .env 파일 지원이 필요하면 다음 접근 방식 중 하나를 사용하세요:

systemd 사용

서비스 유닛에 EnvironmentFile을 추가합니다:

ini
[Service]
EnvironmentFile=/opt/openprx/.env
ExecStart=/usr/local/bin/openprx

셸 래퍼 사용

PRX 시작 전에 .env 파일을 소싱합니다:

bash
#!/bin/bash
set -a
source /opt/openprx/.env
set +a
exec openprx

direnv 사용

direnv를 사용하는 경우 작업 디렉터리에 .envrc 파일을 배치합니다:

bash
# .envrc
export ANTHROPIC_API_KEY="sk-ant-..."
export TELEGRAM_BOT_TOKEN="123456:ABC-DEF..."

보안 권장 사항

  • API 키를 버전 관리에 커밋하지 마세요. 환경 변수 또는 암호화된 시크릿을 사용하세요.
  • PRX의 [secrets] 하위 시스템은 config.toml의 민감한 필드를 ChaCha20-Poly1305로 암호화합니다. [secrets] encrypt = true로 활성화합니다 (기본적으로 활성화).
  • PRX와 함께 제공되는 .dockerignore는 컨테이너 빌드에서 .env.env.* 파일을 제외합니다.
  • 감사 로그는 API 키와 토큰을 자동으로 수정합니다.
  • OPENPRX_CONFIG_DIR을 사용하여 공유 디렉터리를 가리킬 때 적절한 파일 권한(chmod 600 config.toml)을 확인하세요.

Released under the Apache-2.0 License.