PatchMon
엔터프라이즈급 Linux 패치 및 서버 관리 플랫폼
Website
Cloud
Discord
GitHub
Feedback
Roadmap
Documentation
Latest Release
Stars
License
AI-DECLARATION: pair
</div>
PatchMon이란 무엇인가?
PatchMon은 운영팀이 Linux 플릿(fleet)을 모니터링, 패치 및 보안할 수 있는 단일 창(single pane of glass)을 제공하는 엔터프라이즈급 플랫폼이며, FreeBSD와 Windows 에이전트 지원 기능을 갖추고 있습니다.
경량 에이전트는 설정된 스케줄에 따라 PatchMon 서버로 아웃바운드 전용으로 통신하며, 모니터링되는 호스트에 인바운드 포트를 요구하지 않습니다. 이를 통해 모든 규모의 환경에서 패키지 상태, 규정 준수(compliance posture), 시스템 상태에 대한 실시간 가시성을 제공합니다.
Dashboard Screenshot
왜 PatchMon인가?
- 아웃바운드 전용 에이전트 - 인바운드 방화벽 변경 불필요, SSH 또는 WinRM 노출 없음, VPN 필요 없음.
- 단일 바이너리, 번들 UI - React 프런트엔드가 내장된 단일 Go 바이너리. 배포 시 Node 런타임이 필요 없는 하나의 컨테이너.
- 오픈 소스 및 관리형 클라우드 제공 - AGPL v3 라이선스로, 자체 호스팅(self-host)이 무료입니다. 프로덕션 호스팅은 patchmon.net/cloud에서 이용 가능합니다.
- 설계상 멀티 OS 지원 - Linux (apt, dnf, yum, apk, pacman), FreeBSD (pkg), Windows를 동일한 에이전트와 제어 평면(control plane)으로 처리합니다.
빠른 시작
Docker가 PatchMon을 시도해 볼 수 있는 가장 빠른 방법입니다:
mkdir patchmon && cd patchmon
bash -c "$(curl -fsSL https://raw.githubusercontent.com/PatchMon/PatchMon/refs/heads/main/docker/setup-env.sh)"
docker compose up -d
http://localhost:3000에 접속하여 관리자 사용자(admin user)를 생성하고, UI에서 호스트를 추가한 후 생성된 설치 명령을 대상 서버에 복사합니다.
전체 배포 옵션(Docker 수동, Proxmox LXC, PatchMon Cloud)은 배포 섹션에 있습니다.
주요 기능 요약 (Features at a Glance)
패치 관리 (Patch Management)
PatchMon의 핵심 기능입니다. 검증(validation), 승인(approval) 및 실시간 가시성을 통해 전체 서버군(fleet)에 걸쳐 업데이트를 오케스트레이션합니다.
| 기능 | 설명 |
|---|
| 건식 실행 검증 (Dry-Run Validation) | 프로덕션 환경에 어떤 변경도 가하기 전에 호스트에서 정확한 패키지 트랜잭션을 미리 확인해 볼 수 있습니다. 모든 실행 기록은 전체 계획을 캡처하므로 무엇이 변경될지 알 수 있습니다. |
| ... | |
| Patching Screenshot | |
가시성 및 인벤토리 (Visibility & Inventory)
| 기능 | 설명 |
|---|
| 개인화된 대시보드 (Personalised Dashboard) | 사용자별로 서버군 상태, 오래된 패키지, 호스트 상태 및 패치 활동을 한눈에 볼 수 있는 드래그 앤 리오더(drag-and-reorder) 개요 카드입니다. |
| ... | |
보안 및 규정 준수 (Security & Compliance)
| 기능 | 설명 |
|---|
| 규정 준수 스캔 (Compliance Scanning) | OpenSCAP CIS 벤치마크(CIS Benchmarks)와 Docker Benchmark for Security를 실행합니다. 규칙 수준의 결과와 개선 지침을 통해 시간에 따른 규정 준수 점수를 추적할 수 있습니다. |
| ... | |
| Reporting & Alerts Screenshot | |
Notification Routing Screenshot
접근 및 운영 (Access & Operations)
| 기능 | 설명 |
|---|
| 웹 SSH 터미널 (Web SSH Terminal) | UI에서 모든 호스트로 브라우저 기반 SSH 접속이 가능합니다. 직접 연결 또는 프록시 모드(에이전트를 통해 경로 지정, SSH 포트 노출 없음)를 지원합니다. |
| ... | |
| AI Terminal Assistant Screenshot | |
| 기능 | 설명 |
|---|
| 통합 기능 (Integrations) | Proxmox LXC 자동 등록(auto-enrolment), getHomepage, Ansible 등을 포함하여 33개 이상의 통합 기능을 제공합니다. |
| REST API | JWT 인증을 갖춘 전체 /api/v1과 /api-docs에서 상호 작용 가능한 Swagger / OpenAPI 문서를 제공합니다. |
배포 옵션 (Deployment Options)
PatchMon Cloud
patchmon.net/pricing 에서 14일 무료 체험 이용 가능
인프라 오버헤드 없이 완벽하게 관리되는 PatchMon 호스팅입니다. 프로비저닝, 업데이트, 백업 및 스케일링을 저희가 처리하므로, 사용자는 도구 자체보다는 서버군 관리에 집중할 수 있습니다.
자체 호스팅 - Docker (공식 지원)
Docker는 선호되며 공식적으로 지원되는 자체 호스팅 배포 방식입니다. 보안을 위해 강화된 이미지(hardened images)를 사용합니다.
자동 설정(Automated setup): 빈 디렉토리에서 자동 설정이 가능합니다. 이 설정 스크립트는 docker-compose.yml과 env.example을 다운로드하고, 필요한 모든 Secret을 생성하며, URL 및 CORS_ORIGIN 설정을 대화형으로 안내합니다:**
mkdir patchmon && cd patchmon
bash -c "$(curl -fsSL https://raw.githubusercontent.com/PatchMon/PatchMon/refs/heads/main/docker/setup-env.sh)"
docker compose up -d
설정한 URL(기본값: http://localhost:3000)에서 애플리케이션에 접속하세요.
수동 Docker 설정: Docker를 이용한 PatchMon 서버 설치를 참조하세요.
자체 호스팅(Self-Hosted) - Proxmox LXC
Proxmox VE Helper-Scripts 커뮤니티 스크립트를 통해 원클릭 LXC 배포가 가능합니다:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/patchmon.sh)"
호스트 등록(Enrolling Hosts)
서버가 실행되면 다음 단계를 따릅니다:
- UI에 로그인하여 Hosts 섹션 아래에 호스트를 추가합니다.
- PatchMon이 개별 호스트 API 키와 함께 한 줄 설치 명령어를 생성합니다.
- 해당 명령어를 대상 서버(root/sudo 필요)에 붙여넣으면 에이전트가 스스로 등록됩니다.
지원되는 에이전트 플랫폼: Linux (amd64, 386, arm64, arm), FreeBSD (amd64, 386, arm64, arm), Windows (amd64, 386, arm64).
최소 서버 사양(Minimum Server Specs)
아키텍처(Architecture)
| 컴포넌트 | 기술 |
|---|
| 백엔드(Backend) | Go, sqlc, chi router |
| ... | |
flowchart LR
A[Browser / Admin UI] -- HTTPS --> B[Your Reverse Proxy]
B -- HTTP --> C[Backend - Go Binary]
...
에이전트가 모든 통신을 시작합니다. 보고서와 설정은 HTTPS를 통해 전송되며, 실시간 패치 스트리밍 및 Docker 상태와 같은 실시간 이벤트는 WSS (WebSocket over TLS)를 통해 전송됩니다.
패스 트래픽을 PatchMon 컨테이너 :3000 포트 또는 사용자가 결정한 포트로 전달할 때 Websockets가 프록시에서 지원되는지 확인해야 합니다.
문서 (Documentation)
전체 문서는 **patchmon.net/docs**에서 확인하실 수 있습니다.
지원 (Support)
전문가 및 엔터프라이즈 (Professional & Enterprise)
기여 (Contributing)
커뮤니티의 기여를 환영합니다. 전체 가이드는 **CONTRIBUTING.md**에서 확인해 주세요: 코드 스타일, 커밋 규칙(commit conventions), 테스트 실행, 문서화 워크플로우 및 PR 프로세스에 대한 내용입니다.
간단 요약:
- 기존 패턴과 Biome / golangci-lint 구성을 따르세요.
- 관례적 커밋 메시지(
feat:, fix:, docs: 등)를 사용하세요.
- 새로운 기능에 대한 테스트를 추가하고 전체 테스트 스위트(full suite)가 통과하는지 확인하세요.
- 코드 변경 사항과 함께 문서를 업데이트하세요.
'좋은 첫 이슈'(good first issue)는 이슈 트래커에서 라벨링되어 있습니다.
어디에 무엇을 넣어야 할지 모르겠다면? 버그는 GitHub Issues에, 기능 아이디어는 피드백 포털에, 질문은 Discussions에 작성해 주세요. 도움말 센터에서 각 항목에 대해 더 자세히 설명합니다.
기능을 구축할 계획이라면, 먼저 피드백 포털에서 요청이 승인되었는지 확인해 주세요. AI 지원 기여는 환영하지만 공개(disclosure)가 필수입니다. AI 지원 기여와 당사의 AI 선언문을 참조하세요.
로드맵 (Roadmap)
feedback.patchmon.net/roadmap에서 다가오는 기능들을 확인하고 다음에 구축할 기능에 투표해 보세요.
승인된 요청은 로드맵에 표시되며, 배포됨에 따라 계획(Planned), 진행 중(In Progress), 완료(Completed) 단계를 거칩니다. 투표는 누구나 할 수 있으며, 투표한 내용이 출시되면 알림을 받게 됩니다. 전체 프로세스는 기능 요청이 구축되는 과정에서 확인하세요.
PatchMon PRO - 엔터프라이즈 및 벤더 지원 (Enterprise & Vendor Support)
PatchMon은 전 세계적으로 프로덕션 인프라를 관리하는 팀들에게 신뢰받고 있습니다. 당사는 조직의 요구 사항에 맞춰 글로벌 벤더 지원과 엔터프라이즈 솔루션을 제공합니다.
| 서비스 | 상세 내용 |
|---|
| PatchMon Cloud | 완전 관리형 호스팅 - 인프라, 업데이트, 백업 및 확장은 저희가 처리해 드립니다. |
| ... | |
| 엔터프라이즈 및 벤더 지원 문의는 [email protected]으로 연락주세요. | |
라이선스 (License)
AGPL v3 - 자세한 내용은 LICENSE를 참조하세요.
<div align="center">
PatchMon 팀이 ❤️로 제작했습니다
본 프로젝트는 수백 시간의 개발 작업으로 이루어졌습니다. 만약 PatchMon이 시간을 절약해 주었거나 인프라 보안에 도움을 주었다면, 커피 한 잔은 정말 큰 의미가 될 것입니다.
Buy Me A Coffee
⭐ PatchMon이 유용하다고 생각되시면, 이 레포지토리에 별표를 눌러주세요. 다른 사람들이 프로젝트를 발견하는 데 도움이 됩니다!
Website
Cloud
Discord
GitHub
Feedback
Documentation
</div>