업데이트로 돌아가기
New releaseAug 11, 2026

zoneminder v1.38.4

ZoneMinder는 IP, USB 및 아날로그 카메라를 지원하는 Linux용으로 개발된 무료 오픈소스 폐쇄회로 텔레비전(CCTV) 소프트웨어 애플리케이션입니다.

공유

ZoneMinder

Slack 참여하기 그림

ZoneMinder에 대한 모든 문서는 이제 https://zoneminder.readthedocs.org 에서 온라인으로 제공됩니다.

개요

ZoneMinder는 Linux 기반 머신에 연결된 모든 CCTV 또는 보안 카메라의 캡처, 분석, 녹화 및 모니터링을 제공하는 완전한 감시 솔루션을 제공하는 통합 애플리케이션 세트입니다. Video For Linux(V4L) 인터페이스를 지원하는 배포판에서 실행되도록 설계되었으며, BTTV 카드에 연결된 비디오 카메라, 다양한 USB 카메라로 테스트되었으며 대부분의 IP 네트워크 카메라도 지원합니다.

개발 팀에 연락하기

GitHub 포럼에 이슈를 생성하기 전에 게시 규칙을 읽어 주세요: https://github.com/ZoneMinder/ZoneMinder/wiki/Github-Posting-Rules

Dockerfile이 이전되었습니다

ZoneMinder Dockerfile에 대한 이슈는 여기에 올려 주세요: https://github.com/ZoneMinder/zmdockerfiles

설치 방법

패키지 저장소에서 설치

이 방법은 시스템에 ZoneMinder를 설치하는 데 권장되는 방법입니다. ZoneMinder 패키지는 다음 배포판을 위해 유지관리됩니다:

ZoneMinder 패키지를 제공하는 저장소가 해당 배포판에 없다면, 소스에서 빌드하는 대신 직접 패키지를 빌드하는 것이 좋습니다. 각 배포판은 다른 배포판과 구별되는 차이점이 있지만, 대개 충분히 유사하여 다른 배포판의 패키지 빌드 지침을 자신의 배포판에 맞게 조정할 수 있습니다.

소스에서 빌드하는 것은 권장되지 않습니다

과거에는 ZoneMinder를 시스템에 설치하려면 전통적인 configure, make, make install 명령을 실행하여 소스 코드에서 빌드해야 했습니다. ZoneMinder를 빌드하려면 모든 의존성을 사전에 파악하여 설치해야 했습니다. 빌드 후에는 init 및 logrotate 스크립트를 수동으로 제자리에 복사해야 했습니다. jscalendar 및 Cambozola와 같은 선택 패키지는 수동으로 설치해야 했습니다. 제거 시 오래된 파일이 남아 있어 업그레이드 중 문제를 일으킬 수 있었습니다. 업그레이드에 관해서는, 업그레이드할 때마다 이러한 모든 수동 단계를 다시 반복해야 했습니다.

오늘날에는 이러한 작업의 상당 부분을 대신 처리해 주는 더 나은 방법이 존재합니다. 현재 개발 팀은 다른 자원봉사자들과 함께 소스 빌드를 피하는 데 필요한 리소스를 제공하는 데 큰 진전을 이루었습니다.

ZoneMinder 패키지 빌드

ZoneMinder를 패키지로 빌드하는 것은 소스에서 빌드하는 것보다 어렵지 않습니다. 사실 과거에 소스에서 ZoneMinder를 성공적으로 빌드해 본 적이 있다면 이 단계가 더 쉽다고 느낄 수도 있습니다.

패키지를 빌드할 때는 개발 전용의 별도 환경에서 작업하는 것이 가장 좋습니다. 가상 머신 생성, Docker 또는 mock 사용만으로도 충분할 수 있습니다. 프로덕션 서버에서 이 작업을 수행한 것을 후회하게 만드는 데는 단 한 번의 "어랏"으로 충분합니다.

마지막으로, master 브랜치에서 개발 스냅샷을 빌드하려면 먼저 공식 ZoneMinder 릴리스로 패키지를 빌드하는 것이 좋습니다. 이렇게 하면 발생하는 문제가 빌드 프로세스 때문인지, 아니면 master 브랜치의 새로운 문제인지 식별하는 데 도움이 됩니다.

배포판별 지침은 ReadtheDocs 사이트를 방문하세요.

패키지 관리자

ZoneMinder 구성 변수의 기본값 중 다수는 빌드 시점에 autotools 또는 cmake를 통해 구성할 수 없습니다. 패키지 관리자가 소스를 패치하지 않고 ConfigData.pm에 저장된 모든 변수를 조작할 수 있도록 zmeditconfigdata.sh라는 새로운 도구가 추가되었습니다.

예를 들어, cambozola JavaScript 파일을 포함하는 새 ZoneMinder 패키지를 만들었다고 가정해 보겠습니다. 그러나 기본적으로 cambozola 지원은 꺼져 있습니다. 이를 수정하려면 패키징 스크립트에 다음을 추가하세요:

./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes

zmeditconfigdata.sh는 루트 빌드 폴더에서 cmake 또는 configure를 실행하기 전에 호출하도록 설계되었습니다.

Docker

Docker는 애플리케이션을 격리된 컨테이너 안에서 실행하는 시스템입니다. ZoneMinder와 ZM 웹 서버는 이 저장소에 포함된 Dockerfile을 사용하여 실행됩니다. 그러나 주요 ZM 기능이 제대로 작동하고 문서화되도록 하기 위해 아직 해야 할 작업이 남아 있습니다.

기여 모델 및 개발

Pull Request는 언제나 환영합니다! 기여하고 싶다면 다음 단계를 따라 주세요. 3단계는 선택 사항이지만 권장됩니다.

  1. 저장소를 포크하세요
  2. GitHub 이슈 트래커에서 이슈를 여세요. 이슈 템플릿에 따라 발견한 버그나 보안 문제를 설명해 주세요. 기능 요청이나 질문은 사용자 포럼이나 Slack 채널에 올려야 합니다.
  3. 기능 브랜치를 만드세요 (git checkout -b 456-my-new-feature)
  4. 변경 사항을 커밋하세요 (git commit -am 'Added some feature') 모든 변경 사항을 단일 커밋으로 묶는 대신 '자주 그리고 일찍 커밋'하는 것이 좋습니다.
  5. 브랜치를 GitHub의 포크로 푸시하세요 (git push origin 456-my-new-feature)
  6. 새 Pull Request를 만드세요
  7. 팀이 검토하고 논의한 후 변경 사항을 병합해 주기를 바랍니다.

카테고리