NIS2 checker open source
Automated NIS2 Directive compliance scanning and reporting tool with comprehensive security checks, multiple report formats, and Docker deployment.
# Features
(https://github.com/fabriziosalmi/nis2-public#features)
🔍 Comprehensive Scanning: Ports, TLS/SSL, HTTP headers, DNS security
📊 Multiple Report Formats: HTML, JSON, Markdown with evidence collection
🐳 Docker Ready: Easy deployment with optional Grafana dashboards
🔐 Security Focused: Secrets detection, WAF/CDN identification, domain monitoring
🇮🇹 Italian Compliance: P.IVA, privacy policy, cookie consent checks
📈 Prometheus Integration: Metrics export for monitoring
100% free and open source, open to contributions:
https://github.com/fabriziosalmi/nis2-public
https://redd.it/1q2rd0v
@r_opensource
Automated NIS2 Directive compliance scanning and reporting tool with comprehensive security checks, multiple report formats, and Docker deployment.
# Features
(https://github.com/fabriziosalmi/nis2-public#features)
🔍 Comprehensive Scanning: Ports, TLS/SSL, HTTP headers, DNS security
📊 Multiple Report Formats: HTML, JSON, Markdown with evidence collection
🐳 Docker Ready: Easy deployment with optional Grafana dashboards
🔐 Security Focused: Secrets detection, WAF/CDN identification, domain monitoring
🇮🇹 Italian Compliance: P.IVA, privacy policy, cookie consent checks
📈 Prometheus Integration: Metrics export for monitoring
100% free and open source, open to contributions:
https://github.com/fabriziosalmi/nis2-public
https://redd.it/1q2rd0v
@r_opensource
GitHub
GitHub - fabriziosalmi/nis2-public: Automated NIS2 Directive compliance scanning and reporting tool
Automated NIS2 Directive compliance scanning and reporting tool - GitHub - fabriziosalmi/nis2-public: Automated NIS2 Directive compliance scanning and reporting tool
NOThub — GitHub‑style profile, but the “green squares” are your daily dev checklist (fully open source)
Hey everyone,
Building NOThub: a GitHub‑inspired profile/dashboard for solo students and beginner devs—but instead of showing commit contributions, the profile heatmap shows daily checklist tracking (learning, coding, notes, tests, planning, etc.).
The goal is to help people stay consistent and prove progress even when the work isn’t always public code (reading docs, debugging, planning, studying). Each day has a “Daily Entry” where you tick a checklist, set 1–3 goals, add short notes/blockers, and write the next step for tomorrow. Over time, your profile becomes a portfolio of consistency.
There will also be a small local CLI called
•
•
•
•
Important: this will be a fully open source project (code, issues, roadmap, docs), and contributions are welcome from day 1.
If you’re interested in contributing (frontend, backend, CLI, design), comment what you’d like to help with and what stack you
https://redd.it/1q39c4l
@r_opensource
Hey everyone,
Building NOThub: a GitHub‑inspired profile/dashboard for solo students and beginner devs—but instead of showing commit contributions, the profile heatmap shows daily checklist tracking (learning, coding, notes, tests, planning, etc.).
The goal is to help people stay consistent and prove progress even when the work isn’t always public code (reading docs, debugging, planning, studying). Each day has a “Daily Entry” where you tick a checklist, set 1–3 goals, add short notes/blockers, and write the next step for tomorrow. Over time, your profile becomes a portfolio of consistency.
There will also be a small local CLI called
not to log faster:•
not check (today’s checklist)•
not note "..." (quick notes)•
not start/stop (focus session timer)•
not sync (sync entries when online)Important: this will be a fully open source project (code, issues, roadmap, docs), and contributions are welcome from day 1.
If you’re interested in contributing (frontend, backend, CLI, design), comment what you’d like to help with and what stack you
https://redd.it/1q39c4l
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
GitHub - raghav4882/TerminallyQuick v4: Fast, user-friendly image processing tool for web developers with batch processing and modern format support
https://github.com/raghav4882/TerminallyQuick
https://redd.it/1q3cslm
@r_opensource
https://github.com/raghav4882/TerminallyQuick
https://redd.it/1q3cslm
@r_opensource
GitHub
GitHub - raghav4882/TerminallyQuick: Fast, user-friendly image processing tool for web developers with batch processing and modern…
Fast, user-friendly image processing tool for web developers with batch processing and modern format support - raghav4882/TerminallyQuick
I built an open-source "Memento Mori" wallpaper generator to start the year
https://github.com/Ti-03/remainders
https://redd.it/1q3d3gi
@r_opensource
https://github.com/Ti-03/remainders
https://redd.it/1q3d3gi
@r_opensource
GitHub
GitHub - Ti-03/remainders: Memento Mori. Remember you must die. Your daily reminder to live intentionally.
Memento Mori. Remember you must die. Your daily reminder to live intentionally. - Ti-03/remainders
Open source is being DDoSed by AI slop and GitHub is making it worse
I've been following the AI slop problem closely and it seems like it's getting worse, not better.
**The situation:**
* Daniel Stenberg (curl) said the project is "effectively being DDoSed" by AI-generated bug reports. About 20% of submissions in 2025 were AI slop. At one point, volume spiked to 8x the usual rate. He's now considering whether to shut down their bug bounty program entirely.
* OCaml maintainers rejected a 13,000-line AI-generated PR. Their reasoning: reviewing AI code is *more* taxing than human code, and mass low-effort PRs "create a real risk of bringing the Pull-Request system to a halt."
* Anthony Fu (Vue ecosystem) and others have posted about being flooded with PRs from people who feed "help wanted" issues directly to AI agents, then loop through review comments like drones without understanding the code.
* GitHub is making this worse by integrating Copilot into issue/PR creation — and you can't block it or even tell which submissions came from Copilot.
**The pattern:**
People (often students padding resumes, or bounty hunters) use AI to mass-generate PRs and bug reports. The output looks plausible at first glance but falls apart under review. Maintainers — mostly unpaid volunteers — waste hours triaging garbage.
Some are comparing this to Hacktoberfest 2020 ("Shitoberfest"), except now it's year-round and the barrier is even lower.
**What I'm wondering:**
Is anyone building tools to help with this? Not "AI detection" (that's a losing game), but something like:
* Automated triage that checks if a PR actually runs, addresses the issue, or references nonexistent functions
* Cross-project contributor reputation — so maintainers can see "this person has mass-submitted 47 PRs across 30 repos with a 3% merge rate" vs "12 merged PRs, avg 1.5 review cycles"
* Better signals than just "number of contributions"
The data for reputation is already in the GitHub API (PR outcomes, review cycles, etc). Seems like someone should be building this.
**For maintainers here:** What would actually help you? What signals do you look at when triaging a PR from an unknown contributor?
https://redd.it/1q3f89b
@r_opensource
I've been following the AI slop problem closely and it seems like it's getting worse, not better.
**The situation:**
* Daniel Stenberg (curl) said the project is "effectively being DDoSed" by AI-generated bug reports. About 20% of submissions in 2025 were AI slop. At one point, volume spiked to 8x the usual rate. He's now considering whether to shut down their bug bounty program entirely.
* OCaml maintainers rejected a 13,000-line AI-generated PR. Their reasoning: reviewing AI code is *more* taxing than human code, and mass low-effort PRs "create a real risk of bringing the Pull-Request system to a halt."
* Anthony Fu (Vue ecosystem) and others have posted about being flooded with PRs from people who feed "help wanted" issues directly to AI agents, then loop through review comments like drones without understanding the code.
* GitHub is making this worse by integrating Copilot into issue/PR creation — and you can't block it or even tell which submissions came from Copilot.
**The pattern:**
People (often students padding resumes, or bounty hunters) use AI to mass-generate PRs and bug reports. The output looks plausible at first glance but falls apart under review. Maintainers — mostly unpaid volunteers — waste hours triaging garbage.
Some are comparing this to Hacktoberfest 2020 ("Shitoberfest"), except now it's year-round and the barrier is even lower.
**What I'm wondering:**
Is anyone building tools to help with this? Not "AI detection" (that's a losing game), but something like:
* Automated triage that checks if a PR actually runs, addresses the issue, or references nonexistent functions
* Cross-project contributor reputation — so maintainers can see "this person has mass-submitted 47 PRs across 30 repos with a 3% merge rate" vs "12 merged PRs, avg 1.5 review cycles"
* Better signals than just "number of contributions"
The data for reputation is already in the GitHub API (PR outcomes, review cycles, etc). Seems like someone should be building this.
**For maintainers here:** What would actually help you? What signals do you look at when triaging a PR from an unknown contributor?
https://redd.it/1q3f89b
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
Best self-hosted bookmark manager?
Looking for **self-hosted bookmark managers** that are:
* Minimal and nice to look at
* Fast & easy to save links
* Good for organizing/tagging
Prefer something close to MyMind’s design/feel. Open-source or free to self-host is ideal.
https://redd.it/1q3gi3h
@r_opensource
Looking for **self-hosted bookmark managers** that are:
* Minimal and nice to look at
* Fast & easy to save links
* Good for organizing/tagging
Prefer something close to MyMind’s design/feel. Open-source or free to self-host is ideal.
https://redd.it/1q3gi3h
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
OSS for dumping entire camera roll
Hi all.
So I’m an iPhone normie and am sick to bloody DEATH of how annoying it is to manually (not on the cloud) copy media from camera roll to a local hard drive. There are paid shithole grey market software for this (looking at you, iMazing) but holy shit it really cannot be that complicated—
TDLR: is there a GOOD, known oss/noscript(that a total coding normie can figure out) that can dump an iPhone’s entire camera roll with full quality?
I hope this makes sense. I would really appreciate any recommendations.
https://redd.it/1q3htxk
@r_opensource
Hi all.
So I’m an iPhone normie and am sick to bloody DEATH of how annoying it is to manually (not on the cloud) copy media from camera roll to a local hard drive. There are paid shithole grey market software for this (looking at you, iMazing) but holy shit it really cannot be that complicated—
TDLR: is there a GOOD, known oss/noscript(that a total coding normie can figure out) that can dump an iPhone’s entire camera roll with full quality?
I hope this makes sense. I would really appreciate any recommendations.
https://redd.it/1q3htxk
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
Debugging open source issues is harder than writing the code
Issue reports come incomplete. reproduction steps are vague.
by the time you understand the problem, someone else has forked.
i’ve been experimenting with feeding issue logs and test failures into debugging tools to speed up triage. kodezi has been useful for mapping failures back to commits when context is thin.
maintainers already donate time. debugging shouldn’t drain more of it.
how are other maintainers handling this load?
https://redd.it/1q3k72w
@r_opensource
Issue reports come incomplete. reproduction steps are vague.
by the time you understand the problem, someone else has forked.
i’ve been experimenting with feeding issue logs and test failures into debugging tools to speed up triage. kodezi has been useful for mapping failures back to commits when context is thin.
maintainers already donate time. debugging shouldn’t drain more of it.
how are other maintainers handling this load?
https://redd.it/1q3k72w
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
fdir: Command-line utility to list, filter, and sort files in a directory
https://github.com/VG-dev1/fdir
https://redd.it/1q3kjpe
@r_opensource
https://github.com/VG-dev1/fdir
https://redd.it/1q3kjpe
@r_opensource
GitHub
GitHub - VG-dev1/fdir: Find and organize anything on your system
Find and organize anything on your system. Contribute to VG-dev1/fdir development by creating an account on GitHub.
Good text-to-speech software that sounds natural and with download option?
thank you
https://redd.it/1q3ld4k
@r_opensource
thank you
https://redd.it/1q3ld4k
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
BYOB self-hosting vs fully on-premise
Curious what people think about open-source projects that are not necessarily on-premise deployable but tightly coupled to a specific cloud provider.
Personally, I am currently working on a project that uses SST to deploy gracefully to AWS. It's fully open-source, but I get that a lot of people here on Reddit look down on this as it's not "fully" self-hostable as they still don't own the hardware.
Mostly trying to understand expectations before I commit harder to this architecture - I am aware that I can substitute most of what AWS provides with containterizable tools (Minio instead of S3, Redis/BullMQ instead of SQS...)
Would love to hear how others think about this, especially maintainers of open-source/self-hosted tools.
https://redd.it/1q3foyl
@r_opensource
Curious what people think about open-source projects that are not necessarily on-premise deployable but tightly coupled to a specific cloud provider.
Personally, I am currently working on a project that uses SST to deploy gracefully to AWS. It's fully open-source, but I get that a lot of people here on Reddit look down on this as it's not "fully" self-hostable as they still don't own the hardware.
Mostly trying to understand expectations before I commit harder to this architecture - I am aware that I can substitute most of what AWS provides with containterizable tools (Minio instead of S3, Redis/BullMQ instead of SQS...)
Would love to hear how others think about this, especially maintainers of open-source/self-hosted tools.
https://redd.it/1q3foyl
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
I built a customizable widget library(shadcn inspired) for flutter with live playground (Feedback Appreciated!)
Hi, I built a component library of sorts (with web preview) that lets you customize and export Flutter UI components with real-time theme changes along with the UI components themselves (lib) kinda like tweakcn+shadcn. Zero dependencies, Flutter 3.0.0+, integration-friendly, and great for quick builds/hackathons. It has over 12+theme presets including ones of popular apps!(do recommend any cool theme ideas, will try to add)
designing UI is extremely intuitive do try out!
Repo: https://github.com/TejasS1233/flutter-studio
would appreciate feedback/suggestions
https://redd.it/1q3ol07
@r_opensource
Hi, I built a component library of sorts (with web preview) that lets you customize and export Flutter UI components with real-time theme changes along with the UI components themselves (lib) kinda like tweakcn+shadcn. Zero dependencies, Flutter 3.0.0+, integration-friendly, and great for quick builds/hackathons. It has over 12+theme presets including ones of popular apps!(do recommend any cool theme ideas, will try to add)
designing UI is extremely intuitive do try out!
Repo: https://github.com/TejasS1233/flutter-studio
would appreciate feedback/suggestions
https://redd.it/1q3ol07
@r_opensource
GitHub
GitHub - TejasS1233/flutter-studio: Flutter component library with CLI tool. 40+ components, theme customizer, live preview.
Flutter component library with CLI tool. 40+ components, theme customizer, live preview. - TejasS1233/flutter-studio
Unique features of C++ DataFrame (2)
https://github.com/hosseinmoein/DataFrame
https://redd.it/1q3ry3l
@r_opensource
https://github.com/hosseinmoein/DataFrame
https://redd.it/1q3ry3l
@r_opensource
GitHub
GitHub - hosseinmoein/DataFrame: C++ DataFrame for statistical, financial, and ML analysis in modern C++
C++ DataFrame for statistical, financial, and ML analysis in modern C++ - hosseinmoein/DataFrame
Pinterest and Cosmos
I found an alternative to Pinterest - its called cosmos, it doesnt have ai slop and ads,, but is it open source? Does it spy on my data? I cant find it anywhere so i dont know its pretty new
https://redd.it/1q3slfz
@r_opensource
I found an alternative to Pinterest - its called cosmos, it doesnt have ai slop and ads,, but is it open source? Does it spy on my data? I cant find it anywhere so i dont know its pretty new
https://redd.it/1q3slfz
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
BlackScreen: turn all your screens black
Hi all,
BlackScreen is my new open source program for PC that turns all your screens black until you click to exit.
It is available as Python noscript and also as Rust program. Ready-to-use binary compatible with Windows 10 and 11 (64-bit) is attached to the release.
You can find it at https://github.com/Messina-Agata/BlackScreen :)
https://redd.it/1q3ug8h
@r_opensource
Hi all,
BlackScreen is my new open source program for PC that turns all your screens black until you click to exit.
It is available as Python noscript and also as Rust program. Ready-to-use binary compatible with Windows 10 and 11 (64-bit) is attached to the release.
You can find it at https://github.com/Messina-Agata/BlackScreen :)
https://redd.it/1q3ug8h
@r_opensource
GitHub
GitHub - Messina-Agata/BlackScreen: Program that temporarily turns all your screens black until you click to exit.
Program that temporarily turns all your screens black until you click to exit. - Messina-Agata/BlackScreen
I built an open-source IDE and framework for Android apps development in Swift
http://docs.swifdroid.com/app/
https://redd.it/1q3wt4s
@r_opensource
http://docs.swifdroid.com/app/
https://redd.it/1q3wt4s
@r_opensource
Swifdroid
Application Development - Swift for Android
SwifDroid documentation (Android framework for Swift).
I Built a Weather App Using React Native & TypeScript
https://youtu.be/Lj7ITw_tCFc?si=rPAYh9535JJieoxA
https://redd.it/1q3yblr
@r_opensource
https://youtu.be/Lj7ITw_tCFc?si=rPAYh9535JJieoxA
https://redd.it/1q3yblr
@r_opensource
YouTube
React Native Weather App | Real-Time Weather & 7-Day Forecast | TypeScript
In this video, I’m showcasing a Weather App built using React Native and TypeScript.
The app displays real-time weather information, supports city-based search, and provides a 7-day weather forecast with a clean and responsive user interface.
Tech Stack:…
The app displays real-time weather information, supports city-based search, and provides a 7-day weather forecast with a clean and responsive user interface.
Tech Stack:…
we are building an OpenSource Youtube Alternative | Booster
https://www.boostervideos.net/about
We’re two brothers who decided to build a new video platform from scratch. We’ve been working on this project, called Booster, for about two months now.
The idea came from our own frustration with existing video platforms. With Booster, we’re trying to improve the experience by using voluntary ads that give rewards to users, allowing them to boost and support their favorite channels and friends directly, and avoid content made with AI and Vertical Short Form videos.
The theme you see right now in the screen is now available for free to every user who logs in and creates a new account. We would like to know from webdevs, how we can improve it and make it better, and also know if there is any bugs or something you would llike to point out.
Regarding costs, we've solved the high costs of infrastructure thanks to our provider, so it doesn't pose a big expense, thanks to their encoding and CDN.
Regarding revenue, monetization currently would come from a virtual currency called XP, which users can either earn for free by watching voluntary feature videos or purchase. XP is used to boost channels and buy personalization assets. We also plan to implement voluntary, rewarded ads that give users free XP. The goal is to test whether users and creators actually like and adopt this model.
Moderation is made through community votes, which are a way of letting the users and the common viewer decide if the report of a specific user was accurate or not.
In the link, we've included the about page, which includes how Booster works, plus the Discord and the open GitHub.
https://redd.it/1q3zt1t
@r_opensource
https://www.boostervideos.net/about
We’re two brothers who decided to build a new video platform from scratch. We’ve been working on this project, called Booster, for about two months now.
The idea came from our own frustration with existing video platforms. With Booster, we’re trying to improve the experience by using voluntary ads that give rewards to users, allowing them to boost and support their favorite channels and friends directly, and avoid content made with AI and Vertical Short Form videos.
The theme you see right now in the screen is now available for free to every user who logs in and creates a new account. We would like to know from webdevs, how we can improve it and make it better, and also know if there is any bugs or something you would llike to point out.
Regarding costs, we've solved the high costs of infrastructure thanks to our provider, so it doesn't pose a big expense, thanks to their encoding and CDN.
Regarding revenue, monetization currently would come from a virtual currency called XP, which users can either earn for free by watching voluntary feature videos or purchase. XP is used to boost channels and buy personalization assets. We also plan to implement voluntary, rewarded ads that give users free XP. The goal is to test whether users and creators actually like and adopt this model.
Moderation is made through community votes, which are a way of letting the users and the common viewer decide if the report of a specific user was accurate or not.
In the link, we've included the about page, which includes how Booster works, plus the Discord and the open GitHub.
https://redd.it/1q3zt1t
@r_opensource
Booster
Video platform oriented for creators and users
Tiny PHP pretty-printer that formats arrays like PyTorch tensors
I’ve released a small helper for anyone working with PHP + data-heavy code (ML experiments, debugging, logs, educational projects, etc.).
PrettyPrint is a zero-dependency callable pretty-printer for PHP arrays with clean, Python-style formatting. It supports aligned 2D tables, PyTorch-like tensor views, summarization (head/tail rows & columns), and works both in CLI and web contexts.
Install:
composer require apphp/pretty-print
Examples:
Aligned 2D table:
pprint(1, 23, 456, 12, 3, 45);
// [ 1, 23, 456,
// 12, 3, 45]
PyTorch-style 2D output:
pprint($matrix);
// tensor(
// [ 1, 2, 3, 4, 5,
// 6, 7, 8, 9, 10,
// 11, 12, 13, 14, 15
// ])
Summaries for big matrices:
pprint($m, headRows: 2, tailRows: 1, headCols: 2, tailCols: 2);
3D tensors with ellipsis:
pprint($tensor3d, headB: 1, tailB: 1);
// tensor(
// [ 1, 2, ..., 4, 5,
// 6, 7, ..., 9, 10,
// ...,
// 21, 22, ..., 24, 25
// ])
Also supports labels, precision, start/end strings, and even acts as a callable object:
$pp = new PrettyPrint();
$pp('Hello', 42);
// Hello 42
You may find much more configuration features in repo: *https://github.com/apphp/pretty-print*
If you often stare at messy
https://redd.it/1q40sko
@r_opensource
I’ve released a small helper for anyone working with PHP + data-heavy code (ML experiments, debugging, logs, educational projects, etc.).
PrettyPrint is a zero-dependency callable pretty-printer for PHP arrays with clean, Python-style formatting. It supports aligned 2D tables, PyTorch-like tensor views, summarization (head/tail rows & columns), and works both in CLI and web contexts.
Install:
composer require apphp/pretty-print
Examples:
Aligned 2D table:
pprint(1, 23, 456, 12, 3, 45);
// [ 1, 23, 456,
// 12, 3, 45]
PyTorch-style 2D output:
pprint($matrix);
// tensor(
// [ 1, 2, 3, 4, 5,
// 6, 7, 8, 9, 10,
// 11, 12, 13, 14, 15
// ])
Summaries for big matrices:
pprint($m, headRows: 2, tailRows: 1, headCols: 2, tailCols: 2);
3D tensors with ellipsis:
pprint($tensor3d, headB: 1, tailB: 1);
// tensor(
// [ 1, 2, ..., 4, 5,
// 6, 7, ..., 9, 10,
// ...,
// 21, 22, ..., 24, 25
// ])
Also supports labels, precision, start/end strings, and even acts as a callable object:
$pp = new PrettyPrint();
$pp('Hello', 42);
// Hello 42
You may find much more configuration features in repo: *https://github.com/apphp/pretty-print*
If you often stare at messy
print_r() dumps to print arrays, this might make your day slightly better 😄https://redd.it/1q40sko
@r_opensource
GitHub
GitHub - apphp/pretty-print: PrettyPrint is a small, zero-dependency PHP utility that formats arrays in a clean, readable, PyTorch…
PrettyPrint is a small, zero-dependency PHP utility that formats arrays in a clean, readable, PyTorch-inspired style. It supports aligned 2D tables, 3D tensors, summarized tensor views, and flexibl...
First OSS project: URL redirect service – what features would make you use it?
As my first contribution to the open-source community, I built a tiny URL redirect service that runs on Cloudflare Workers or a VPS (Node/Bun/Docker).
Repo: https://github.com/dima6312/gr8hopper
I’m curious: what would make you actually use something like this?
E.g. “I’d use it if it had X” (metrics, A/B testing, webhooks, multi-tenant, whatever).
If any of those “X” ideas sound fun, I’d love contributors – issues, discussions, and PRs are all very welcome. I had a very specific use case to solve, which the tool does in 100%, but it could do much more!
https://redd.it/1q41u5d
@r_opensource
As my first contribution to the open-source community, I built a tiny URL redirect service that runs on Cloudflare Workers or a VPS (Node/Bun/Docker).
Repo: https://github.com/dima6312/gr8hopper
I’m curious: what would make you actually use something like this?
E.g. “I’d use it if it had X” (metrics, A/B testing, webhooks, multi-tenant, whatever).
If any of those “X” ideas sound fun, I’d love contributors – issues, discussions, and PRs are all very welcome. I had a very specific use case to solve, which the tool does in 100%, but it could do much more!
https://redd.it/1q41u5d
@r_opensource
GitHub
GitHub - dima6312/gr8hopper: Lightweight URL redirect service with admin UI. Runs on Cloudflare Workers or Node.js/Bun.
Lightweight URL redirect service with admin UI. Runs on Cloudflare Workers or Node.js/Bun. - dima6312/gr8hopper
pg-status — a lightweight microservice for checking PostgreSQL host status
**Hi!** I’d like to introduce my new project — [**pg-status**](https://github.com/krylosov-aa/pg-status).
It’s a lightweight, high-performance microservice designed to determine the status of PostgreSQL hosts. Its main goal is to help your backend identify a live master and a sufficiently up-to-date synchronous replica.
# Key features
* Very easy to deploy as a sidecar and integrate with your existing PostgreSQL setup
* Identifies the master and synchronous replicas, and assists with failover
* Helps balance load between hosts
If you find this project useful, I’d really appreciate your support — a [star on GitHub ](https://github.com/krylosov-aa/pg-status) would mean a lot!
But first, let’s talk about the problem **pg-status** is built to solve.
# PostgreSQL on multiple hosts
To improve the resilience and scalability of a PostgreSQL database, it’s common to run multiple hosts using the classic master–replica setup. There’s one **master** host that accepts writes, and one or more **replicas** that receive changes from the master via physical or logical replication.
Everything works great in theory — but there are a few important details to consider:
* Any host can fail
* A replica may need to take over as the master (failover)
* A replica can significantly lag behind the master
From the perspective of a backend application connecting to these databases, this introduces several practical challenges:
* How to determine which host is currently the live master
* How to identify which replicas are available
* How to measure replica lag to decide whether it’s suitable for reads
* How to switch the client connection pool (or otherwise handle reconnection) after failover
* How to distribute load effectively among hosts
There are already various approaches to solving these problems — each with its own pros and cons. Here are a few of the common methods I’ve encountered:
# Via DNS
In this approach, specific hostnames point to the master and replica instances. Essentially, there’s no built-in master failover handling, and it doesn’t help determine the replica status — you have to query it manually via SQL.
It’s possible to add an external service that detects host states and updates the DNS records accordingly, but there are a few drawbacks:
* DNS updates can take several seconds — or even tens of seconds — which can be critical
* DNS might automatically switch to read-only mode
Overall, this solution *does* work, and `pg-status` can actually serve as such a service for host state detection.
Also, as far as I know, many PostgreSQL cloud providers rely on this exact mechanism.
# Multihost in libpq
With this method, the client driver (libpq) can locate the first available host from a given list that matches the desired role (master or replica). However, it doesn’t provide any built-in load balancing.
A change in the master is detected only after an actual SQL query fails — at which point the connection crashes, and the client cycles through the hosts list again upon reconnection.
# Proxy
You can set up a proxy that supports on-the-fly configuration updates. In that case, you’ll also need some component responsible for notifying the proxy when it should switch to a different host.
This is generally a solid approach, but it still depends on an external mechanism that monitors PostgreSQL host states and communicates those changes to the proxy. `pg-status` fits perfectly for this purpose — it can serve as that mechanism.
Alternatively, you can use **pgpool-II**, which is specifically designed for such scenarios. It not only determines which host to route traffic to but can even perform automatic failover itself. The main downside, however, is that it can be complex to deploy and configure.
# CloudNativePG
As far as I know, CloudNativePG already provides all this functionality out of the box. The main considerations here are deployment complexity and the requirement to run within a Kubernetes environment.
# My solution - pg-status
At
**Hi!** I’d like to introduce my new project — [**pg-status**](https://github.com/krylosov-aa/pg-status).
It’s a lightweight, high-performance microservice designed to determine the status of PostgreSQL hosts. Its main goal is to help your backend identify a live master and a sufficiently up-to-date synchronous replica.
# Key features
* Very easy to deploy as a sidecar and integrate with your existing PostgreSQL setup
* Identifies the master and synchronous replicas, and assists with failover
* Helps balance load between hosts
If you find this project useful, I’d really appreciate your support — a [star on GitHub ](https://github.com/krylosov-aa/pg-status) would mean a lot!
But first, let’s talk about the problem **pg-status** is built to solve.
# PostgreSQL on multiple hosts
To improve the resilience and scalability of a PostgreSQL database, it’s common to run multiple hosts using the classic master–replica setup. There’s one **master** host that accepts writes, and one or more **replicas** that receive changes from the master via physical or logical replication.
Everything works great in theory — but there are a few important details to consider:
* Any host can fail
* A replica may need to take over as the master (failover)
* A replica can significantly lag behind the master
From the perspective of a backend application connecting to these databases, this introduces several practical challenges:
* How to determine which host is currently the live master
* How to identify which replicas are available
* How to measure replica lag to decide whether it’s suitable for reads
* How to switch the client connection pool (or otherwise handle reconnection) after failover
* How to distribute load effectively among hosts
There are already various approaches to solving these problems — each with its own pros and cons. Here are a few of the common methods I’ve encountered:
# Via DNS
In this approach, specific hostnames point to the master and replica instances. Essentially, there’s no built-in master failover handling, and it doesn’t help determine the replica status — you have to query it manually via SQL.
It’s possible to add an external service that detects host states and updates the DNS records accordingly, but there are a few drawbacks:
* DNS updates can take several seconds — or even tens of seconds — which can be critical
* DNS might automatically switch to read-only mode
Overall, this solution *does* work, and `pg-status` can actually serve as such a service for host state detection.
Also, as far as I know, many PostgreSQL cloud providers rely on this exact mechanism.
# Multihost in libpq
With this method, the client driver (libpq) can locate the first available host from a given list that matches the desired role (master or replica). However, it doesn’t provide any built-in load balancing.
A change in the master is detected only after an actual SQL query fails — at which point the connection crashes, and the client cycles through the hosts list again upon reconnection.
# Proxy
You can set up a proxy that supports on-the-fly configuration updates. In that case, you’ll also need some component responsible for notifying the proxy when it should switch to a different host.
This is generally a solid approach, but it still depends on an external mechanism that monitors PostgreSQL host states and communicates those changes to the proxy. `pg-status` fits perfectly for this purpose — it can serve as that mechanism.
Alternatively, you can use **pgpool-II**, which is specifically designed for such scenarios. It not only determines which host to route traffic to but can even perform automatic failover itself. The main downside, however, is that it can be complex to deploy and configure.
# CloudNativePG
As far as I know, CloudNativePG already provides all this functionality out of the box. The main considerations here are deployment complexity and the requirement to run within a Kubernetes environment.
# My solution - pg-status
At
GitHub
GitHub - krylosov-aa/pg-status: A microservice (sidecar) that helps instantly determine the status of your PostgreSQL hosts including…
A microservice (sidecar) that helps instantly determine the status of your PostgreSQL hosts including whether they are alive, which one is the master, which ones are replicas, and how far each repl...