{"_id":"@avelor/mira","name":"@avelor/mira","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@avelor/mira","version":"0.1.0","description":"Continuous uptime monitor with static status page.","keywords":["uptime","monitoring","status-page","ssl","developer-tools"],"license":"MIT","author":{"name":"Avelor","email":"cruz@avelor.es"},"repository":{"type":"git","url":"git+https://github.com/avelor-es/mira.git"},"publishConfig":{"access":"public"},"type":"module","bin":{"mira":"bin/mira.js"},"dependencies":{"js-yaml":"^4.1.0"},"engines":{"node":">=18"},"scripts":{"test":"node --test test/*.test.js","prepublishOnly":"node --test test/*.test.js"},"gitHead":"027388b44ab5274ccd44f38413aa3f41951c4573","_id":"@avelor/mira@0.1.0","bugs":{"url":"https://github.com/avelor-es/mira/issues"},"homepage":"https://github.com/avelor-es/mira#readme","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-PIdt3IhFnU1NOYWPYp2JDR65ku9b2azmS8ZtgXy8N+PuhYWkcB7CI6rRR/aD5spHs76lqPw/VM0+kWuIrM9wLA==","shasum":"f28b46c8d4d1817bab4e2f8400fa294f90324806","tarball":"https://registry.npmjs.org/@avelor/mira/-/mira-0.1.0.tgz","fileCount":15,"unpackedSize":34668,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCQSFCFa4ZHM/pp4BFIz/jrsSNwM4qKrtzz47n0H3nWCwIgO1bISOty8sTsKihl5kiKcsA7PHOEBZ+5jzeeD7DjddY="}]},"_npmUser":{"name":"christianecg","email":"contacto@christianecg.com"},"directories":{},"maintainers":[{"name":"christianecg","email":"contacto@christianecg.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mira_0.1.0_1781047097138_0.6138111934487207"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-09T23:18:16.983Z","0.1.0":"2026-06-09T23:18:17.309Z","modified":"2026-06-09T23:18:17.604Z"},"maintainers":[{"name":"christianecg","email":"contacto@christianecg.com"}],"description":"Continuous uptime monitor with static status page.","homepage":"https://github.com/avelor-es/mira#readme","keywords":["uptime","monitoring","status-page","ssl","developer-tools"],"repository":{"type":"git","url":"git+https://github.com/avelor-es/mira.git"},"author":{"name":"Avelor","email":"cruz@avelor.es"},"bugs":{"url":"https://github.com/avelor-es/mira/issues"},"license":"MIT","readme":"# @avelor/mira\n\nContinuous uptime monitor with automatic static status page.\n\n## Why Mira?\n\n**Mira** (o Ceti) is a red giant variable star, one of the first variable stars ever discovered — observed continuously since 1596 by David Fabricius. Its brightness shifts dramatically over a ~332-day cycle: sometimes barely visible, sometimes among the brightest stars in the sky. Astronomers have watched it for centuries, recording every change.\n\nA monitor that watches cycles, detects when something dims, and logs the history. The parallel is exact.\n\nIn Spanish, *mira* is the imperative of *mirar*: to look, to watch. \"Míralo en Mira.\"\n\nThe mark is its light curve — the same pulse that astronomers have charted since 1596, rendered as a waveform.\n\n---\n\n## Install\n\n```sh\nnpm install -g @avelor/mira\n```\n\n## Config\n\nAll config lives in a single file: **`~/.config/mira/config.yml`**\n\nIt is created automatically on first run with commented examples. Edit it to add your endpoints and notification settings:\n\n```yaml\ninterval: 60s\nincident_threshold: 3\n\nnotify:\n  slack: \"https://hooks.slack.com/...\"\n  # email:\n  #   resend_key: re_...\n  #   to: you@example.com\n\nendpoints:\n  - name: avelor.es\n    url: https://avelor.es\n    expect:\n      status: 200\n      contains: \"Avelor\"\n    cert:\n      warn_days: 30\n\n  - name: API\n    url: https://avelor.es/api/contact.php\n    method: HEAD\n    expect:\n      status: 200\n```\n\n## Usage\n\n```sh\nmira start        # start daemon\nmira stop         # stop daemon\nmira status       # daemon status + last result per endpoint\nmira run          # one-shot check (CI mode)\nmira logs         # show daemon logs\nmira logs --tail  # follow daemon logs\nmira page         # print path to status page\n```\n\n## Status page\n\nAfter each check cycle, Mira regenerates a static `~/.config/mira/public/index.html`. Serve it however you like — nginx, Caddy, GitHub Pages, or just open it locally.\n\nThe page shows:\n- Global status header\n- Per-endpoint: latency, uptime %, cert expiry, last 90 checks as blocks\n- Incident history (click to expand)\n\nNo JavaScript. Pure HTML + CSS.\n\n## Incidents\n\nAn incident opens when **N consecutive checks fail** (default `incident_threshold: 3`). It resolves automatically when a check passes. You get exactly two notifications per incident: when it opens and when it closes (with duration).\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-50dd77ad865f9394f2c6d7867dfe00d8"}