[Proxmox] Meilisearch 설치 삽질기: 디스크 오류부터 24900번의 배신까지
프로젝트 Do Eat Fit에 검색에 대한 기능 고도화를 하여 사용자 경험을 상승시키고자 Homelab에 검색 엔진 Meilisearch를 올리려다 겪은 다사다난한 과정을 거쳤다. 설치 직후 서버가 먹통이 되는 현상부터, 로그, 버전 호환성 문제, 그리고 웹 까지… 약 2시간여 시간이 걸렸다.
1. 설치 직후 먹통과 디스크 용량의 미스터리
Meilisearch 설치 스크립트를 실행한 후, 갑자기 Proxmox 서버가 먹통이 되었다. 밖에서 작업하고 있었는데… 이땐 엄마를 불러 재부팅을 요청한다.
🔍 증상 및 확인
-
재부팅 후 원격 접속: 간신히 서버를 재부팅하고 쉘에 접속하니 설치 로그에 문구가 남아있었다.
Storage local-btrfs (Free: 848.0MB Used: 104.0MB) -
디스크 용량 확인 (df -h):
아니 내가 1TB로 맞추고 뭐 따로 저장하는 것도 없는데 뭐지 싶어 확인해보니 사용량은 고작 12%… ??
df -h- 결론: 스크립트가 템플릿 저장소의 남은 용량을 전체 용량으로 잘못 매핑되어 있는지 어쨋든 잘못 표시한 것 같았다.
그럼 이게 아니면 뭘까 싶어 이럴때 부르는 우리의 아주 우수한 선생님이 계신다. Gemini 3
2. 로그 분석과 범인 검거: Debian 13의 반란
선생님께서 시키는데로 쉘에 컨테이너 실행 로그를 직접 찍어보았다. 여기서 진짜 에러가 쏟아져 나왔다.
🔍 로그 확인 명령어
lxc-start -n {your-lxc-node-number} -F💡 발견된 에러 (Protocol Error)
화면에 다음과 같은 에러가 출력되었다.
Failed to set up credentials: Protocol error
systemd-journald.service: Failed … Protocol error
그래서 이게 뭔가요 선생님
🛠️ 원인 및 해결 (스크립트 개조)
Gemini에게 물어보니 원인은 OS 버전 호환성이었다.
- 원인: 설치 스크립트가 기본적으로 Debian 13 (Trixie/Testing) 을 설치하는데, 최신
systemd가 Proxmox 호스트의 커널과 호환되지 않아(Protocol Error) 부팅이 안 되는 것.
요즘 쉘스크립트 사용해서 설치하면 자꾸 Debian 13으로 설치된다고 한다.
- 해결: 스크립트를 다운로드해 Debian 12 (Bookworm) 로 강제 수정.
- 스크립트 다운로드:
wget https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/meilisearch.sh-
버전 변수 수정 (
nano meilisearch.sh):var_version="13" --> var_version="12" -
수정된 스크립트로 설치:
chmod +x meilisearch.sh ./meilisearch.sh👉 결과: 설치 성공!
-
🗑️ 뒷정리:
설치가 완료되었으므로 수정했던 임시 스크립트 파일은 깔끔하게 삭제했다.
rm meilisearch.sh
3. 24900번 포트의 저주와 2차 셧다운
설치는 성공했지만, 스크립트가 같이 깔아준 웹 UI (포트 24900) 에 접속하자마자 Proxmox가 또다시 뻗어버렸다. 아니 왜요… 엄마?
🔍 상황 분석
-
증상: 브라우저로
http://IP:24900에 접속을 시도하자마자 서버 응답이 사라짐. -
조치: 재부팅 후 검색해보니
-
24900번(meilisearch-ui): 공식 팀이 아닌 커뮤니티에서 만든 구형 사제 프로그램. IP 하드코딩 문제 등으로 시스템을 불안정하게 만듦.
-
7700번(Engine): 과거엔 통신용 API 포트였으나, 최신 버전부터는 웹 GUI 대시보드가 내장되어 있음.
-
✅ 해결: 구형 UI 삭제
불안정한 24900번 UI 까지 설치된 컨테이너를 Destroy하고 순정 상태로 가기로 결정. 다시 설치
4. 7700번의 재발견과 개발자 모드 (Final)
24900번을 버리고 공식 포트 7700으로 접속했다.
🔍 1차 시도: JSON의 벽
이제는 되겠지? 하고 브라우저로 접속하니 기대했던 화면 대신 JSON 응답만 떴다.
{"status": "running"}
네… 저도 알아요 돌아가네요. 다시 찾아보니 보안상 프로덕션(Production) 모드에서는 대시보드 화면을 숨기기 때문이란다.
✅ 2차 시도: 개발자 모드 활성화 (성공)
설정 파일을 수정하여 숨겨진 GUI를 활성화 했다.
-
설정 파일 수정:
nano /etc/meilisearch.toml_(서비스 파일을 확인해서 경로를 찾으면 된다.
systemctl cat meilisearch) -
내용 변경:
# production을 development로 수정 env = "development" # (선택) 로그인용 마스터 키 확인/설정 master_key = "mySecretKey..." -
서비스 재시작:
systemctl restart meilisearch
🎉 결과
다시 접속하니 Meilisearch 공식 웹 대시보드가 정상적으로 열렸다.
📝 3줄 요약
-
디스크 부족 로그는 가짜였고, 진짜 범인은 Debian 13(Protocol Error) 이었다.
-
스크립트 버전(
var_version) 을 12로 수정해서 설치해야 한다. -
24900번은 시스템을 뻗게 만드니 버리고, 7700번 +
env="development"조합을 쓰자.