환경 변수
이 페이지는 운영자가 프로덕션에서 변경할 수 있는 /etc/labpod/labpod.env 설정을 다룹니다.
공유 이미지 저장소 모드처럼 같은 파일에 있는 일부 설치 및 사전 점검 값은 설치 스크립트나 admin doctor가 읽습니다. 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 주석에서 확인하세요.
| 변수 | 기본값 | 설명 |
|---|---|---|
LABPOD_PORT | 24680 | 플랫폼 HTTP/HTTPS 포트. 워크스페이스 게이트웨이는 다음 포트(기본 24681)를 사용하므로 두 포트가 워크스페이스 포트 범위 밖에 있어야 합니다 |
LABPOD_DB | labpod.db | SQLite 데이터베이스 경로. 상대 경로는 서비스 작업 디렉터리를 기준으로 해석합니다 |
LABPOD_JWT_SECRET | (필수) | 세션 서명 시크릿; 32바이트 이상. 프로덕션 환경에서 이 값이 없으면 서버가 시작을 거부합니다 |
LABPOD_LICENSE_PATH | /var/lib/labpod/license.lic | 설치된 서명 라이선스 경로. 없으면 LabPod는 내장 90일 trial 권한으로 동작합니다 |
LABPOD_API_TIMEOUT | 15m | 요청별 핸들러 타임아웃 (예: 15m, 30m) |
LABPOD_SESSION_TTL | 168h | JWT, 브라우저 쿠키, CLI 세션의 로그인 유지 시간입니다. 로그아웃, 비밀번호 변경, 계정 비활성화 시에는 이 시간과 관계없이 세션이 즉시 폐기됩니다 |
LABPOD_WORKSPACE_START_TIMEOUT | 15m | podman run -d 워크스페이스 시작 호출의 데드라인 |
TLS
섹션 제목: “TLS”| 변수 | 기본값 | 설명 |
|---|---|---|
LABPOD_TLS_SELF_SIGNED | false | 자체 서명 인증서를 자동 생성하고 캐시합니다 |
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) |
GPU
섹션 제목: “GPU”| 변수 | 기본값 | 설명 |
|---|---|---|
LABPOD_GPU_SHARING_LIB_PATH | (미설정) | 소프트웨어 GPU 공유 런타임 라이브러리의 호스트 경로. 설정하면 분할 GPU 모드가 활성화됩니다. 파일이 없으면 서버가 시작되지 않습니다 |
LABPOD_GPU_INVENTORY | nvidia-smi | GPU 열거 소스. CPU 전용 호스트에서는 none으로 설정합니다 |
LABPOD_MIG_INVENTORY | nvidia-smi | MIG 슬라이스 열거. MIG를 사용하지 않는 호스트에서는 none으로 설정합니다 |
LABPOD_GPU_PROCESS_INSPECTOR | nvidia-smi | 미추적 GPU 사용 지표의 소스: nvidia-smi 또는 none |
스토리지
섹션 제목: “스토리지”| 변수 | 기본값 | 설명 |
|---|---|---|
LABPOD_SHARED_MOUNT_ROOTS | (미설정) | 관리자가 정의한 공유 마운트에 허용되는 루트 경로 목록 (쉼표로 구분). 비어 있으면 차단되지 않은 모든 경로 허용 |
LABPOD_SHARED_IMAGE_STORE_MODE | auto | 공유 이미지 저장소 설정 모드: auto, imagestore, root |
LABPOD_SHARED_IMAGE_STORE | (미설정) | 설정하면 admin shared pull에 사용하는 root 관리 공유 이미지 저장소 경로 |
LABPOD_DISK_ROOT | (계정 홈 파일시스템) | 호스트 디스크 용량에 표시할 파일시스템을 고르는 절대 경로입니다. 설정하지 않으면 LABPOD_FILEOP_HOME_BASE가 있는 파일시스템을 측정합니다 |
LABPOD_FILEOP_HOME_BASE | /home | 생성한 계정 홈, 워크스페이스 전용 홈, 보관본, 파일 루트, 디렉터리 선택기, 사용자별 디스크 스캔의 기준 경로입니다. 기존 데이터는 자동으로 옮기지 않습니다 |
LABPOD_WORK_BASE | LABPOD_FILEOP_HOME_BASE와 동일 | 각 사용자의 공유 /work 트리 기준 디렉터리입니다. 작업 데이터를 계정 홈 밖의 전용 데이터 볼륨에 둘 때 사용합니다. 이전하면 사용자별 디스크 합계에 포함됩니다 |
보안과 네트워크
섹션 제목: “보안과 네트워크”| 변수 | 기본값 | 설명 |
|---|---|---|
LABPOD_PORT_GUARD | none | 공유 호스트의 루프백 보안을 강화합니다. none 또는 nft를 사용하며 nft는 LabPod 서비스를 root로 실행해야 합니다 |
LABPOD_TRUST_PROXY_HEADERS | false | X-Forwarded-Host/Proto 헤더를 신뢰합니다. 신뢰할 수 있는 리버스 프록시 뒤에서만 활성화하세요 |
LABPOD_WS_ALLOWED_ORIGINS | (미설정) | 터미널 엔드포인트에 허용할 추가 WebSocket Origin 값 목록 (쉼표로 구분) |
LABPOD_NOTIFY_ALLOW_PRIVATE | false | 크래시 알림 웹훅이 private/loopback/link-local 목적지로 접속하는 것을 허용합니다 (자체 호스팅 LAN 메신저 전용) |
LABPOD_LAUNCHER_READINESS_TIMEOUT | 60s | 런처 시작 시 앱 포트 준비를 기다리는 시간 |
재시작 없이 변경할 수 있는 DB 기반 설정은 런타임 설정을 참고하세요.