패널 설정¶
패널「설정」페이지는 런타임 설정을 집중 관리하며, 수정 즉시 적용되고 SQLite 데이터베이스에 영속화됩니다. 설정 파일을 편집하거나 서비스를 재시작할 필요가 없습니다. 일부 이전에 config.yaml에 기록되던 설정(AI, Agent 토큰, 모니터링 인증)은 이곳으로 이전되었습니다.
「패널 설정」접근에는
settings.view권한이, 저장 수정에는settings.edit권한이 필요합니다(기본적으로admin역할이 보유).
기본 설정¶
| 항목 | 설명 |
|---|---|
| 패널 포트 | 패널 리스닝 포트(server.port에 대응) |
| 패널 도메인 | 패널 접근 도메인, 링크 생성과 리버스 프록시 시나리오에 사용 |
| 보안 진입 | 숨김 경로 프리픽스(server.secret_entry에 대응), 예: /opsmini_panel, 비워 두면 비활성화 |
| HTTPS 활성화 | HTTPS 활성화 여부(리버스 프록시와 함께 에지에서 TLS 종료 권장) |
2단계 인증(2FA)¶
- 전역 스위치: 활성화하면 인증기(authenticator)를 바인딩한 모든 계정이 로그인 시 6자리 동적 코드를 입력해야 합니다
- 각 사용자는 TOTP 인증기를 독립적으로 바인딩/해제할 수 있습니다(Google Authenticator / 1Password / 각 클라우드 제공자 인증기 APP 호환)
- 인증기를 분실한 경우 서버에 로그인하여
opsmini -reset-mfa <username>로 초기화할 수 있습니다
자세한 내용은 사용자와 권한을 참조하세요.
AI 대형 모델 연동¶
내장 AI 어시스턴트의 모델 연동을 여기에서 통합 설정하며, 기존 config.yaml의 ai 섹션을 대체합니다:
| 항목 | 설명 |
|---|---|
| AI 어시스턴트 활성화 | 총 스위치, 끄면 AI 관련 기능 사용 불가 |
| 모델 제공자 | openai / deepseek / qwen / ollama |
| 모델 | 모델명, 예: gpt-4o、deepseek-chat、qwen-plus |
| API Key | 제공자 키; 비워 두면 환경 변수 OPSMINI_AI_KEY를 읽습니다 |
| API 주소 | OpenAI 호환 인터페이스 Base URL, 예: https://api.openai.com/v1 |
| 자연어 실행 작업 | AI의 운영 작업 실행 허용 여부 |
| 로그 지능형 분석 | AI 로그 분석 활성화 여부 |
| 알림 지능형 진단 | AI 알림 진단 활성화 여부 |
설정 우선순위: 환경 변수
OPSMINI_AI_KEY> 패널 설정 > 설정 파일에 잔존하는ai.*. 자세한 내용은 AI 어시스턴트를 참조하세요.
API Token¶
외부 시스템(모니터링 플랫폼, 자동화 스크립트, 서드파티 오케스트레이션 도구)을 위한 액세스 토큰을 생성합니다:
- 생성된 토큰은
/agent/v1인터페이스 호출에 사용되며, 요청 헤더에Authorization: Bearer <token>을 포함합니다 - 비워 두면 Agent API가 비활성화됩니다
- 「랜덤 생성」으로 강력한 랜덤 토큰을 원클릭 생성할 수 있습니다; 저장 후 적용됩니다
- 유출 시 즉시 재생성해야 합니다
명령 화이트리스트는 여전히 config.yaml의 agent.allowed_commands에서 관리합니다. 자세한 내용은 Agent API를 참조하세요.
외관과 테마¶
- 사용자 지정 메인 색상: 패널 브랜드 메인 색상 설정(기업 브랜드 색 / 개인 취향), 기본값 OpsMini 블루
#4f6ef7 - 메뉴 표시 / 언어: 패널 인터페이스 언어(7개 언어)와 메뉴 가시성
모니터링 내보내기(Prometheus)¶
/metrics 엔드포인트(node_exporter 호환)의 인증을 제어합니다:
| 항목 | 설명 |
|---|---|
| 인증 활성화 | /metrics에 HTTP Basic 인증 적용 여부 |
| 사용자 이름 / 비밀번호 | Basic 인증 자격 증명, 사용자 이름이 비어 있으면 공개 액세스 |
이곳의 설정이
config.yaml의metrics.user/password보다 우선합니다. Prometheus 스크래핑 시 해당basic_auth를 설정해야 합니다. 자세한 내용은 Prometheus 지표를 참조하세요.
앱 템플릿(앱 스토어)¶
앱 스토어의 앱 템플릿을 관리합니다:
- 공식 템플릿 동기화: opsmini.com 공식 앱 스토어에서 공식 앱 템플릿을 원클릭 동기화
- 수동 가져오기/내보내기: 오프라인 환경에서 공식 사이트에서 템플릿을 다운로드한 뒤 수동 가져오기, 또는 로컬 템플릿을 백업으로 내보내기
- 데이터 디렉터리: 앱 데이터 영속화 디렉터리(설치 스크립트가
DATA_DIR환경 변수로 참조)
알림¶
알림(경보) 통지 채널을 설정합니다:
| 채널 | 설명 |
|---|---|
| SMTP 이메일 | SMTP 서버 / 포트 / 발신자 / 수신자 / 사용자 이름 / 비밀번호 |
| 위챗 워크 | 그룹 봇 Webhook 주소 |
| 딩톡 | 그룹 봇 Webhook 주소 |
| 페이수 | 그룹 봇 Webhook 주소 |
알림이 트리거되면 이곳에 설정된 채널로 알림을 보냅니다.
로그 보관¶
- 패널 로그 보관 기간: 감사 로그와 액세스 로그의 보관 일수(기본 7일), 만료 시 자동 정리
- 알림 이벤트 보관 일수는 별도로 설정할 수 있습니다(기본 30일)
설정 저장¶
패널 설정은 key-value 형태로 SQLite의 settings 테이블에 저장되며 런타임에 읽습니다. 두 종류의 민감 항목은 서버 측에서 보호합니다:
- 읽기 전용 민감 항목(
jwt_secret、metrics_pass): 인터페이스가 프런트엔드에 반환하지 않습니다 - 쓰기 보호(
jwt_secret): 클라이언트가 덮어쓸 수 없으며 서버 측에서 자동 생성·관리합니다