{"id":51536647,"url":"https://github.com/jeiel85/homebase","last_synced_at":"2026-07-09T09:01:21.305Z","repository":{"id":369847340,"uuid":"1291819687","full_name":"jeiel85/homebase","owner":"jeiel85","description":"Personal Windows PC monitoring bot for Telegram. Monitor system status, receive alerts, and forward notifications via Telegram. Built with .NET.","archived":false,"fork":false,"pushed_at":"2026-07-09T06:42:47.000Z","size":287,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-09T08:14:43.419Z","etag":null,"topics":["bot","csharp","dotnet","monitoring","pc-monitoring","sqlite","telegram","windows","windows-service","wpf"],"latest_commit_sha":null,"homepage":"https://jeiel85.github.io/homebase/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeiel85.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-07-07T05:48:11.000Z","updated_at":"2026-07-09T06:42:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jeiel85/homebase","commit_stats":null,"previous_names":["jeiel85/localops-bot","jeiel85/homebase"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/jeiel85/homebase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeiel85%2Fhomebase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeiel85%2Fhomebase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeiel85%2Fhomebase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeiel85%2Fhomebase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeiel85","download_url":"https://codeload.github.com/jeiel85/homebase/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeiel85%2Fhomebase/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35293217,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-09T02:00:07.329Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","csharp","dotnet","monitoring","pc-monitoring","sqlite","telegram","windows","windows-service","wpf"],"created_at":"2026-07-09T09:01:20.372Z","updated_at":"2026-07-09T09:01:21.295Z","avatar_url":"https://github.com/jeiel85.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/banner.svg\" width=\"900\" alt=\"Homebase\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/jeiel85/homebase/actions\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/jeiel85/homebase/release.yml?style=flat-square\u0026logo=github\u0026label=release\" alt=\"Release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/jeiel85/homebase/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/jeiel85/homebase?style=flat-square\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://dotnet.microsoft.com/\"\u003e\u003cimg src=\"https://img.shields.io/badge/.NET-9.0-512BD4?style=flat-square\u0026logo=dotnet\" alt=\".NET\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/jeiel85/homebase/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-raw/jeiel85/homebase?style=flat-square\u0026logo=github\" alt=\"Issues\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eHomebase\u003c/b\u003e \u0026mdash; 개인 Windows PC 상태, 부팅, 장애, 알림을 Telegram으로 확인하고 알림받는 개인용 모니터링 봇입니다.\u003cbr\u003e\n  외부 포트를 열지 않고, outbound HTTPS만으로 동작합니다.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#-기능\"\u003e기능\u003c/a\u003e •\n  \u003ca href=\"#-시작하기\"\u003e시작하기\u003c/a\u003e •\n  \u003ca href=\"#-명령어\"\u003e명령어\u003c/a\u003e •\n  \u003ca href=\"#-아키텍처\"\u003e아키텍처\u003c/a\u003e •\n  \u003ca href=\"#-기술-스택\"\u003e기술 스택\u003c/a\u003e •\n  \u003ca href=\"#-프로젝트-구조\"\u003e프로젝트 구조\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## ✨ 기능\n\n| | 기능 | 설명 |\n|---|---|---|\n| 🖥️ | **시스템 상태** | CPU, RAM, 디스크, 네트워크, 가동 시간을 Telegram으로 확인 |\n| 🚀 | **부팅 알림** | PC가 부팅되면 Telegram으로 즉시 알림 |\n| 👁️ | **프로세스/서비스 감시** | Ollama, PostgreSQL, 개발 서버 등의 상태 모니터링 |\n| 📋 | **이벤트 로그 감시** | Windows 오류/심각 이벤트를 Telegram으로 전달 |\n| 🔔 | **토스트 알림 전달** | Windows 알림을 프라이버시 필터링과 함께 전달 |\n| 🔒 | **프라이버시 우선** | 비밀번호, OTP, 토큰 마스킹; 민감 앱 차단 |\n| 🔇 | **조용한 시간** | `/mute 1h`로 일시적으로 알림 음소거 |\n| 📊 | **SQLite 로깅** | 명령 및 알림 이력 영구 저장 |\n\n## 🚀 시작하기\n\n### 사전 요구사항\n\n- Windows 10/11 (버전 1809 이상)\n- Telegram 계정 + [BotFather](https://t.me/BotFather) 봇 토큰\n- 설치 파일에 .NET 런타임이 포함되어 있어 **별도 런타임 설치는 필요 없습니다**\n\n### 설치 — 어느 파일을 받나요?\n\n[**최신 릴리스**](https://github.com/jeiel85/homebase/releases/latest)에서 상황에 맞는 파일 하나만 받으세요.\n\n| 파일 | 이럴 때 받으세요 |\n|---|---|\n| **`Homebase-Setup.exe`** | ⭐ **대부분 이것 하나면 됩니다.** 더블클릭하면 마법사가 토큰·chat ID를 묻고 설치를 끝냅니다 |\n| `Homebase-Setup.zip` | 마법사 없이 수동 설치. 압축을 풀고 **관리자** PowerShell에서 `.\\setup.ps1` 실행 |\n| `bootstrap.ps1` | 명령 한 줄 설치 (아래 방법 B) |\n\n**방법 A — 설치 마법사 (권장)**\n\n1. `Homebase-Setup.exe`를 받아 더블클릭\n2. **Windows SmartScreen** 경고(\"Windows의 PC 보호\")가 뜨면 → **추가 정보** → **실행**을 누르세요. 서명되지 않은 개인용 앱이라 표시되는 정상 경고입니다\n3. 마법사가 물어보는 Telegram 봇 토큰과 chat ID 입력\n4. 설치가 끝나면 Telegram에서 봇에게 `/ping` 전송\n\n**방법 B — 한 줄 설치**\n\n**관리자 권한** PowerShell에서:\n\n```powershell\nirm https://github.com/jeiel85/homebase/releases/latest/download/bootstrap.ps1 | iex\n```\n\n\u003e **chat ID를 모르나요?** 봇에게 아무 메시지나 보낸 뒤 `https://api.telegram.org/bot\u003c봇토큰\u003e/getUpdates`를 열어 `chat.id` 값을 확인하세요.\n\n### 직접 빌드\n\n[.NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0)가 필요합니다.\n\n```powershell\ndotnet build LocalOpsBot.sln\n```\n\n## 🤖 명령어\n\n| 명령어 | 설명 |\n|---|---|\n| `/ping` | 봇 상태 확인 |\n| `/help` | 사용 가능한 명령어 표시 |\n| `/status` | 전체 PC 상태 (CPU, RAM, 디스크, 네트워크) |\n| `/uptime` | 시스템 가동 시간 |\n| `/disk` | 드라이브별 디스크 사용량 |\n| `/process` | 감시 중인 프로세스 상태 |\n| `/services` | Windows 서비스 상태 |\n| `/events` | 최근 Windows 이벤트 로그 |\n| `/alerts` | 최근 알림 이력 |\n| `/mute 1h` | 일정 시간 동안 알림 음소거 |\n| `/unmute` | 알림 다시 활성화 |\n| `/diagnostics` | 에이전트 자체 진단 |\n\n## 🏗️ 아키텍처\n\n```\n┌─────────────────────────────────────────────┐\n│ Telegram 모바일/데스크톱                     │\n└───────────────────┬─────────────────────────┘\n                    │\n                    ▼\n┌─────────────────────────────────────────────┐\n│ Telegram Bot API (outbound HTTPS, polling)   │\n└───────────────────┬─────────────────────────┘\n                    │\n                    ▼\n┌─────────────────────────────────────────────┐\n│ 로컬 Windows PC                              │\n│                                               │\n│  ┌─────────────────────────────────────────┐ │\n│  │ LocalOpsBot.Agent (Windows 서비스)       │ │\n│  │ • 부팅 알림                             │ │\n│  │ • 상태 수집기                           │ │\n│  │ • 이벤트 로그 감시                      │ │\n│  │ • 프로세스/서비스 감시                  │ │\n│  │ • Telegram 폴링                         │ │\n│  └───────────────────┬─────────────────────┘ │\n│                      │ Named Pipe IPC        │\n│  ┌───────────────────▼─────────────────────┐ │\n│  │ LocalOpsBot.Tray (사용자 세션 앱)        │ │\n│  │ • 토스트 알림 리스너                    │ │\n│  │ • 알림 필터/마스킹                      │ │\n│  │ • 로컬 설정 UI                          │ │\n│  └─────────────────────────────────────────┘ │\n│                                               │\n│  ┌─────────────────────────────────────────┐ │\n│  │ LocalOpsBot.Data (SQLite)               │ │\n│  └─────────────────────────────────────────┘ │\n└─────────────────────────────────────────────┘\n```\n\n## 🛠️ 기술 스택\n\n\u003cp\u003e\n  \u003cimg src=\"https://img.shields.io/badge/.NET_9-512BD4?logo=dotnet\u0026logoColor=white\" alt=\".NET 9\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/C%23-239120?logo=csharp\u0026logoColor=white\" alt=\"C#\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/SQLite-003B57?logo=sqlite\u0026logoColor=white\" alt=\"SQLite\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/WPF-0C54C2?logo=windows\u0026logoColor=white\" alt=\"WPF\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Telegram_Bot_API-26A5E4?logo=telegram\u0026logoColor=white\" alt=\"Telegram Bot API\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/xUnit-5E5E5E?logo=xunit\u0026logoColor=white\" alt=\"xUnit\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Serilog-2C3E50?logo=serilog\u0026logoColor=white\" alt=\"Serilog\"\u003e\n\u003c/p\u003e\n\n| 구성요소 | 기술 |\n|---|---|\n| 런타임 | .NET 9 |\n| 언어 | C# 12 |\n| IPC | Named Pipes (length-prefixed JSON) |\n| 데이터베이스 | SQLite via Microsoft.Data.Sqlite |\n| UI (트레이) | WPF |\n| 봇 프로토콜 | Telegram Bot API (long polling) |\n| DI/호스팅 | Microsoft.Extensions.Hosting |\n| 로깅 | Serilog |\n| 테스팅 | xUnit |\n\n## 📁 프로젝트 구조\n\n```\nLocalOpsBot/\n├─ src/\n│  ├─ LocalOpsBot.Core/           # 도메인 모델, 인터페이스\n│  ├─ LocalOpsBot.Infrastructure/ # Telegram, Windows 수집기\n│  ├─ LocalOpsBot.Data/           # SQLite 영속성\n│  ├─ LocalOpsBot.Agent/          # Windows 서비스 진입점\n│  └─ LocalOpsBot.Tray/           # WPF 트레이 앱\n├─ tests/\n│  └─ LocalOpsBot.Tests/          # 단위 및 통합 테스트\n├─ installer/                     # PowerShell 스크립트\n├─ config/                        # 설정 예시\n├─ docs/                          # GitHub Pages 랜딩 페이지\n└─ assets/                        # 이미지, 배너\n```\n\n## 📄 라이선스\n\nMIT \u0026mdash; 자세한 내용은 [LICENSE](LICENSE) 파일을 참고하세요.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003csub\u003e.NET과 ❤️로 만들었습니다\u003c/sub\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeiel85%2Fhomebase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeiel85%2Fhomebase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeiel85%2Fhomebase/lists"}