Documentation

Running Noviscan day to day

Who this is for: the person administering an installation already in service. Assumes: Noviscan is installed, you are signed in with an administrator account, and at least one source is connected. Applies from version: 0.1.3

This page covers what happens after installation: the licence and its renewal, backups, updates, logs, opening up to the network, and what to do when a camera goes quiet.

Your licence

The License screen — sidebar → Settings, License tab, administrators only — shows your plan, your expiry date, and what you are using against your limits: sources, whitelist, accounts, devices.

It also shows the instance fingerprint. That is what you must provide to obtain a licence: a licence is tied to this installation and will work nowhere else.

When the expiry date approaches

You have 14 days after the expiry date. During that period your licence is honoured as-is: nothing changes, nothing closes.

You are warned through three paths:

  • The License screen shows the countdown: "Your subscription expires in N days." before the expiry date, then "Your subscription has expired. Your plan's features stay active for N more days, then the instance will return to the Free plan."

  • The dashboard shows a banner: "Expired" and "Your Premium subscription has expired (grace period).", with a Renew button.

  • A notification is sent to your operational channels, at three moments: when the expiry date approaches, when the grace period begins, and on the return to the Free plan.

    Operational channels — email, webhook, Slack — are the paths by which Noviscan reaches you outside its own screen. They are declared in the configuration file (section "The configuration file", further down); Settings → Advanced shows them read-only. ⚠️ While no channel is configured, that third path does not exist on your installation: only the two above warn you.

After those 14 days, the installation falls back to the Free plan: you keep your data, you lose your plan's limits.

Renewing

Simplest: License screen → Online activation → Activate online. Confirm the request in the page that opens; the licence installs itself and takes effect immediately. The page that opens is the Secufor portal, the site where your account and your subscriptions live; Noviscan opens it in your browser, you do not type it in. Check that the fingerprint shown by the portal is the one on the screen before you confirm.

No Internet on this machine: obtain the .lic file from your Secufor account, then License → Install a license. The replacement takes effect immediately, without restarting the application.

To stop thinking about it: tick Enable automatic retrieval on the License screen. It needs Internet access (Settings → Internet access → Allow this instance to connect to the Internet); the License screen tells you what is still missing.

If the plan falls back to Free for no visible reason

The License screen states the reason at the top of the page, together with what to do: renew, reinstall a licence, check the machine's clock, or contact support. Follow that message.

Two cases are not fixed by a renewal: a revoked licence, and an installation modified since it was signed — in that case, reinstall Noviscan from an official source. If the problem persists, contact support.

Backing up

Settings → Backup, administrators only — the four roles are described under Accounts, further down.

  1. Stop monitoring from the dashboard (⏹ Stop): the backup is refused while it runs.
  2. Click Back up. Noviscan then shows a 12-word passphrase. Write it down somewhere other than this machine: it will never be shown again.
  3. Type it back into the Confirm the passphrase you wrote down field. The Start the backup button stays disabled until the copy matches — this is deliberate: a lost passphrase makes the archive permanently unreadable.
  4. Click Start the backup.

How you know it is done: a green banner reads "Backup complete: N file(s), size.", followed by the line "SHA-256 checksum of the archive:" and the checksum itself, then the Download the archive link appears. The file count and size are what Noviscan actually wrote — compare them with the order of magnitude of your installation.

Checking that the downloaded archive is intact. The checksum shown is that of the .zip file itself. Recompute it on your copy and compare the two strings: identical, the transfer damaged nothing.

Get-FileHash -Algorithm SHA256 "C:\path\to\noviscan-backup-....zip"

⚠️ Two limits to know about. The checksum is only shown on screen, at backup time: no .sha256 file is written next to the archive, so write it down or copy it while the banner is there — an archive found later has no reference left to compare against. And a matching checksum attests that the file is intact, never that its contents restore: only a trial restore establishes that.

The archive is a ZIP encrypted with AES-256 using that passphrase. Without it, the archive is unusable — including by you.

It contains the database, your configuration, your licence, the images and clips, the remote sources' caches, the device tokens, and the encryption key. In other words: enough to start again on another machine.

What it does not contain: the application log (data/noviscan.log). If you are investigating an incident, copy it separately — a restore will not bring it back.

Restoring happens from the same screen, with the archive and its passphrase. Here too, monitoring must be stopped, and no task may be running (analysis, reindexing, enrollment): wait for it to finish.

⚠️ There is no screen listing the tasks in progress. The server runs only one at a time, and its progress is shown on the screen it was started from: a one-off scan → dashboard; reindexing → Settings → Advanced; enrollment → Sources. The only global indicator is a negative one: the ▶ Start button locks, saying "A task is in progress…" without saying which. ⚠️ The Activity tab is not that list: it is an audit log of the past.

A restore replaces the current state but destroys nothing: every replaced file is renamed to <name>.pre-restore-<timestamp>. If the restore disappoints you, the previous state is still there.

Afterwards, restart the application and sign back in: your session no longer exists in the restored database, so use an account from the backup.

Updating

Noviscan downloads updates on its own, in the background, roughly every six hours — and only if outbound Internet is allowed. It verifies the signature of what it downloads before offering it to you.

It never installs anything by itself. Installation is requested from Settings → About, via the Install and restart button, and you are asked to confirm. The application closes, installs, reopens — you stay signed in and return to the screen you were on.

Any signed-in account can install an update, not only an administrator. If that does not suit you, the only remedy in this version is not to hand accounts to people who must not restart the service.

If outbound Internet is disabled, the screen says so rather than claiming all is well.

The logs

Settings → Logs, administrators only. It shows the last 100 to 2,000 lines of the application log, as you choose.

The logging level is changed elsewhere: Settings → Advanced. The change applies immediately, with no restart. DEBUG is very verbose: keep it for diagnosis, and put it back afterwards.

The file lives in your data directory, at data/noviscan.log.

There is no export button in this version. To send logs to support, go through the Support button at the top right — visible to administrator accounts — which attaches them to your request and lets you choose to scrub them first.

The configuration file

Several settings on this page are not made on screen but in a text file, config.yaml.

Where it is. On a default Windows installation: C:\Users\<you>\AppData\Local\Noviscan\config.yaml. The %LOCALAPPDATA% notation you will see elsewhere denotes that same AppData\Local folder of your account: pasted into the Explorer address bar, it takes you there. If you chose another data location at first start, the real path is recorded in %LOCALAPPDATA%\Noviscan\data_location.txt.

⚠️ What you will find in it, and what surprises: the file sown at first start holds only two lines. The fields quoted below are therefore not in it — it is not a matter of uncommenting them, but of adding them. A commented template, shipped with the application, shows them all: C:\Program Files\Noviscan\config.yaml.template — open it and copy across what you need.

The form. It is YAML: a colon after the name, a value, and indentation that counts. The retention fields live under retention:, the service fields under api::

retention:
  unknown_face_retention_days: 30
api:
  host: 127.0.0.1
  port: 8000

⚠️ api.host and api.port are not in the template: those two are added by hand. And an emptied field is not a field set to zero: for a retention period, it means keeping without limit.

When it is read. At startup only. Any change requires closing and reopening Noviscan.

What Noviscan keeps, and for how long

You are responsible for the data Noviscan processes on your hardware. You can only be responsible for what you know about: here is everything the software keeps, including what no screen shows you.

What is kept How long Adjustable?
Unnamed faces and their images 30 days after they were last seen yes, unknown_face_retention_days
Named faces, or those on the whitelist never deleted — it is the name that protects them no
Alert images (the visual evidence) 30 days yes, media_retention_days
Alerts and presence entries (the text, without the image) 90 days yes, event_retention_days
Alert videos (Premium) 7 days yes, clip_retention_days
Deleted accounts flagged as deleted, never removed from the database no
Sign-in sessions they stop being valid after 30 days — but their row is only deleted by the manual purge (see below) the period, yes: session_lifetime_days
Paired devices (phone) no expiry — pairing lasts until you revoke it no
Sign-in attempts — IP address, and the e-mail address typed even when your instance does not know it 180 days not from the interface
Audit log of actions 90 days no, and see the warning below
Notifications awaiting a reply 90 days yes, pending_notification_retention_days

The names in the Adjustable? column are fields of the retention: section of the configuration file — see "The configuration file" above for where it is, its form, and the template to copy them from.

These periods apply on their own, roughly once a day, without asking you anything. That is the opposite of uninstalling, which touches nothing without your explicit agreement.

⚠️ What surprises people, better known beforehand than after.

  • The "sign-in attempts" row is the longest-lived data in the product, and the least talked about. It keeps IP addresses for six months, including those of people who have no account with you. It exists to tell an attack on your instance apart from a random sweep.

  • Expired sessions do not disappear on their own. After thirty days they no longer let anyone sign in — which is what matters for security — but their record stays in the database until someone runs the manual purge. No automatic purge touches them.

    ⚠️ There is no noviscan command on your PC: no executable of that name, and the installation directory is not on the PATH. The purge is asked of the application's executable, with a full path and by telling it where the data is — without which it looks for a configuration in the current directory and fails.

    Where: the PC hosting Noviscan · PowerShell · monitoring stopped

    & "$env:ProgramFiles\Noviscan\noviscan.dist\Noviscan.exe" --data-dir "$env:LOCALAPPDATA\Noviscan" purge --dry-run
    

    --dry-run deletes nothing: it announces what would be deleted. Run the same line again without --dry-run to apply it.

  • A notification left unanswered stops being answerable after ninety days. Past that point a late reply is no longer attached to the alert: it is logged and ignored, and the row is eventually deleted. It is the only duration in the table that changes a BEHAVIOUR, not merely a retention.

  • The audit log is purged on write. An instance that stops being used no longer writes, so it no longer purges: it keeps indefinitely what this table says is bounded. If you retire an instance for good, do not count on its ninety days.

✅ Erasing a person is possible as of this version: their templates, the associated detections and the corresponding media files are deleted (Article 17 GDPR). ⚠️ But this act has no screen yet — the People screen offers no erase button; today it is requested through the API (DELETE /api/v1/people/{name}) with an operator account. The erasure fails explicitly rather than leaving a partial result, and it reaches neither backups nor caches: mind those separately. The Managing recognised people page has the detail.

The first three periods are repeated, in context, in Reviewing and handling alerts. Both places must move together — the repetition is deliberate, because a reader looking at an alert does not come and read this page.

Opening access from your network

By default Noviscan listens only on the machine itself. To reach it from a phone or another computer, two steps are needed — and neither is done from the interface, which shows this setting read-only.

1. Change the listen address in the configuration file ("The configuration file", above, says where it is and how to write it), field api.host — to be added, it is not in the template:

api:
  host: 0.0.0.0
  port: 8000

0.0.0.0 means "every interface on this machine"; a specific IP address restricts listening to that one. As soon as that value is no longer a local address, transport encryption turns itself on: Noviscan generates its certificate authority and its certificate, and passes them to devices during pairing. You have no certificate to provide.

This field is read only at startup: restart Noviscan. Until it has restarted, the old address remains the only one listened on, and nothing on screen says so.

How you know it has taken — two signs, each measuring one half:

  • at startup the console announces API Noviscan démarrée sur https://…: the shift from http:// to https:// in that line is the sign of encryption, and the address shown there is the one actually listened on;
  • in Settings → Security, the red banner "The API only listens locally (api.host = 127.0.0.1)…" disappears, and the instance address offered for pairing starts with https://.

While the red banner is there, no device on the network will reach Noviscan, whatever the file contains.

2. Open the Windows firewall. Noviscan adds the rule itself if it runs with administrator rights; otherwise it remains to be added:

⚠️ Read this BEFORE pasting. The first line is essential: the command reads config.yaml from the current directory, and an administrator PowerShell starts elsewhere. The block below targets the default data location; if you chose another one at first start, replace the first line with the path recorded in %LOCALAPPDATA%\Noviscan\data_location.txt.

Where: the PC hosting Noviscan · PowerShell as administrator · the application may stay open

Set-Location "$env:LOCALAPPDATA\Noviscan"
& "$env:ProgramFiles\Noviscan\noviscan.dist\Noviscan.exe" firewall-allow

The rule opened is limited to Noviscan's port and to your local subnet.

How you know it is in place: the command prints ✓ Port 8000 ouvert dans le pare-feu Windows (entrant TCP, sous-réseau local). — or ✓ Règle pare-feu LAN déjà présente pour le port 8000. if it already was. Both count as success. (These command-line messages are French-only for now.)

It fails loudly in the most frequent case: run outside an administrator terminal, it prints ✗ Droits administrateur requis pour ouvrir le port 8000. followed by the elevated command to run. A ✗ is never a half-success: the rule is not in place.

(The port is the one of your installation; 8000 is the default.)

Noviscan also announces itself on your local network so the mobile app can find it. That announcement has no effect while it listens locally only.

When a camera goes quiet

A source can answer perfectly and produce nothing any more. Noviscan does not guess on its own what counts as abnormal for you: you have to tell it, via the Alert if no media after (hours) field in the source's form, on the Sources screen.

That field is empty by default, deliberately: the normal cadence depends on your installation. Each source's health report shows the age of its latest media — pick your threshold from those numbers, not from a hunch.

Once the threshold is set, a source silent beyond it switches to Inactive, even if the connection works. When it comes back, Noviscan tells you.

On the Sources screen, each source carries a dot:

Dot What it says
Green — Active tested, it answers and produces
Red — Inactive the last test failed, or the source is silent beyond your threshold
Grey never tested, disabled, or blocked for lack of Internet access

Grey is not green. A source that has never been tested shows a neutral dot: it does not tell you all is well, it tells you nobody has looked.

Sources that can be paired — Ezviz, Google Nest, Freebox — also carry an Authenticated or Not authenticated badge. It is independent of the dot: the dot reports the last network test, the badge reports the saved authorisation. A source that is green and Not authenticated is reachable and will return nothing. Other types show no badge at all.

Accounts

Four roles, from broadest to narrowest: owner, administrator, operator, viewer.

Accounts are managed in Settings → Users, administrators only, by invitation. Only an owner can appoint another owner or an administrator.

Inviting someone: the Invite a user button, then the e-mail address and the role, then Send the invitation. The person receives an e-mail titled "Invitation Noviscan" carrying a link valid for 7 days; there they choose their password and click Create my account.

How you know it is done. A banner tells you what actually happened, and the two cases do not look alike:

Banner What it means
Green — "Invitation sent to address." the invitation is created and the e-mail left
Amber — "Invitation created for address, but the e-mail could not be sent — check the SMTP configuration." the invitation exists, the e-mail did not leave

The amber banner is not an error: the invitation is created and its link is valid. What is missing is delivery — fix SMTP in Settings, then send the invitation again. That is the one case where sending again is the right move.

The person appears immediately in the Tenant accounts list, on a row of its own, with the Status column reading Invited — pending and, in place of the last login, "Link valid until date". That row carries neither a name nor action buttons: an invitation is not yet an account. Once the person has chosen their password, the row becomes an ordinary account with status Active, reading "Never logged in" until their first session.

⚠️ What the green banner does not attest: it speaks of the moment of sending, not of what follows. An e-mail that left can still be rejected or filed as junk at the far end — that only shows in your mail server's logs. If the status is still Invited — pending after a few days, ask them to check their junk folder rather than sending again.

Encryption of your data

Encryption at rest is on by default. On Windows the key is protected by the system's own mechanism: you have nothing to type at startup.

You can require a master password at every start. This is not done from the interface, which shows the state read-only under Settings → Advanced:

⚠️ Read this BEFORE pasting. Same condition as above: the first line puts you in the data directory, without which the command finds neither the configuration nor the key — and it targets the default location. If you chose another one, replace it with the path recorded in %LOCALAPPDATA%\Noviscan\data_location.txt.

Where: the PC hosting Noviscan · PowerShell · Noviscan closed

⚠️ "Closed" means the window closed, and nothing else. Noviscan installs no Windows service: the server lives in the window's process. There is therefore nothing to stop in Services — close the application, and check in the task manager that no Noviscan.exe is left. (The installer can optionally add a start at sign-in; that is not a service and changes nothing here.)

Set-Location "$env:LOCALAPPDATA\Noviscan"
& "$env:ProgramFiles\Noviscan\noviscan.dist\Noviscan.exe" security set-password

⚠️ This password cannot be recovered. Lose it and your encrypted data goes with it — including data from a restored backup.


Applies to Noviscan 0.1.3. The labels quoted are those of the application in this version; if they differ on your machine, your version is not this one.