https://github.com/nftstorage/checkup
***Notice: This repository is no longer maintained.*** ✅ A tool to check up on data stored in dotStorage, ensuring it is available and retrievable.
https://github.com/nftstorage/checkup
Last synced: about 1 year ago
JSON representation
***Notice: This repository is no longer maintained.*** ✅ A tool to check up on data stored in dotStorage, ensuring it is available and retrievable.
- Host: GitHub
- URL: https://github.com/nftstorage/checkup
- Owner: nftstorage
- Created: 2022-02-25T12:32:27.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-02-23T10:29:51.000Z (over 3 years ago)
- Last Synced: 2025-03-28T07:02:37.219Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 252 KB
- Stars: 2
- Watchers: 3
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Checkup
A tool to check up on data stored in dotStorage, ensuring it is available and retrievable. It continuously takes random samples of CIDs and exposes prometheus metrics on their availability.
## Usage
Drop a `.env` file in the project root and populate:
```sh
DATABASE_CONNECTION=
IPFS_CHECK_API_URL=
CLUSTER_API_URL=
CLUSTER_BASIC_AUTH_TOKEN=
PORT=3000 # optional, default shown
PROM_NAMESPACE=checkup # optional, default shown
SAMPLE_METHOD=universal # optional, default shown, also randomid (nft.storage only)
ELASTIC_PROVIDER_ADDR=/p2p/Qm... # optional, if set, CIDs will be checked on elastic provider also (assumed ALL CIDs are available here)
ELASTIC_PROVIDER_S3_REGION= # optional, required if ELASTIC_PROVIDER_ADDR is set
ELASTIC_PROVIDER_S3_BUCKET= # optional, required if ELASTIC_PROVIDER_ADDR is set
ELASTIC_PROVIDER_S3_ACCESS_KEY_ID= # optional, required if ELASTIC_PROVIDER_ADDR is set
ELASTIC_PROVIDER_S3_SECRET_ACCESS_KEY= # optional, required if ELASTIC_PROVIDER_ADDR is set
```
Replace the following values as specified:
* `DATABASE_CONNECTION` with the connection string for the database you want read from.
* `IPFS_CHECK_URL` with an [ipfs-check](https://github.com/aschmahmann/ipfs-check) backend API URL.
* `CLUSTER_API_URL` with the base URL of the Cluster API.
* `CLUSTER_BASIC_AUTH_TOKEN` with the base64 encoded basic auth token for the Cluster API.
Start the checker:
```sh
npm start
```
Metrics for reports are available at `http://localhost:3000/metrics`
### Docker
There's a `Dockerfile` that runs the tool in docker.
```sh
docker build -t checkup .
docker run -d checkup
```