Compliance & recordsv4.1.1

Cyresora

CRA and NIS2 reporting deadlines counted in hours, with a record of what you sent and to whom.

For CRA manufacturers and NIS2 entities. Often replaces Kopexa, Vanta or Drata.

Single license $79 · Extended license $179 · paid once, yours for good

Try the live demoNo sign-up. The demo resets itself, so click anything.

What it does

A live board in hours

Every running deadline, worst first, in hours remaining. During an incident this is the only screen anyone opens.

Every breach clock, one incident

CRA, NIS2, GDPR Article 33 and DORA, each counted from its own anchor on the same incident.

Recording what you sent

To whom, when, through what channel, with their reference and the text kept. That record marks the stage as filed.

What to send, drafted

Each stage's report drafted from your incident record, with the gaps marked. You check it, send it and record it.

Alerts to your rota

Deadline alerts by email through your own SMTP, and a signed webhook for SMS or chat. Off until you switch them on.

The rota

Who notifies, who decides, their deputies, out-of-hours numbers and the national authority each one deals with.

Scope as your determination

You mark whether a product or entity is in scope, with your reasoning. The register does not decide it.

A vulnerability register

Actively exploited, and the date a corrective measure became available. The handful you are handling, not a CVE feed.

Risk register and document hub

Risks filed under the NIS2 Article 21(2) measures. Every version of your policies, with its hash, approver and review date.

Devices from Microsoft Entra ID

Import the Microsoft Entra admin center's device export. Next month's export updates the same rows.

The documents

A per-incident report PDF with every ladder and everything sent, plus register, vulnerability and evidence CSVs.

Also: two-factor sign-in, single sign-on, an append-only audit trail and scheduled backups.

Self-hosted without the assembly

The other answer to “self-hosted” is a repository: clone it, read the compose file, provision a database, wire up mail, then keep it patched yourself. That is a fair answer when running infrastructure is already your job, and we would rather say so than pretend otherwise. This is the other kind. It is bought once at $79.00, the full PHP source is in the download, and the web installer finishes on ordinary shared hosting in about two minutes. No Composer, no Node, no build step, nothing to compile, and nothing that phones home.

Is it right for you?

What Cyresora deliberately doesn’t do.

  • **Not legal advice, and not a scope determination** — it records your determination and your reasoning, it does not make it
  • **NIS2 is a Directive** — it models the Directive's own stages, not 27 national transpositions
  • **It does not file anything.** No integration with the CRA single reporting platform or any national portal
  • **Not a vulnerability scanner and not a CVE feed** — a register of what you are handling, not a discovery tool
  • **No SOC, no SIEM, no detection** — the clock starts when you record that you became aware
  • **Single-tenant: one organization per installation**

Release history

Own It 4.1Client installations and your other toolsOct 4, 2026

For Cyresora, 4.1 makes two changes that every app gets. What’s new in 4.1 →

Own It 4.0It updates and backs itself upSep 29, 2026

For Cyresora, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and… What’s new in 4.0 →

Own It 3.3The import preview tells the truthSep 27, 2026

The asset import's preview used to count a row whose owner email is not an address as ready, and the import then skipped it. What’s new in 3.3 →

Own It 3.2Every breach clock on one incidentSep 26, 2026

The 3.2 wave (Cyresora 1.1) ran GDPR Article 33 and DORA beside the CRA and NIS2 ladders on the same incident, each from its own anchor, and drafted each stage's…

What’s in the zip

The tree as the zip ships it — the working leftovers the packager deletes are not listed

  • .htaccess
  • API.md
  • Dockerfile
  • LICENSE.txt
  • QUICKSTART.txt
  • README.md
  • assets/
  • bin/
  • config.sample.php
  • controllers/
  • deploy/
  • index.php
  • install/
  • manifest.json
  • offline.html
  • router.php
  • src/
  • sw.js
  • tests/
  • views/
src/Clock.php: a real module, the first 24 of 388 lines

Chosen as the largest module in src/ that is not one of the shared cores — this product's own logic, not a file every product carries.

<?php
/**
 * Clock.php — THE core: the CRA and NIS2 reporting clocks. Pure, offline, and never reads the
 * system time. Every function takes "now" as an argument, so the tests pin real instants instead of
 * hoping the suite does not run at midnight.
 *
 * WHY THIS FILE IS SHAPED THE WAY IT IS
 * -------------------------------------
 * The obvious model — "two ladders of 24h / 72h / final, both counted from the moment you found
 * out" — is wrong, and wrong in the direction that produces a confident, late filing. Read the
 * instruments and there are FOUR different anchors:
 *
 *   CRA, Regulation (EU) 2024/2847, Article 14 — applies from 11 September 2026
 *     · actively exploited VULNERABILITY
 *         early warning    24 h  from becoming aware
 *         notification     72 h  from becoming aware
 *         final report     14 days  "after a corrective or mitigating measure is available"
 *     · SEVERE INCIDENT having an impact on the security of the product
 *         early warning    24 h  from becoming aware
 *         notification     72 h  from becoming aware
 *         final report     1 month  "after the submission of the incident notification"
 *
 *   NIS2, Directive (EU) 2022/2555, Article 23(4) — significant incident
 *         early warning    24 h  from becoming aware                      (a)

Runs on: Web installer in about two minutes; plain PHP 8.1+ with MySQL/MariaDB (or SQLite for a trial), no Composer and no build step — Docker one-liner included. Tested on PHP 8.3. Or run it in Docker: the Dockerfile is in the zip.

Technical owners can install it with one line and their license key: curl -fsSL https://ownware.io/install.sh | sh -s -- cyresora <your license key>

Nothing is obfuscated or encoded; what you read is what runs. Manual · API · the test run

Which license do I need?

It comes down to how many installations you need. Running your own business on one site is the Single license. A second domain of your own, or sites you build or run for other people, is the Extended license.

Single license$79
One (1) domain or subdomain · One business, running it on one site.
  • Install it on one domain or subdomain you own or operate
  • Change the source however you like for that installation
  • Run your own business on it commercially, client work included
  • Re-download the current build any time from your buyer portal
  • A second site, or an installation you hand to a client as theirs, needs the Extended license
  • No reselling, redistributing or sublicensing the source
  • Not for offering it to other people as a hosted service
Buy the Single license, $79
Extended license$179
Unlimited sites you own or operate, plus up to 10 client installations (white-label included) · Agencies, and anyone running it on more than one site.
  • Everything the Single license grants
  • Install it on as many domains as you own or operate — no cap on the number
  • Up to ten client installations, one per client project, handed over or hosted for each client; for more, buy another Extended license
  • White-label: remove or replace the product name and logo in the screens of client installations
  • Still no reselling or redistributing the source itself
  • Running it as a multi-tenant service others sign up for needs a SaaS agreement
Buy the Extended license, $179

Every download carries the full terms as LICENSE.txt. The complete wording is on the terms page.

After you buy

Updates

The app’s Updates page installs a new release with your license key, with the release’s signature checked and a backup taken first. Your download link always serves the current build. Download again any time from your order page or the buyer portal; there is no renewal fee.

Help

Email support for installation and for defects in the code as delivered: a person reads and answers every message. It does not cover custom development or server administration. What support covers

If it isn’t right

Refunds are handled by Lemon Squeezy as merchant of record, case by case. EU consumers keep the statutory 14-day right until delivery starts. Refund terms

If we disappear

It keeps running: your server, the full PHP source, no license check that can fail. If no stable release is published for 365 days, the domain limit lifts; after three such years your copy becomes MIT-licensed. The terms have the exact wording: continuity.

Questions

Does it file the report for me?
No. There is no integration with the CRA single reporting platform or any national portal, and no API for one this product could use. You file; you record what you filed. The register's job is to show when each report went out against each deadline. Whether that met the law is for you and your adviser.
NIS2 is a Directive — whose version does this model?
It models the Directive's own stages and records your national authority and any variation you have been told about. It does not model 27 national transpositions and does not pretend to. What binds you is your Member State law.
Does it decide whether I am in scope?
No, and that is deliberate. Whether a product falls under the CRA, or whether you are an essential or important entity, is a legal question. The register records your determination and your reasoning.
Is this a vulnerability scanner or a CVE feed?
Neither. It is a register of the vulnerabilities you are actually handling, with the two dates the regulations turn on: actively exploited, and corrective measure available.
Where does the data live?
On your server. Plain PHP 8.1+ with MySQL or MariaDB — SQLite for a trial — no Composer and no build step. Your incident file does not sit in someone else's cloud.
Is there an annual renewal?
No. One license payment, and nothing renews.
Are all the deadlines counted from the moment we found out?
No, and this is the trap the product exists to avoid. There are four anchors rather than two ladders: some final reports are counted from the filing, and one from the incident handling being completed, not from when you became aware. Modeling it as a single ladder produces a confident, late filing — which is the worst kind.
Do the clocks stop at weekends?
No. They run in hours from the instant you supply, straight through weekends and holidays.
Does it model my Member State's version of the rules?
No. NIS2 is a Directive, and what a Member State transposed is not something this product claims to know. It counts the periods in the instruments and records what you sent and to whom; it submits nothing to any authority.
Better together
Compliance Suite: Privara, Confida, Complia, Packora and Cyresora
Five registers that record GDPR requests, whistleblowing reports, NIS2 and CRA reporting deadlines, complaints and packaging data, on your own server.
5 tools for$299
$435 separatelySave $136

Covered in these guides

Also covered in: EU Data Residency for Business Software — The Buyer's Guide.

More about Cyresora

For manufacturers under the Cyber Resilience Act (reporting from 11 September 2026) and NIS2 entities: every reporting deadline counted in hours from the event the law counts it from, a record of what you sent and to whom, and alerts to your rota.

The problem it solves

A self-hosted NIS2 reporting register matters the day you fall in scope, because the reporting clocks run in hours, each from the event the law counts it from — and an enterprise GRC platform is a lot of machinery for keeping that record straight. Cyresora is $79 once: deadlines counted in hours, what you sent and to whom, vulnerabilities and the rota, in plain PHP on your own server.

Article 14 of the Cyber Resilience Act (Regulation (EU) 2024/2847) sets an early warning within 24 hours for an actively exploited vulnerability or a severe incident; Article 71(2) makes it apply from 11 September 2026, as the Regulation reads on EUR-Lex. Cyresora counts that period and records what you sent. NIS2 sets a 24-hour early warning for essential and important entities (Article 23). When that applies to you depends on your Member State's law.

There is no version of that timetable in which you work out the process while the clock is running. And a single event routinely triggers both regimes at once, each with its own ladder off the same moment of awareness.

  • Deadlines tracked in someone's head during the one week nobody has spare attention
  • Enterprise GRC or an incident-response retainer, both sized for larger organizations
  • No record of what was actually sent, to whom and when, so nothing in the register marks the stage as filed

Every feature

  • A live board, counted in hours. Every running deadline, worst first, in hours remaining. During an incident this is the only screen anyone opens, which is why it is the home screen.
  • Every breach clock on one incident. CRA, NIS2, GDPR Article 33 and DORA, each counted from its own anchor: the moment you became aware, the moment the personal data breach was confirmed, the moment you classified it as major.
  • Recording what you actually sent. To whom, when, through what channel, with their reference and the text kept. That record is what marks the stage as filed in the register, so it is its own permission: a member can work an incident, but declaring that a report went out needs notify.submit. Filing the same stage twice is refused by a unique index, because a duplicate is not a second stage filed.
  • A vulnerability register with the switch that matters. Actively exploited, and the date a corrective measure became available — the event the CRA final-report clock waits for. Not a CVE feed and not a scanner: the handful you are actually handling.
  • Scope as YOUR determination. Whether a product has digital elements, or whether you are an essential or important entity, is a decision with legal consequences. You mark it, with your reasoning recorded beside it. The register does not decide it and does not guess.
  • The rota. Who notifies, who decides, their deputies, out-of-hours numbers, and the national authority each one deals with — the list nobody can find at 2am. With alerts on, the notifiers and their deputies are emailed as each deadline nears.
  • The documents. A per-incident report PDF with every ladder and everything sent, plus CSVs of the reporting register one row per stage, the vulnerabilities, and an evidence manifest.
  • Alerts and the owner layer. Deadline alerts to your rota by email through your own SMTP, and a signed deadline.alert webhook for SMS or chat — off until you switch them on. Two-factor sign-in · single sign-on through your identity provider (OIDC) · roles with invitation links · append-only audit trail with CSV export · one-click and scheduled backups with a dry-run restore · REST API with OpenAPI and signed webhooks · an MCP endpoint · evidence files on each incident · your logo and colors.
  • What to send, drafted. Each stage's report drafted from your incident record under the headings the provision asks for, with the gaps marked. You check it, send it, and record it; Cyresora files nothing.
  • Risk register and document hub. Risks filed under the NIS2 Article 21(2) measures, and every version of your policies with its hash, approver and review date.
  • Devices from Microsoft Entra ID. Import the admin center's device export; next month's export updates the same rows.
  • Updates from inside the app. The Updates page installs a new release with your license key: Ownware's signature is checked, a backup is taken first, and the app puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. It never checks by itself.
  • Backups by themselves. Automatic backups, an optional copy to S3-compatible storage you own, and a weekly check that the latest backup reads back. The Health page names anything that needs attention.
  • Own It 4.0.1 — fixes and an up-to-date manual. For Cyresora, 4.0.1 fixes an installer that had lost its styling and a command-line update that ended in an error after putting the previous version back. Its manual, FAQ and QUICKSTART now cover everything 4.0 added, including two Nginx rules that keep the data folder private. Your license covers it: press Check for updates on the Updates page, or download it from your order page.
  • Own It 4.0.2 — the installer opens on every host. For Cyresora, 4.0.2 fixes a fresh install on an Apache host: the one-page setup at /install/ looped back to itself and never opened, and now it opens. Cyresora's Docker image also gives the web server the whole app folder, so a Docker install can finish and update itself. Your license covers it: press Check for updates on the Updates page, or download it from your order page.

Release notes in full

  • Own It 4.1: client installations and your other tools. For Cyresora, 4.1 makes two changes that every app gets. An Extended license bought from October 4, 2026 covers up to ten client installations, one per client project: hand each one over to the client or host it for them, with the client's logo and colors from the app's branding settings. The API reference now shows how to connect Cyresora to Zapier, Make or n8n, using its own webhooks and API key. Your license covers the update: press Check for updates on the Updates page, or download it from your order page.
  • Own It 4.0: it updates and backs itself up. For Cyresora, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. A new install can start with a sample business and remove it in one click; backups run by themselves, with an optional offsite copy and a weekly check that the latest one reads back; and the Health page says whether the install is looking after itself.
  • Own It 3.3: the import preview tells the truth. The asset import's preview used to count a row whose owner email is not an address as ready, and the import then skipped it. Now the preview shows it as skipped before you confirm.
  • Own It 3.2: every breach clock on one incident. The 3.2 wave (Cyresora 1.1) ran GDPR Article 33 and DORA beside the CRA and NIS2 ladders on the same incident, each from its own anchor, and drafted each stage's report from the incident record with the gaps marked, for you to check and send. It added a risk register filed under the NIS2 Article 21(2) measures, a document hub that keeps every version of your policies, and devices imported from Microsoft Entra ID.

Browse self-hosted: Compliance software

Cyresora$79 once
Demo Buy