iop/docs/edge-local-dev-guide.md

109 lines
2 KiB
Markdown

# Edge Local Quickstart
Edge는 package 하나, Node는 bootstrap 한 줄로 설치한다.
## 1. Package
```bash
make build
```
결과: `build/packages/iop-edge-<edge-os>-<edge-arch>.tar.gz`
## 2. Edge
```bash
tar -xzf iop-edge-<edge-os>-<edge-arch>.tar.gz -C /opt
cd /opt/iop-edge-<edge-os>-<edge-arch>
./iop-edge config init
./iop-edge env
```
필요하면 `edge.yaml`의 host/port/model만 수정한다.
## 3. Node 등록
```bash
./iop-edge node register node-1
```
Ollama Node:
```bash
./iop-edge node register node-1 \
--adapter ollama \
--ollama-base-url http://127.0.0.1:11434
```
출력된 `curl ... | bash -s <token>` 한 줄을 복사한다.
## 4. Edge 실행
```bash
./iop-edge config check
./iop-edge serve
```
서비스 실행:
```bash
sudo ./iop-edge setup --enable --start
```
## 5. Node 설치
Node host에서 복사한 명령을 실행한다.
```bash
curl -fsSL http://<edge-host>:18080/bootstrap/node.sh | bash -s <token>
```
`node.sh`가 OS/architecture를 자동 감지한다.
## 6. 확인
```bash
tail -f logs/edge.log
./iop-edge nodes list
```
정상: `node registered`
## Build Options
```bash
make build
make build EDGE_TARGET=darwin-arm64
make build EDGE_TARGET=darwin-arm64 NODE_TARGETS="darwin-arm64"
make pack-node-target NODE_TARGET=darwin-arm64 && make pack-edge EDGE_TARGET=darwin-arm64
```
`EDGE_TARGET`는 package에 들어갈 Edge binary와 Edge package 이름을 정한다.
`NODE_TARGETS`/`NODE_TARGET`는 Node bootstrap artifact 대상을 정한다.
Apple Silicon Mac:
```bash
make build EDGE_TARGET=darwin-arm64
```
Intel Mac:
```bash
make build EDGE_TARGET=darwin-amd64
```
Node bootstrap artifact도 macOS용만 포함하려면 `NODE_TARGETS`를 함께 좁힌다.
```bash
make build EDGE_TARGET=darwin-arm64 NODE_TARGETS="darwin-arm64"
make build EDGE_TARGET=darwin-amd64 NODE_TARGETS="darwin-amd64"
```
결과 예시:
```bash
build/packages/iop-edge-darwin-arm64.tar.gz
build/packages/iop-edge-darwin-amd64.tar.gz
```