Releases: AkaCoder404/tinypulse
Releases · AkaCoder404/tinypulse
v0.1.0-beta.5
Configuration as Code:
- Declarative YAML Provisioning: You can now manage your endpoints and notifiers via a
tinypulse_config.ymlfile using the new-configflag. Config-managed items are securely tracked in the database and automatically locked as "Read-Only" in the Web UI to prevent accidental modifications. - Environment Variable Substitution: The YAML config file fully supports environment variables (e.g.,
bot_token: "${TELEGRAM_TOKEN}"), allowing you to safely commit your configuration to version control without exposing secrets. - Deep Validation & CI/CD Dry-Runs: Use the new
-dry-runflag to safely preview what changes a configuration file will apply to your database without actually writing anything to the disk. TinyPulse will perform a deep validation of your YAML file (including checking for missing notification tokens) before printing a clear[CREATE],[UPDATE], or[DELETE]diff. - Configuration Export Utility: Easily transition your existing UI-managed setup to a declarative workflow by using the new
-export-config <file>flag. This command instantly dumps your entire database into a clean, formatted YAML configuration file. - Safe "Eject" Mechanism: If you start the server without a
-configflag but still have locked configuration items in the database, the dashboard will gracefully display an "Orphaned Config" warning. You can runtinypulse -eject-configto safely transition those locked items back to UI control without losing any of your uptime history. - V4 Database Migration: Automatically upgrades the SQLite schema to support
uidandsourcetracking for endpoints and notifiers. As always, TinyPulse will create a safe, point-in-time backup (tinypulse_backup_v3.db) before applying the schema upgrade.
Deployment & Platform Support:
- Docker Support: Added a multi-stage
Dockerfileanddocker-compose.ymlfor streamlined containerized deployment. - macOS Apple Silicon: Added native macOS Apple Silicon (
darwin/arm64) builds to the GitHub Actions release matrix.
v0.1.0-beta.4
Performance & Architecture:
- In-Memory Dashboard State: Redesigned the core monitoring engine to use a lightning-fast, lock-free memory map (
StateManager). The dashboard now loads instantly regardless of how much historical data you have, completely eliminating SQLite disk I/O on page load. - Real-Time Live UI: The visual history bars (the last 50 pings) and the current status (Up/Down) are now served directly from the memory map on the primary
/api/endpointsresponse. This stops the frontend from spamming the backend with 50 separate/historyHTTP requests on load. - Background Aggregation: Heavy math (like calculating 24-hour average uptime percentages) has been completely removed from the UI read path. It is now processed asynchronously every 60 seconds by a background goroutine.
- V3 Database Migration: Automatically adds a new "Covering Index" (
idx_checks_endpoint_checked_up) to the SQLitecheckstable. This allows the background worker to calculate the 24-hour average exponentially faster, entirely within RAM.
UI Enhancements:
- Rich History Tooltips: Hovering over the visual history bars now shows a detailed tooltip including the exact local time, the HTTP status code (e.g.,
HTTP 200), and the exact response time in milliseconds.
v0.1.0-beta.3
Features & Enhancements:
- Multi-Checker Architecture: Rebuilt the core monitoring engine to support different check types (HTTP, TCP, etc.) via a decoupled interface, making it highly extensible.
- TCP Port Monitoring: You can now monitor raw TCP ports (e.g.,
1.1.1.1:53orexample.com:22) alongside standard HTTP/HTTPS URLs. - Automated Database Backups: The SQLite database now features a robust versioning system. Before applying any schema upgrades, TinyPulse automatically creates a safe, point-in-time backup (
tinypulse_backup_vX.db) usingVACUUM INTO. - Dashboard Improvements: Upgraded the UI with a brief status summary, a search bar, and status filtering to easily find specific endpoints.
- Documentation & Deployment: Added a comprehensive deployment guide (
docs/deployment_and_updates.md) and asystemdautomated setup script for Linux VPS hosting.
v0.1.0-beta.2
Features & Enhancements:
- UI Updates: Added a GitHub link and support for Light/Dark/System mode switching.
Bug Fixes:
- Notifiers: Fixed an issue where new endpoints failed to save their attached notifiers upon creation.
v0.1.0-beta.1
🎉 Initial Beta Release!
TinyPulse is a single-binary, self-hosted uptime monitor for HTTP/HTTPS endpoints. Drop it on any VPS, NAS, or Raspberry Pi and start monitoring in seconds.
Key Features in this Beta:
- Zero Dependencies: Single static Go binary (~12 MB) with embedded Tailwind CSS frontend.
- Concurrent Monitoring: Hardened goroutines gracefully stagger checks and handle timeouts safely.
- Alert Notifications: Built-in support for Telegram and Pushover alerts.
- Customizable Thresholds: Configure exactly how many consecutive failures trigger an alert per-endpoint.
- Built-in Security: Secure the dashboard and API instantly with HTTP Basic Auth (
TINYPULSE_PASSWORD). - Efficient Data Layer: Pure-Go SQLite with WAL mode, chunked pruning, and decoupled asynchronous writers.