Initial commit: Add runbooks collection
- anvil-load-test-report.md - claude_communication_flow.md - incus-crowdsec-architecture.md - incus-meilisearch-manual.md - kitty-setup-guide.md - OpenAppSec_WAF_Operations_Guide.md - openappsec-setup-20250817.md - xray-proxy-guide.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
312
incus-meilisearch-manual.md
Normal file
312
incus-meilisearch-manual.md
Normal file
@@ -0,0 +1,312 @@
|
||||
# Incus에서 Meilisearch 실행 매뉴얼
|
||||
|
||||
## 목차
|
||||
1. [기본 실행](#1-기본-실행)
|
||||
2. [환경변수 설정](#2-환경변수-설정)
|
||||
3. [포트 포워딩](#3-포트-포워딩)
|
||||
4. [볼륨 마운트](#4-볼륨-마운트)
|
||||
5. [Docker Compose 변환](#5-docker-compose-변환)
|
||||
6. [컨테이너 관리](#6-컨테이너-관리)
|
||||
7. [문제 해결](#7-문제-해결)
|
||||
|
||||
---
|
||||
|
||||
## 1. 기본 실행
|
||||
|
||||
### 간단한 실행
|
||||
```bash
|
||||
incus launch docker.io/getmeili/meilisearch meilisearch-container
|
||||
```
|
||||
|
||||
### 리소스 제한과 함께 실행
|
||||
```bash
|
||||
incus launch docker.io/getmeili/meilisearch meilisearch-container \
|
||||
--config limits.cpu=2 \
|
||||
--config limits.memory=1GB
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 환경변수 설정
|
||||
|
||||
### 컨테이너 생성 시 환경변수 설정
|
||||
```bash
|
||||
incus launch docker.io/getmeili/meilisearch meilisearch-container \
|
||||
--config environment.MEILI_MASTER_KEY=your-secret-key \
|
||||
--config environment.MEILI_ENV=production \
|
||||
--config environment.MEILI_DB_PATH=/data.ms
|
||||
```
|
||||
|
||||
### 실행 중인 컨테이너에 환경변수 추가
|
||||
```bash
|
||||
# 컨테이너 중지
|
||||
incus stop meilisearch-container
|
||||
|
||||
# 환경변수 설정
|
||||
incus config set meilisearch-container environment.MEILI_MASTER_KEY=your-secret-key
|
||||
incus config set meilisearch-container environment.MEILI_ENV=production
|
||||
incus config set meilisearch-container environment.MEILI_DB_PATH=/data.ms
|
||||
|
||||
# 또는 한 번에 여러 개 설정
|
||||
incus config set meilisearch-container \
|
||||
environment.MEILI_MASTER_KEY=your-secret-key \
|
||||
environment.MEILI_ENV=production \
|
||||
environment.MEILI_DB_PATH=/data.ms
|
||||
|
||||
# 컨테이너 재시작
|
||||
incus restart meilisearch-container
|
||||
```
|
||||
|
||||
### 환경변수 확인 및 삭제
|
||||
```bash
|
||||
# 모든 설정 확인
|
||||
incus config show meilisearch-container
|
||||
|
||||
# 특정 환경변수 확인
|
||||
incus config get meilisearch-container environment.MEILI_MASTER_KEY
|
||||
|
||||
# 환경변수 삭제
|
||||
incus config unset meilisearch-container environment.MEILI_MASTER_KEY
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 포트 포워딩
|
||||
|
||||
### 포트 7700 포워딩
|
||||
```bash
|
||||
incus config device add meilisearch-container http proxy \
|
||||
listen=tcp:0.0.0.0:7700 \
|
||||
connect=tcp:127.0.0.1:7700
|
||||
```
|
||||
|
||||
### 여러 포트 포워딩
|
||||
```bash
|
||||
# HTTP 포트
|
||||
incus config device add meilisearch-container http proxy \
|
||||
listen=tcp:0.0.0.0:7700 \
|
||||
connect=tcp:127.0.0.1:7700
|
||||
|
||||
# 추가 포트 (예: metrics)
|
||||
incus config device add meilisearch-container metrics proxy \
|
||||
listen=tcp:0.0.0.0:8080 \
|
||||
connect=tcp:127.0.0.1:8080
|
||||
```
|
||||
|
||||
### 포트 포워딩 확인
|
||||
```bash
|
||||
incus config device show meilisearch-container
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 볼륨 마운트
|
||||
|
||||
### 데이터 디렉토리 마운트
|
||||
```bash
|
||||
# 호스트 디렉토리를 컨테이너에 마운트
|
||||
incus config device add meilisearch-container data disk \
|
||||
source=/home/user/meilisearch-data \
|
||||
path=/data.ms
|
||||
```
|
||||
|
||||
### 스토리지 풀 사용
|
||||
```bash
|
||||
# 스토리지 풀 생성
|
||||
incus storage create meilisearch-pool dir
|
||||
|
||||
# 볼륨 생성
|
||||
incus storage volume create meilisearch-pool meilisearch-data
|
||||
|
||||
# 볼륨 연결
|
||||
incus config device add meilisearch-container data disk \
|
||||
pool=meilisearch-pool \
|
||||
source=meilisearch-data \
|
||||
path=/data.ms
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Docker Compose 변환
|
||||
|
||||
### Docker Compose 예시
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
meilisearch:
|
||||
image: getmeili/meilisearch:latest
|
||||
environment:
|
||||
- MEILI_MASTER_KEY=masterKey
|
||||
- MEILI_ENV=production
|
||||
- MEILI_DB_PATH=/data.ms
|
||||
ports:
|
||||
- "7700:7700"
|
||||
volumes:
|
||||
- ./data:/data.ms
|
||||
restart: always
|
||||
```
|
||||
|
||||
### Incus 명령어로 변환
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# meilisearch-setup.sh
|
||||
|
||||
# 1. 컨테이너 생성 및 환경변수 설정
|
||||
incus launch docker.io/getmeili/meilisearch:latest meilisearch \
|
||||
--config environment.MEILI_MASTER_KEY=masterKey \
|
||||
--config environment.MEILI_ENV=production \
|
||||
--config environment.MEILI_DB_PATH=/data.ms
|
||||
|
||||
# 2. 포트 포워딩 설정
|
||||
incus config device add meilisearch http proxy \
|
||||
listen=tcp:0.0.0.0:7700 \
|
||||
connect=tcp:127.0.0.1:7700
|
||||
|
||||
# 3. 볼륨 마운트
|
||||
incus config device add meilisearch data disk \
|
||||
source=$(pwd)/data \
|
||||
path=/data.ms
|
||||
|
||||
# 4. 자동 재시작 설정
|
||||
incus config set meilisearch boot.autostart=true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 컨테이너 관리
|
||||
|
||||
### 기본 명령어
|
||||
```bash
|
||||
# 시작
|
||||
incus start meilisearch-container
|
||||
|
||||
# 중지
|
||||
incus stop meilisearch-container
|
||||
|
||||
# 재시작
|
||||
incus restart meilisearch-container
|
||||
|
||||
# 삭제
|
||||
incus delete meilisearch-container --force
|
||||
|
||||
# 상태 확인
|
||||
incus list meilisearch-container
|
||||
```
|
||||
|
||||
### 로그 및 모니터링
|
||||
```bash
|
||||
# 로그 확인
|
||||
incus logs meilisearch-container
|
||||
|
||||
# 실시간 로그
|
||||
incus logs meilisearch-container --follow
|
||||
|
||||
# 컨테이너 접속
|
||||
incus exec meilisearch-container -- /bin/bash
|
||||
|
||||
# 프로세스 확인
|
||||
incus exec meilisearch-container -- ps aux
|
||||
```
|
||||
|
||||
### 리소스 모니터링
|
||||
```bash
|
||||
# CPU/메모리 사용량
|
||||
incus info meilisearch-container
|
||||
|
||||
# 상세 정보
|
||||
incus config show meilisearch-container
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. 문제 해결
|
||||
|
||||
### 포트 접속 안 될 때
|
||||
```bash
|
||||
# 포트 포워딩 확인
|
||||
incus config device show meilisearch-container
|
||||
|
||||
# 컨테이너 내부에서 서비스 확인
|
||||
incus exec meilisearch-container -- netstat -tlnp
|
||||
|
||||
# 방화벽 확인 (호스트)
|
||||
sudo ufw status
|
||||
```
|
||||
|
||||
### 환경변수 적용 안 될 때
|
||||
```bash
|
||||
# 환경변수 확인
|
||||
incus exec meilisearch-container -- env | grep MEILI
|
||||
|
||||
# 재시작
|
||||
incus restart meilisearch-container
|
||||
```
|
||||
|
||||
### 데이터 영속성 문제
|
||||
```bash
|
||||
# 마운트 확인
|
||||
incus config device show meilisearch-container
|
||||
|
||||
# 권한 확인
|
||||
incus exec meilisearch-container -- ls -la /data.ms
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 실전 예제
|
||||
|
||||
### Production 환경 설정
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
# 변수 설정
|
||||
CONTAINER_NAME="meilisearch-prod"
|
||||
MASTER_KEY="$(openssl rand -base64 32)"
|
||||
DATA_PATH="/var/lib/meilisearch"
|
||||
|
||||
# 데이터 디렉토리 생성
|
||||
sudo mkdir -p $DATA_PATH
|
||||
|
||||
# 컨테이너 생성
|
||||
incus launch docker.io/getmeili/meilisearch:latest $CONTAINER_NAME \
|
||||
--config limits.cpu=4 \
|
||||
--config limits.memory=4GB \
|
||||
--config environment.MEILI_MASTER_KEY=$MASTER_KEY \
|
||||
--config environment.MEILI_ENV=production \
|
||||
--config environment.MEILI_DB_PATH=/data.ms \
|
||||
--config environment.MEILI_LOG_LEVEL=INFO
|
||||
|
||||
# 포트 설정
|
||||
incus config device add $CONTAINER_NAME http proxy \
|
||||
listen=tcp:0.0.0.0:7700 \
|
||||
connect=tcp:127.0.0.1:7700
|
||||
|
||||
# 볼륨 마운트
|
||||
incus config device add $CONTAINER_NAME data disk \
|
||||
source=$DATA_PATH \
|
||||
path=/data.ms
|
||||
|
||||
# 자동 시작 설정
|
||||
incus config set $CONTAINER_NAME boot.autostart=true
|
||||
|
||||
echo "Meilisearch Master Key: $MASTER_KEY"
|
||||
echo "Access URL: http://localhost:7700"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 참고 사항
|
||||
|
||||
- Meilisearch 기본 포트: 7700
|
||||
- 프로덕션 환경에서는 반드시 `MEILI_MASTER_KEY` 설정
|
||||
- 데이터 영속성을 위해 볼륨 마운트 권장
|
||||
- 리소스 제한 설정으로 시스템 안정성 확보
|
||||
- 정기적인 백업 필요 (데이터 디렉토리 백업)
|
||||
|
||||
---
|
||||
|
||||
## 추가 리소스
|
||||
|
||||
- [Meilisearch 공식 문서](https://docs.meilisearch.com/)
|
||||
- [Incus 공식 문서](https://linuxcontainers.org/incus/docs/main/)
|
||||
- [Docker Hub - Meilisearch](https://hub.docker.com/r/getmeili/meilisearch)
|
||||
Reference in New Issue
Block a user