BetterStatusPage: 자체 호스팅 모니터링 및 상태 페이지를 하나의 컨테이너에 통합 (SQLite, OIDC SSO, YAML 설정)
요약
BetterStatusPage는 자체 호스팅이 가능한 무료 모니터링 및 상태 페이지 도구입니다. SQLite를 사용하는 단일 Node.js 프로세스로, 별도의 DB 서버 없이도 운영 가능하며 다양한 모니터 유형과 알림 채널을 지원합니다. OIDC SSO와 CI/CD 통합 기능 등 엔지니어링 팀의 요구사항을 충족하도록 설계되었습니다.
핵심 포인트
- SQLite 기반으로 단일 컨테이너에 통합되어 배포가 간편함.
- HTTPS, DB 쿼리, Docker 등 9가지 모니터 유형을 지원합니다.
- OIDC SSO 및 다양한 알림 채널(Slack, Teams 등)을 제공합니다.
- YAML 설정과 Prometheus 메트릭 등을 통해 운영/보안 기능을 강화했습니다.
직장에서 저희는 상태 페이지가 필요했습니다. 주변을 둘러봤지만, 특히 여전히 몇몇 내부 서비스에서 사용하는 CAS 로그인이 필요한 모든 것을 커버하는 무료 도구는 없었습니다. 그래서 이 주제는 보통 그러하듯이 사그라졌습니다. 저는 취미 프로젝트로 작은 것을 집에서 만들기로 결정했습니다: HTTP 모니터, CAS 로그인 및 이메일 알림입니다. 이것은 훨씬 더 큰 무언가로 성장했습니다. 그것이 바로 BetterStatusPage이며, 자체 호스팅을 위해 구축된 무료 MIT 라이선스 모니터링 도구로, 공개 또는 비공개 상태 페이지를 제공합니다. 현재 버전은 v0.4.0이며 활발하게 개발 중입니다. - GitHub: https://github.com/BElluu/BetterStatusPage - Docs: https://docs.betterstatuspage.dev - 개요 및 테스트 데이터가 포함된 5분 라이브 데모 (방문자마다 자체 인스턴스를 받음): https://betterstatuspage.dev SQLite를 사용하는 단일 Node.js 프로세스로, 별도의 데이터베이스 서버, Redis 또는 큐가 필요하지 않습니다. Docker Compose 또는 원라인 설치 스크립트로 실행됩니다. 기능 - 9가지 모니터 유형: HTTPS (키워드, JSON 경로 및 헤더 확인, 느린 응답 임계값, Basic/OAuth2/CAS 인증, TLS 만료 경고), ping/TCP, DNS, SQL Server, PostgreSQL, MySQL/MariaDB 및 MongoDB 쿼리 모니터, Docker 컨테이너, 수동 하트비트 - 이메일, Slack, Teams, Discord, Telegram, ntfy, Pushover 및 웹훅으로 알림을 보내며, 실패 임계값, 무음 시간(quiet hours) 및 요약본(digests) 기능을 제공합니다. - 모니터 종속성을 확인하여 여러 개의 경고 대신 하나의 근본 원인 경고를 받습니다. - 액션: 모니터가 다운되거나 복구될 때 HTTP 요청을 전송합니다 (예:
Jenkins에서 장애 조치(failover) 작업을 트리거하는 상태 페이지: 드래그 앤 드롭 빌더 (커스텀 CSS 선택 사항), 인시던트 관리 기능 (모니터가 자체적으로 초안 인시던트를 열 수 있음), 유지보수 기간, CSV 내보내기 기능을 갖춘 가동 시간 보고서, 이메일을 통한 구독, RSS/Atom 및 JSON API 제공 - OIDC SSO를 지원하는 비공개 상태 페이지 (Entra ID, Keycloak, Okta, Google, Authentik, Auth0) - 운영(Ops) 및 보안 기능: YAML 형식의 모니터, 채널 및 액션, CI/CD용 API 토큰, Prometheus 메트릭, AES-256-GCM 자격 증명 금고 (또는 HashiCorp Vault), TOTP 2FA, 감사 로그, 내장 백업/복원 기능 전체 목록은 문서를 참조하십시오. 피드백 요청: 현재 무엇을 사용하고 계신지, 그리고 무엇이 전환하는 것을 막을까요? 모든 피드백과 테스트를 환영하며, 시도해 주시는 모든 분께 미리 감사드립니다! PS: 데모는 리소스가 제한적인 제 소규모 서버에서 실행됩니다. 특정 순간에 시작할 수 없다면 현재 활성 인스턴스가 너무 많다는 의미입니다. 5분 정도 기다린 후 다시 시도해 주세요 :) /u/BElluu님이 제출함 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/SelfHosted (AI filter)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기