An uptime monitoring service that is easy and cheap to run at scale. Create endpoint checks for uptime, latency, and status code. Supports OpsGenie, for alerts when there are two or more consecutive failures.
# Install dependencies
pnpm i
# Run the CLI
pnpm cli --help
# Deploy infrastructure
pnpm cli --fqdn uptime.example.com
# Deploy to production
pnpm cli --fqdn uptime.example.com --stage prod
# Destroy infrastructure
pnpm cli --fqdn uptime.example.com --phase destroy
For a holistic dev experience, it is best to run dev from the root of the repo.
First, copy the ./packages/infra/.dev.vars.example
file to ./packages/infra/.dev.vars
.
Then, run the following command to confirm you're using the correct CF account: and run to confirm you're using the correct CF account:
pnpm exec wrangler whoami
Run the migrations and (optionally) seed the database:
# this is a convenience script that runs db:touch, db:generate, db:migrate, and db:seed
pnpm db:setup
This repo uses multiple workers, each split into their own workspace. To run everything together:
# Start both the API (monitor workers) and the Next.js app
pnpm dev
If you need to run components separately:
# Run just the API (includes both executor and trigger workers)
pnpm dev:api
# Run just the Next.js app
pnpm dev:app
# Run the API executor worker
pnpm dev:api-exec
# Run the API trigger worker
pnpm dev:api-trigger
To deploy the entire application:
pnpm run deploy
To deploy components separately:
# Deploy just the Next.js app
pnpm deploy:app
# Deploy just the API workers
pnpm deploy:api
# Deploy the API executor worker
pnpm deploy:api-exec
# Deploy the API trigger worker
pnpm deploy:api-trigger
Update dependencies
Dependabot automatically creates pull requests for dependency updates weekly. For manual updates:
pnpm exec ncu -t minor -u
pnpm i
See the infra README for more details.
This repository uses Dependabot to keep dependencies up to date:
- npm dependencies are checked weekly (grouped as minor and patch updates)
- GitHub Actions are checked monthly
- PR limits are set to avoid overwhelming with dependency updates
Packages are automatically published to npm when release-please creates tags:
solstatus
- Main CLI package@solstatus/common
- Shared utilities and schemas@solstatus/api
- API workers@solstatus/app
- Web application@solstatus/infra
- Infrastructure tools
To enable npm publishing:
- Create an npm access token at https://www.npmjs.com/
- Add it as a GitHub secret named
NPM_TOKEN
- Release-please will create tags that trigger the publish workflow