콘텐츠로 이동

환경 변수

구성은 두 수준에서 스택에 들어갑니다: 번들 .env 파일(오프라인 설치 시 Docker Compose가 읽음)과 컨테이너별 환경 변수(compose 파일 자체가 설정). 이 페이지는 둘 다 나열합니다.

변수기본값효과
AIBOARD_JWT_SECRET설치 시 생성JWT 서명 키(≥ 32바이트). 필수 — 릴리스 compose는 이것 없이는 시작을 거부합니다.
AIBOARD_HTTP_PORT80대시보드 HTTP 포트.
AIBOARD_ALT_PORT3000보조 대시보드 포트.
AIBOARD_HTTPS_PORT443HTTPS 포트(TLS 오버레이 전용).
AIBOARD_TLS_ENABLED01 = 생성된 자체 서명 인증서로 HTTPS를 제공하고 80 → 443 리디렉션.
AIBOARD_TLS_HOST—인증서 SAN에 구워 넣을 공백/쉼표 구분 IP/호스트명.
AIBOARD_TLS_DIR/opt/aiboard/tlscert.pem / key.pem이 위치하는 곳(설치 시 절대 경로로 기록).
AIBOARD_CERTS_ENABLED01 = 운영자가 프로비저닝한 데이터소스 클라이언트 인증서를 마운트.
AIBOARD_CERTS_DIR/opt/aiboard/certs보안 MQTT / OPC UA용 CA + 클라이언트 인증서, 읽기 전용 마운트.
AIBOARD_MODEL_SEED_DIR/opt/aiboard/models시드 모델 디렉터리.
AIBOARD_BACKUP_KEEP3업데이트가 설치 디렉터리의 backups 폴더에 보관하는 데이터베이스 백업 수(최신순). 업데이트가 정상 완료된 후 더 오래된 백업은 삭제됩니다. 0은 모든 백업을 보관합니다. 정수가 아닌 값은 3으로 처리됩니다.
BACKEND_IMAGE · FRONTEND_IMAGE · INFERENCE_IMAGE번들 매니페스트에서실행할 이미지 태그 — install.sh / update.sh가 관리. 수동으로 편집하지 마세요.
변수기본값(릴리스)효과
ASPNETCORE_ENVIRONMENTProduction구성 오버레이 선택.
Grpc__InferenceService__Addresshttp://inference:50051추론 런타임 gRPC 대상. 내부 컨테이너 네트워크로 연결됩니다. 포트 50051은 기본적으로 박스의 루프백 주소에만 바인딩되며(AIBOARD_INFERENCE_BIND) 네트워크에서는 접근할 수 없습니다.
Database__ConnectionStringData Source=/data/aiboard.dbSQLite 데이터베이스 위치(영속 볼륨).
AIBOARD_JWT_SECRET.env에서JWT 서명 키 폴백. 개발 외 환경에서는 필수.
CORS_ORIGINSlocalhost 개발 오리진쉼표 구분 허용 브라우저 오리진 — 기본이 아닌 호스트에서 UI를 제공할 때 재정의.
AIBOARD_CERTS_ROOT/certs데이터소스 TLS 인증서 경로의 감옥(jail) 루트(임의 파일 읽기 차단).
AIBOARD_CSV_ROOT/data/csvCSV 재생/출력 파일 경로의 감옥 루트.

더 깊은 백엔드 튜닝(토큰 수명, 속도 제한, 모델 검증 상한, 보존 윈도우)은 appsettings 키에 있습니다. 이 중 어느 것이든 표준 .NET 이중 밑줄 관례로 재정의할 수 있습니다. 예: Auth__Jwt__ExpiryHours=12 또는 LoginRateLimit__PermitLimit=10.

appsettings 키기본값효과
Auth:Jwt:ExpiryHours8로그인 토큰 수명(리프레시 토큰 없음).
LoginRateLimit:*on, 60초당 5회IP당 실패 로그인 게이트.
ExternalApi:Enabled + ExternalApi:RateLimit:*on, 60초당 100회외부 API 키 표면과 그 속도 제한.
ModelManagement:MaxVersionsToKeep5정리 시 버전 가지치기.
ModelManagement:Validation:MaxModelSizeMb500업로드 크기 상한.
InferenceObservability:RetentionDays1추론 감사 로그 보존(SQLite).
InferenceObservability:PayloadRetentionHours6저장된 요청 및 응답 페이로드의 보존 기간.
LoggingService:Retention:MaxEntries10000LogViewer 저장소 상한.
Swagger:Enabledtrue (Development 전용)http://<box>:5000/swagger의 Swagger UI. Development 외 환경에서는 무시됨 — 출하 장비는 ASPNETCORE_ENVIRONMENT=Production으로 실행되며 API 문서를 전혀 제공하지 않음. 로컬 개발 중에 숨기려면 false로 설정.
변수기본값효과
EXECUTION_MODEautoauto(CUDA, CPU는 폴백), cuda, 또는 cpu. TX2에서는 TensorRT를 사용하지 않습니다.
STRICT_EPoff1 = 핀 고정된 GPU 모드를 조용히 CPU로 저하시키는 대신 시작을 거부.
MODEL_PATH/app/models/predictive_maintenance_op15.onnx시작 시 로드되는 시드 모델(볼륨 마운트, 이미지에 절대 굽지 않음).
MODEL_STORAGE_PATH/data/models등록된 모델 버전(백엔드와 공유 볼륨).
LOG_DIR/data/logs(릴리스)회전형 Warning+ 포렌식 로그 파일 활성화. 미설정 = 콘솔 전용.
USE_REAL_INFERENCEtruetrue로 유지해야 함 — mock 모드는 폐기됨. 아니면 서비스가 빠르게 실패.
INFERENCE_STUB00 예측을 반환하는 디버그 우회. 프로덕션에서 절대 활성화하지 마세요.
FORCE_CPUoffEXECUTION_MODE=cpu의 레거시 별칭.

Jetson 번들은 추가로 OPENBLAS_CORETYPE를 핀 고정하고 runtime: nvidia로 실행합니다 — Jetson 배포를 참조하세요.

변수기본값효과
AIBOARD_TLS_ENABLED0TLS 인식 nginx 엔트리포인트 활성화(AIBOARD_TLS_DIR에서 인증서 마운트).

API 및 허브 URL은 빌드 시 프런트엔드에 컴파일됩니다(동일 오리진 /api + /hub/realtime) — 런타임에 구성할 것이 없습니다.