Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
ec129e3
Fix outdated links and add Prerequisites section
mayssagl Mar 23, 2026
eacbb22
feat(notifications): add Telegram notification channel (#2753)
LeC-D Mar 24, 2026
d1f1d31
fix(i18n): revert en.json to upstream format, keep only telegram keys
LeC-D Mar 24, 2026
fe242b1
fix: replace nested ternaries and remove type casts per review
LeC-D Mar 25, 2026
0ecc2e2
Implemement TimescaleDB class
ajhollid Mar 25, 2026
2422fcc
update gitignore
ajhollid Mar 25, 2026
ee74584
Add method to interface
ajhollid Mar 25, 2026
f43b758
add PG dependencies
ajhollid Mar 25, 2026
1defa52
update config
ajhollid Mar 25, 2026
f09f063
update error handler
ajhollid Mar 25, 2026
276b116
throw error on missing continent
ajhollid Mar 25, 2026
da6f03b
add teams repo
ajhollid Mar 25, 2026
9e686a2
add user repo
ajhollid Mar 25, 2026
f7db732
add status-pages repo
ajhollid Mar 25, 2026
51853cb
add settings repo
ajhollid Mar 25, 2026
729600a
recovery tokens repo
ajhollid Mar 25, 2026
3039fb9
nottificaitons repo
ajhollid Mar 25, 2026
dcdde84
monitors rep
ajhollid Mar 25, 2026
86acc0c
add monitor-stats repo
ajhollid Mar 25, 2026
0944dba
add maintenance-windows repo
ajhollid Mar 25, 2026
5ea86d8
add inivtes repo
ajhollid Mar 25, 2026
bc088c3
add incidents repo, rename old repo
ajhollid Mar 25, 2026
07957d3
geo-checks repo
ajhollid Mar 25, 2026
62e8643
checks repo, barrel export
ajhollid Mar 25, 2026
a864bc0
fix: run format and fix build errors
LeC-D Mar 25, 2026
40968c3
refactor(notifications): hoist default values, remove else block in u…
LeC-D Mar 25, 2026
4c94a7c
fix: resolve TypeScript build errors in notification form types
LeC-D Mar 25, 2026
e878799
fix TS errors
ajhollid Mar 26, 2026
be29cce
db types
ajhollid Mar 26, 2026
c558c4b
use ca tables
ajhollid Mar 26, 2026
2b2db2d
set default all for incident validation
ajhollid Mar 26, 2026
317d531
remove comments
ajhollid Mar 26, 2026
de3af64
migrations, gitignore
ajhollid Mar 26, 2026
13a7ae8
fix(notifications): remove type casts with exhaustive type narrowing …
LeC-D Mar 26, 2026
94ca989
feat(dlq): add DLQItem type definitions for dead letter queue
Br0wnHammer Mar 27, 2026
60b1d95
feat(dlq): add DLQItem Mongoose model with indexes for retry polling …
Br0wnHammer Mar 27, 2026
e6088fe
feat(dlq): add IDLQRepository interface for dead letter queue data ac…
Br0wnHammer Mar 27, 2026
214fc48
feat(dlq): add MongoDLQRepository with retry polling and grouped coun…
Br0wnHammer Mar 27, 2026
22d2626
Merge pull request #3441 from bluewave-labs/feat/timescaledb
ajhollid Mar 27, 2026
a895912
refactor(dlq): inline DLQItemDocumentBase into DLQItemDocument
Br0wnHammer Mar 27, 2026
15b0deb
Merge branch 'develop' into feat/dlq
Br0wnHammer Mar 27, 2026
04dfff4
fix(notifications): remove redundant defaultValue prop and fix incide…
LeC-D Mar 27, 2026
69b6955
Merge pull request #3439 from LeC-D/fix/telegram-notification-type
ajhollid Mar 27, 2026
8ab049a
Merge pull request #3447 from bluewave-labs/feat/dlq
ajhollid Mar 27, 2026
0d90083
Merge pull request #3455 from mayssagl/develop
ajhollid Apr 1, 2026
fb69e29
fix geocheck update logic
ajhollid Apr 1, 2026
4222d39
Merge pull request #3456 from bluewave-labs/fix/job-queue
ajhollid Apr 1, 2026
7272874
bump scheduler, consume scheduler events
ajhollid Apr 3, 2026
7636d2d
error -> warn on job fail, register listeners before starting scheduler
ajhollid Apr 3, 2026
42e82af
Merge pull request #3458 from bluewave-labs/feat/scheduler/1.9.1
ajhollid Apr 3, 2026
c80720c
fix: align server test suite with current source implementations
gorkem-bwl Apr 4, 2026
eb4a92c
fix: restructure and translate all i18n locale files
gorkem-bwl Apr 4, 2026
96f9360
style: format migration script with prettier
gorkem-bwl Apr 4, 2026
7c61ca4
Merge pull request #3461 from bluewave-labs/fix/i18n-locale-migration
ajhollid Apr 4, 2026
2249875
add remaining zh-tw strings
ajhollid Apr 7, 2026
2c76484
Merge pull request #3471 from bluewave-labs/feat/zh-tw
ajhollid Apr 7, 2026
628bca3
disable poeditor workflow
ajhollid Apr 7, 2026
504d615
Merge pull request #3473 from bluewave-labs/fix/actions
ajhollid Apr 7, 2026
96beda5
update mock logger and tests
ajhollid Apr 7, 2026
934f85f
Merge pull request #3460 from bluewave-labs/fix/server-test-suite-fai…
ajhollid Apr 7, 2026
86ab1f2
Add Coolify and Cloudzy
gorkem-bwl Apr 7, 2026
09d6147
Remove Translations section from README
gorkem-bwl Apr 8, 2026
5006f37
Merge branch 'develop' of https://github.com/abby-mo/Checkmate into d…
abby-mo Apr 8, 2026
042b941
implemented escalation
abby-mo Apr 10, 2026
abe58f2
npm run format
abby-mo Apr 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
210 changes: 105 additions & 105 deletions .github/workflows/poeditor-sync.yml
Original file line number Diff line number Diff line change
@@ -1,120 +1,120 @@
name: POEditor Translation Synchronization
# name: POEditor Translation Synchronization

on:
# For manual triggering
workflow_dispatch:
inputs:
languages:
description: "Languages to synchronize (comma separated, e.g.: tr,en,es)"
required: false
default: "ar,zh-tw,cs,en,fi,fr,de,pt-br,ru,es,tr,ja,zh-cn,th"
format:
description: "Export format (key_value_json or json)"
required: false
default: "key_value_json"
# on:
# # For manual triggering
# workflow_dispatch:
# inputs:
# languages:
# description: "Languages to synchronize (comma separated, e.g.: tr,en,es)"
# required: false
# default: "ar,zh-tw,cs,en,fi,fr,de,pt-br,ru,es,tr,ja,zh-cn,th"
# format:
# description: "Export format (key_value_json or json)"
# required: false
# default: "key_value_json"

permissions:
contents: write
pull-requests: write
# permissions:
# contents: write
# pull-requests: write

jobs:
sync-translations:
runs-on: ubuntu-latest
permissions:
contents: write
issues: write
pull-requests: write
# jobs:
# sync-translations:
# runs-on: ubuntu-latest
# permissions:
# contents: write
# issues: write
# pull-requests: write

steps:
- name: Checkout code
uses: actions/checkout@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
# steps:
# - name: Checkout code
# uses: actions/checkout@v3
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
# fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "22"
# - name: Setup Node.js
# uses: actions/setup-node@v3
# with:
# node-version: "22"

- name: Create package.json for scripts
run: |
mkdir -p .github/scripts
cat > .github/scripts/package.json << EOF
{
"name": "poeditor-scripts",
"version": "1.0.0",
"private": true,
"type": "module",
"dependencies": {
"axios": "^1.6.0",
"fs-extra": "^11.1.1"
}
}
EOF
# - name: Create package.json for scripts
# run: |
# mkdir -p .github/scripts
# cat > .github/scripts/package.json << EOF
# {
# "name": "poeditor-scripts",
# "version": "1.0.0",
# "private": true,
# "type": "module",
# "dependencies": {
# "axios": "^1.6.0",
# "fs-extra": "^11.1.1"
# }
# }
# EOF

- name: Install dependencies
run: |
cd .github/scripts
npm install
# - name: Install dependencies
# run: |
# cd .github/scripts
# npm install

- name: Download translations from POEditor
env:
POEDITOR_API: ${{ secrets.POEDITOR_API }}
POEDITOR_PROJECT_ID: ${{ secrets.POEDITOR_PROJECT_ID }}
LANGUAGES: ${{ github.event.inputs.languages || 'tr,en' }}
EXPORT_FORMAT: ${{ github.event.inputs.format || 'key_value_json' }}
run: |
mkdir -p temp
node .github/scripts/download-translations.js
# - name: Download translations from POEditor
# env:
# POEDITOR_API: ${{ secrets.POEDITOR_API }}
# POEDITOR_PROJECT_ID: ${{ secrets.POEDITOR_PROJECT_ID }}
# LANGUAGES: ${{ github.event.inputs.languages || 'tr,en' }}
# EXPORT_FORMAT: ${{ github.event.inputs.format || 'key_value_json' }}
# run: |
# mkdir -p temp
# node .github/scripts/download-translations.js

- name: Verify translation files
run: |
echo "Verifying translation files..."
for file in temp/*.json; do
echo "Checking $file"
if [ ! -s "$file" ]; then
echo "Error: $file is empty or does not exist"
exit 1
fi
# Validate JSON format
cat "$file" | jq . > /dev/null || { echo "Error: $file is not valid JSON"; exit 1; }
done
echo "All translation files are valid"
# - name: Verify translation files
# run: |
# echo "Verifying translation files..."
# for file in temp/*.json; do
# echo "Checking $file"
# if [ ! -s "$file" ]; then
# echo "Error: $file is empty or does not exist"
# exit 1
# fi
# # Validate JSON format
# cat "$file" | jq . > /dev/null || { echo "Error: $file is not valid JSON"; exit 1; }
# done
# echo "All translation files are valid"

- name: Copy translations to project
run: |
mkdir -p client/src/locales
cp -r temp/* client/src/locales/
echo "Translation files copied to client/src/locales/"
# - name: Copy translations to project
# run: |
# mkdir -p client/src/locales
# cp -r temp/* client/src/locales/
# echo "Translation files copied to client/src/locales/"

- name: Get current date
id: date
run: echo "date=$(date +'%Y-%m-%d %H:%M:%S')" >> $GITHUB_OUTPUT
# - name: Get current date
# id: date
# run: echo "date=$(date +'%Y-%m-%d %H:%M:%S')" >> $GITHUB_OUTPUT

- name: Format client code
run: |
cd client
npm ci
npm run format
# - name: Format client code
# run: |
# cd client
# npm ci
# npm run format

- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "feat: translations updated from POEditor"
title: "🌐 Updated Translations from POEditor"
body: |
This PR contains the latest translations from POEditor.
# - name: Create Pull Request
# uses: peter-evans/create-pull-request@v7
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
# commit-message: "feat: translations updated from POEditor"
# title: "🌐 Updated Translations from POEditor"
# body: |
# This PR contains the latest translations from POEditor.

📅 Update Date: ${{ steps.date.outputs.date }}
🔄 Updated Languages: ${{ github.event.inputs.languages || 'tr,en' }}
# 📅 Update Date: ${{ steps.date.outputs.date }}
# 🔄 Updated Languages: ${{ github.event.inputs.languages || 'tr,en' }}

⚠️ Please review the translations and approve the PR if everything looks correct.
branch: translation-update-${{ github.run_number }}
delete-branch: true
base: develop
add-paths: |
client/src/locales/*.json
committer: GitHub Action <github-actions[bot]@users.noreply.github.com>
author: GitHub Action <github-actions[bot]@users.noreply.github.com>
# ⚠️ Please review the translations and approve the PR if everything looks correct.
# branch: translation-update-${{ github.run_number }}
# delete-branch: true
# base: develop
# add-paths: |
# client/src/locales/*.json
# committer: GitHub Action <github-actions[bot]@users.noreply.github.com>
# author: GitHub Action <github-actions[bot]@users.noreply.github.com>
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
.VSCodeCounter
*.sh
mongo
timescaledb
node_modules/
docs/architecture
docs/reviews
docs/todo
docs/frontend
docs/frontend
docs/timescale
16 changes: 7 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ Checkmate has been stress-tested with 1000+ active monitors without any particul
- [📦 Demo](#demo)
- [🔗 User's guide](#users-guide)
- [🛠️ Installation](#installation)
- [🏁 Translations](#translations)
- [🚀 Performance](#performance)
- [💚 Questions & Ideas](#questions--ideas)
- [🧩 Features](#features)
Expand All @@ -60,23 +59,22 @@ You can see the latest build of [Checkmate](https://checkmate-demo.bluewavelabs.

Usage instructions can be found [here](https://checkmate.so/docs).

## Prerequisites
- [Docker](https://www.docker.com/) installed
- [Git](https://git-scm.com/) installed

## Installation

See installation instructions in [Checkmate documentation portal](https://checkmate.so/docs).

Alternatively, you can also use [Elestio](https://elest.io/open-source/checkmate), [K8s](./charts/helm/checkmate/INSTALLATION.md), [Sive Host](https://sive.host) (South Africa) or [Pikapods](https://www.pikapods.com/) to quickly spin off a Checkmate instance. If you would like to monitor your server infrastructure, you'll need [Capture agent](https://github.com/bluewave-labs/capture). Capture repository also contains the installation instructions.
Alternatively, you can also use [Coolify](https://coolify.io/), [Elestio](https://elest.io/open-source/checkmate), [K8s](./charts/helm/checkmate/INSTALLATION.md), [Sive Host](https://sive.host) (South Africa), [Cloudzy](https://cloudzy.com/marketplace/checkmate) or [Pikapods](https://www.pikapods.com/) to quickly spin off a Checkmate instance. If you would like to monitor your server infrastructure, you'll need [Capture agent](https://github.com/bluewave-labs/capture). Capture repository also contains the installation instructions.

### Using a Custom CA

If you need to monitor internal HTTPS endpoints with certificates from private Certificate Authorities (like Smallstep), see our [Custom CA Trust Guide](./docs/custom-ca-trust.md) for Docker configuration options.

For more documentation, see the [docs directory](./docs/).


## Translations

If you would like to use Checkmate in your language, please [go to this page](https://poeditor.com/join/project/lRUoGZFCsJ) and register for the language you would like to translate Checkmate to.

## Performance

Thanks to extensive optimizations, Checkmate operates with an exceptionally small memory footprint, requiring minimal memory and CPU resources. Here’s the memory usage of a Node.js instance running on a server that monitors 323 servers every minute:
Expand All @@ -92,7 +90,7 @@ You can see the memory footprint of MongoDB and Redis on the same server (398Mb
If you have any questions, suggestions or comments, you have several options:

- [Discord channel](https://discord.gg/NAb6H3UTjK) (preferred)
- [GitHub Discussions](https://github.com/bluewave-labs/bluewave-uptime/discussions) (we check here from time to time)
- [GitHub Discussions](https://github.com/bluewave-labs/Checkmate/discussions) (we check here from time to time)

Feel free to ask questions or share your ideas - we'd love to hear from you!

Expand Down Expand Up @@ -179,7 +177,7 @@ Here's how you can contribute:
<img src="https://contrib.rocks/image?repo=bluewave-labs/checkmate" />
</a>

[![Star History Chart](https://api.star-history.com/svg?repos=bluewave-labs/checkmate&type=Date)](https://star-history.com/#bluewave-labs/bluewave-uptime&Date)
[![Star History Chart](https://api.star-history.com/svg?repos=bluewave-labs/checkmate&type=Date)](https://star-history.com/#bluewave-labs/Checkmate&Date)

## Our sponsors

Expand Down
Loading