콘텐츠로 이동

환경 변수

이 페이지는 운영자가 프로덕션에서 변경할 수 있는 /etc/labpod/labpod.env 설정을 다룹니다. CLI 플래그(--port, --db, --dev)를 설정하면 해당 서버 변수보다 우선합니다.

Boolean 변수는 true / 1 (활성) 또는 false / 0 (비활성)만 허용합니다. 그 외의 값을 넣으면 시작 시 오류가 발생합니다.

기간을 나타내는 변수(LABPOD_API_TIMEOUT, LABPOD_SESSION_TTL, LABPOD_WORKSPACE_START_TIMEOUT, LABPOD_LAUNCHER_READINESS_TIMEOUT)는 Go의 time.ParseDuration 형식을 사용합니다. 숫자 뒤에 ns, us/µs, ms, s, m, h 단위를 붙이고 여러 단위를 조합할 수도 있습니다(예: 24h30m). d(일) 단위는 없고 단위 없는 숫자는 받아들이지 않으므로 7일을 설정하려면 168h로 써야 합니다. 값이 잘못되었거나 0 이하이면 오류가 기록되고 기본값으로 동작합니다.

여기서는 지원하는 운영자 설정만 다룹니다. 거의 바꾸지 않는 고급 기본값은 호스트에 설치된 /etc/labpod/labpod.env 주석에서 확인하세요.

신규 설치의 /etc/labpod/labpod.env는 의도적으로 짧습니다. 활성 데이터베이스 경로와 생성된 JWT 시크릿만 주석 없이 남아 있습니다. LabPod은 나머지 경로를 데이터베이스 디렉터리에서 유도하고 프로덕션 Podman/GPU 구현을 직접 사용하며 NVIDIA/MIG 지원 여부를 자동으로 감지합니다. 그래서 CPU 전용 호스트와 GPU 호스트 모두 같은 최소 파일로 부팅합니다. 이 참조 페이지의 내용과 특정 호스트에서 실제로 쓰는 값을 대조하려면 다음 두 CLI 명령을 사용하세요.

Terminal window
sudo labpod env # 이 호스트의 명시적 재정의와 자동 감지 결과
sudo labpod env --all # 설정되지 않아 기본값을 쓰는 항목과 레거시 호환 키를 포함한 모든 설정
Terminal window
# Run these as root
labpod env # 이 호스트의 명시적 재정의와 자동 감지 결과
labpod env --all # 설정되지 않아 기본값을 쓰는 항목과 레거시 호환 키를 포함한 모든 설정

특정 호스트의 문제를 해결할 때는 먼저 labpod env를 확인하세요. 출하 기본값과 다른 부분만 보여줍니다. 이 페이지가 다루지 않는 사용 빈도가 낮은 설정까지 모두 보려면 labpod env --all을 사용하세요. 레거시 호환 키는 업그레이드한 호스트에서 호환성을 위해 계속 인식되지만, 새 설정에는 추가하지 마세요.

변수기본값설명
LABPOD_PORT24680플랫폼 HTTP/HTTPS 포트. 워크스페이스 게이트웨이는 다음 포트(기본 24681)를 사용하므로 두 포트가 워크스페이스 포트 범위 밖에 있어야 합니다
LABPOD_DBlabpod.dbSQLite 데이터베이스 경로. 상대 경로는 서비스 작업 디렉터리를 기준으로 해석합니다
LABPOD_JWT_SECRET(필수)세션 서명 시크릿. 32바이트 이상. 프로덕션 환경에서 이 값이 없으면 서버가 시작을 거부합니다
LABPOD_LICENSE_PATH/var/lib/labpod/license.lic설치된 서명 라이선스 경로. 없으면 LabPod은 내장 90일 trial 권한으로 동작합니다
LABPOD_API_TIMEOUT15m요청별 핸들러 타임아웃 (예: 15m, 30m)
LABPOD_SESSION_TTL168hJWT와 브라우저 쿠키의 로그인 유지 시간입니다. 로그아웃, 비밀번호 변경, 계정 비활성화 시에는 이 시간과 관계없이 세션을 폐기할 수 있습니다. 호스트 로컬 CLI는 자체 세션이 없으며 호출마다 Linux 피어로 인증합니다
LABPOD_WORKSPACE_START_TIMEOUT15mpodman run -d 워크스페이스 시작 호출의 데드라인
변수기본값설명
LABPOD_TLS_SELF_SIGNEDfalse자체 서명 인증서를 자동 생성하고 캐시합니다
LABPOD_TLS_CERT(미설정)운영자가 제공하는 TLS 인증서 경로
LABPOD_TLS_KEY(미설정)운영자가 제공하는 TLS 개인 키 경로
LABPOD_TLS_DIR/var/lib/labpod/tls자체 서명 인증서와 키의 캐시 디렉터리
LABPOD_TLS_HOSTS(미설정)자체 서명 인증서에 추가할 SAN 목록 (쉼표로 구분, 예: 192.168.1.10,labpod.lan)
변수기본값설명
LABPOD_GPU_SHARING_LIB_PATH(미설정)소프트웨어 GPU 공유 런타임 라이브러리의 호스트 경로. 설정하면 분할 GPU 모드가 켜집니다. 파일이 없으면 서버가 시작되지 않습니다

GPU 인벤토리, MIG 탐색, GPU 프로세스 검사는 nvidia-smi 설치 여부에 따라 자동으로 동작합니다. 새 설정에는 별도 항목이 필요하지 않습니다.

변수기본값설명
LABPOD_SHARED_MOUNT_ROOTS(미설정)관리자가 정의한 공유 마운트에 허용되는 루트 경로 목록 (쉼표로 구분). 비어 있으면 차단되지 않은 모든 경로 허용
LABPOD_DISK_ROOT/home호스트 전체 용량에 표시할 기본 파일시스템을 고르는 절대 경로입니다. LabPod은 활성 사용자의 루트리스 Podman graphroot가 있는 별도 파일시스템도 자동으로 찾습니다
LABPOD_WORK_BASE(미설정)각 사용자의 공유 /work 트리에 사용할 선택형 기준 경로입니다. 미설정이면 <passwd-home>/work, 설정하면 <LABPOD_WORK_BASE>/<user>/work를 사용합니다. 별도 위치의 work도 사용자별 디스크 합계에 포함합니다
LABPOD_BACKUP_DIR/var/lib/labpod/backups예약 백업과 설치 프로그램 롤백에 쓰는 디렉터리

Linux 계정 HOME은 호스트 계정 데이터베이스에서 읽으므로 LabPod 환경 변수가 따로 없습니다. 루트리스 Podman 저장소는 Podman의 storage.conf에서 별도로 설정합니다. 자세한 내용은 루트리스 Podman 저장소를 참조하세요.

과거 root 관리 공유 이미지 저장소에서 쓰던 LABPOD_SHARED_IMAGE_STORE_MODE와 LABPOD_SHARED_IMAGE_STORE 설정은 폐지되었습니다. 이제 각 사용자의 이미지는 자신의 루트리스 Podman 저장소에만 존재합니다. LabPod은 root 이미지 캐시를 구성하지 않습니다. 이전 캐시 디렉터리는 자동으로 삭제하지 않으므로 더 이상 필요하지 않은지 확인한 뒤 직접 제거합니다.

변수기본값설명
LABPOD_PORT_GUARDnft워크스페이스 포트의 소유자 인식 루프백 격리입니다. 명시적으로 끄려면 none으로 설정합니다
LABPOD_WORKSPACE_PORT_MIN10000워크스페이스 서비스에 예약된 첫 루프백 포트
LABPOD_WORKSPACE_PORT_MAX19999워크스페이스 서비스에 예약된 마지막 루프백 포트
LABPOD_TRUST_PROXY_HEADERSfalse선언한 신뢰 프록시 peer에서 온 전달 메타데이터만 신뢰합니다. 신뢰할 수 있는 리버스 프록시 뒤에서만 활성화하세요
LABPOD_TRUSTED_PROXY_PEERSloopback,unix전달 메타데이터 제공을 허용할 직접 프록시 peer: loopback, unix, 정확한 IP 주소 또는 CIDR
LABPOD_UPDATE_RELEASES_APIhttps://api.github.com/repos/LabPod/labpod/releases/latestopt-in 업데이트 확인에 쓰는 릴리스 엔드포인트
LABPOD_WS_ALLOWED_ORIGINS(미설정)터미널 엔드포인트에 허용할 추가 WebSocket Origin 값 목록 (쉼표로 구분)
LABPOD_NOTIFY_ALLOW_PRIVATEfalse크래시 알림 웹훅이 private/loopback/link-local 목적지에 접속하도록 허용합니다 (자체 호스팅 LAN 메신저 전용)
LABPOD_LAUNCHER_READINESS_TIMEOUT60s런처 시작 시 앱 포트 준비를 기다리는 시간

재시작 없이 변경할 수 있는 DB 기반 설정은 런타임 설정을 참고하세요.