{"id":36967426,"url":"https://github.com/longwudf/liteping","last_synced_at":"2026-01-13T20:03:39.527Z","repository":{"id":329049526,"uuid":"1117901973","full_name":"longwudf/liteping","owner":"longwudf","description":"A lightweight, serverless status page and monitoring tool running on Cloudflare.","archived":false,"fork":false,"pushed_at":"2025-12-17T02:40:12.000Z","size":178,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-20T16:12:32.523Z","etag":null,"topics":["cloudflare-workers","drizzle-orm","monitoring","serverless","status-page","sveltekit","uptime-monitor"],"latest_commit_sha":null,"homepage":"https://liteping-web.pages.dev/","language":"Svelte","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/longwudf.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2025-12-17T01:33:26.000Z","updated_at":"2025-12-17T02:40:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/longwudf/liteping","commit_stats":null,"previous_names":["longwudf/liteping"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/longwudf/liteping","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longwudf%2Fliteping","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longwudf%2Fliteping/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longwudf%2Fliteping/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longwudf%2Fliteping/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/longwudf","download_url":"https://codeload.github.com/longwudf/liteping/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longwudf%2Fliteping/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28399512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cloudflare-workers","drizzle-orm","monitoring","serverless","status-page","sveltekit","uptime-monitor"],"created_at":"2026-01-13T20:03:38.871Z","updated_at":"2026-01-13T20:03:39.521Z","avatar_url":"https://github.com/longwudf.png","language":"Svelte","readme":"# LitePing\n\n[中文文档](./README_zh-CN.md)\n\n\u003cdiv align=\"center\"\u003e\n\n![LitePing](./apps/web/static/favicon.svg)\n\n**Lightweight, Serverless Status Page \u0026 Monitoring Platform**\n\nBuilt with [SvelteKit](https://kit.svelte.dev/), [Cloudflare Workers](https://workers.cloudflare.com/), and [D1 Database](https://developers.cloudflare.com/d1/).\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/yourusername/liteping)\n\n\u003c/div\u003e\n\n## 🚀 Features\n\n- **Serverless Architecture**: Runs entirely on Cloudflare's Edge network (Workers + Pages + D1).\n- **Multi-Region Monitoring**: Automatically detects worker location to ping from different global regions.\n- **Real-time Status Page**: Beautiful, responsive status page built with Svelte 5.\n- **Incident Management**: Automatic incident creation and resolution tracking.\n- **Notifications**: Integrated alerts for Discord, Telegram, Slack, and Webhooks.\n- **Sparkline Charts**: Visual history of latency and uptime for every monitor.\n- **Maintenance Windows**: Schedule maintenance to suppress alerts during planned downtime.\n\n## 🛠 Tech Stack\n\n- **Frontend**: SvelteKit (Svelte 5), Tailwind CSS\n- **Backend**: Cloudflare Workers (Hono framework)\n- **Database**: Cloudflare D1 (SQLite), Drizzle ORM\n- **Package Manager**: pnpm (Monorepo workspace)\n\n## 📂 Project Structure\n\nLitePing is a monorepo organized as follows:\n\n- `apps/web`: The SvelteKit frontend application (Status Page \u0026 Admin Dashboard).\n- `apps/worker`: The Cloudflare Worker responsible for scheduled monitoring (Cron Triggers).\n- `packages/db`: Shared database schema and Drizzle ORM configuration.\n\n## ⚡ Getting Started\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/) (v20+ recommended)\n- [pnpm](https://pnpm.io/)\n- [Wrangler CLI](https://developers.cloudflare.com/workers/wrangler/install-and-update/) (`npm install -g wrangler`)\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/yourusername/liteping.git\n   cd liteping\n   ```\n\n2. **Install dependencies**\n   ```bash\n   pnpm install\n   ```\n\n3. **Setup Database (Local)**\n   Initialize the D1 database for local development:\n   ```bash\n   cd packages/db\n   pnpm generate\n   # Apply migrations to local D1\n   # Note: Replace the filename below with your actual generated SQL file\n   npx wrangler d1 execute liteping-db --local --file=./drizzle/0000_xxxx.sql\n   # (Or use the migrate command if configured)\n   ```\n\n### Local Development\n\n1. **Start the Web App**\n   ```bash\n   cd apps/web\n   pnpm dev\n   ```\n   Access the UI at `http://localhost:5173`.\n\n2. **Start the Worker**\n   In a separate terminal:\n   ```bash\n   cd apps/worker\n   npx wrangler dev\n   ```\n   The worker runs on a schedule. You can manually trigger it via the `l` key in the Wrangler dev console to test pings.\n\n## 📦 Deployment\n\n### 1. Database Setup\nCreate a D1 database on Cloudflare:\n```bash\nnpx wrangler d1 create liteping-db\n```\nUpdate `wrangler.toml` in `apps/web` and `apps/worker` with your new `database_id`.\n\nApply migrations to production:\n```bash\ncd packages/db\npnpm migrate\n```\n\n### 2. Deploy Worker\n```bash\ncd apps/worker\npnpm deploy\n```\n\n### 3. Deploy Web App\n```bash\ncd apps/web\npnpm build\nnpx wrangler pages deploy .svelte-kit/cloudflare\n```\n\n## 📝 Usage\n\n### Admin Dashboard\nAccess the admin dashboard at `/admin` (e.g., `https://your-site.pages.dev/admin`).\n- **First Login**: You will be prompted to set an admin password if one hasn't been configured via environment variables.\n- **Features**: Add monitors, configure notifications, view detailed stats, and manage maintenance windows.\n\n## 🔧 Configuration\n\nEnvironment variables can be set in the Cloudflare Dashboard or `wrangler.toml`.\n\n| Variable | Description |\n|----------|-------------|\n| `NOTIFY_LANGUAGE` | Language for notifications (e.g., `zh-CN`, `en-US`) |\n| `DISCORD_WEBHOOK_URL` | Optional webhook URL for Discord alerts |\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flongwudf%2Fliteping","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flongwudf%2Fliteping","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flongwudf%2Fliteping/lists"}