# 오프라인 반입 도구 묶음

## 복사할 것

`contextra-offline-tools-20260928-r03.tar`와 같은 이름의 `.sha256` 파일을 USB에 복사합니다.
이 묶음은 LLM 실행기, Linux/Windows OpenCode, GUI 누락 패키지, 관측 image, 유지보수 도구와 안내를 담습니다.
기존 현장 서버를 계속 사용하는 용도입니다. 서버 전체 복구 image는 아닙니다.

## 복사 후 확인

```bash
sha256sum -c contextra-offline-tools-20260928-r03.tar.sha256
tar -xf contextra-offline-tools-20260928-r03.tar
cd usb-kit-20260928-r03
sha256sum -c SHA256SUMS
```

archive SHA256은 가능하면 USB와 별도 경로로 전달받은 값과 대조합니다.
기존 파일 위에 풀지 말고 새 전용 폴더에서 확인합니다. Windows에서는 `Get-FileHash -Algorithm SHA256`으로 tar를 검사할 수 있습니다.

## 오늘 현장 서버에 이미 준비한 것

- 기존 Qwen 모델과 local LLM/agent 실행기. 한국어 질답과 제한된 오프라인 코드 수정 검증 완료.
- 임시 Xfce/한글 입력 패키지. 기본 Off, 물리 GUI 화면은 현장 확인 대상.
- Prometheus/Grafana/Node image와 설정, 기본 Off. 실제 host/GPU/Contextra/Triton 지표 및 Grafana 응답 확인.
- `ct` 메뉴·작업 기록·APP image 적용·주소/CA 전환 도구.

설치 완료한 도구에 installer를 무조건 다시 실행하지 않습니다. 기존 설정/비밀키를 보존하도록 덮어쓰기를 거부합니다.

## 함께 읽을 파일

1. `windows/WINDOWS_PREP.ko.md`: Windows 담당자가 오늘 준비할 것과 내일 새 IP로 연결하는 순서.
2. `maintenance/OFFLINE_OPERATIONS.ko.md`: AI 서버의 CLI/LLM/GUI/관측/작업 기록 사용법.
3. `maintenance/NETWORK_TRANSITION.ko.md`: 현장 새 IP·CA 준비/명시적 enrolment/적용 순서.
4. `MANIFEST.json`: 구성 파일과 SHA256. `observability/images.json`: 고정 image 지문.

## 이 묶음에 넣지 않은 것

- 비밀번호, token, API key, SSH/private TLS key, 전체 환경설정.
- 원본 영상, Event/학습 자료, DB/원장.
- 약17.6GB인 기존 GGUF 모델. 해당 모델은 AI 서버에 이미 보존되어 있습니다.
- Contextra 전체 Runtime image와 모델 engine. 현재 검증된 image/cache/model은 현장 서버에 보존합니다.
  대신 작은 Crowd source kit와 검증된 app source snapshot을 포함합니다. 전체 서버 신규 설치용은 아닙니다.

부모의 `crowd-20260928-r02`를 기준으로 APP image 적용과 모델 readiness를 확인했습니다.
source는 작업본과 Runtime image로 분리했고 host app bind는 사용하지 않습니다.
새 IP의 OS 설정이나 Web CA 등록을 이 tar를 푸는 것만으로 자동 수행하지 않습니다.

## 다음 USB 패치와 현장 수정

현장에서 source를 고치기 전 `ct work begin`, 완료 후 `ct work end`를 사용합니다.
검토한 기록 archive를 test 서버로 가져오면 baseline hash와 diff를 기준으로 다음 패치와 충돌을 확인할 수 있습니다.
현장 수정이 있으면 새 패치를 조용히 덮어쓰지 말고 차이를 먼저 합의합니다.

## 재설치 자료의 범위

GUI DEB는 당시 Ubuntu24.04 현장 서버에서 누락된 패키지만 모은 것입니다. 임의의 새 Ubuntu PC 전체 설치용은 아닙니다.
API key와 Grafana password는 새 설치 시 현장에서 생성하며 USB에 넣지 않습니다.

## 공식 자료

- https://github.com/ggml-org/llama.cpp/releases/tag/b11146
- https://github.com/anomalyco/opencode/releases/tag/v1.18.33
- https://prometheus.io/docs/prometheus/latest/storage/
- https://prometheus.io/docs/guides/node-exporter/
- https://grafana.com/docs/grafana/latest/administration/provisioning/
