# Install, data directory and logs
Source: https://nordvec.com/sk/docs/guides/desktop/install-and-data

What the Nordvec desktop app installs on Windows, macOS and Linux, every file it writes to disk, and where its log file is.



This page states where the desktop app writes on each operating system, for
your own records or an IT review. It is generated from the app's build
configuration and the file names its code writes, so it changes when they do.

The app is **Nordvec Desktop**, application id `com.nordvec.desktop`.

## Windows [#windows]

* **Installer:** an `.exe` setup program for x64.
* **Install for:** the installer asks whether to install for you only or for everyone on the computer. You only is preselected and needs no administrator rights.
* **Install folder:** you can choose it in the installer.
* **Uninstalling** removes the data directory below with the app. Updating does not.
* **Data directory:** `%APPDATA%\Nordvec Desktop`
* **Log file:** `%APPDATA%\Nordvec Desktop\logs\nordvec-<date>.log`

## macOS [#macos]

* **Download:** a disk image (`.dmg`) or a `.zip` archive, for Apple silicon and Intel Macs (one universal build).
* **Requires:** macOS 13.0 or later.
* **Removing the app** leaves the data directory below in place; delete it to remove the local sync data.
* **Data directory:** `~/Library/Application Support/Nordvec Desktop`
* **Log file:** `~/Library/Application Support/Nordvec Desktop/logs/nordvec-<date>.log`

## Linux [#linux]

* **Download:** an AppImage for x64. It runs as your user, with no system-wide install.
* **Removing the app** leaves the data directory below in place; delete it to remove the local sync data.
* **Keyring:** the app needs a running gnome-keyring or KWallet to encrypt its local sync data, and does not sync without one.
* **Data directory:** `~/.config/Nordvec Desktop`
* **Log file:** `~/.config/Nordvec Desktop/logs/nordvec-<date>.log`
* When `XDG_CONFIG_HOME` is set, the data directory is `$XDG_CONFIG_HOME/Nordvec Desktop` instead.

## What is in the data directory [#what-is-in-the-data-directory]

Everything the app keeps on your computer is in the data directory for your
operating system, above. Each signed-in account has its own sync store.

| Name                              | What it holds                                                                                                                                                                                                           |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sync-state-<account key>.sqlite` | The sync store for one signed-in account: watched folders, exclusions, the upload and removal queues and what has synced. File names and paths in it are encrypted with a key the operating system's keychain protects. |
| `logs/nordvec-<date>.log`         | The app's log for one day. It records events, counts and error codes, and every line names the app version that wrote it. It is written not to contain file names, paths or file contents.                              |
| `logs/nordvec-<date>.1.log`       | The earlier part of a day's log, kept when that day's log reaches its size limit. At most one per day.                                                                                                                  |
| `window-state.json`               | The window's last size and position.                                                                                                                                                                                    |
| `ui-locale`                       | The language of the last page the app showed, so the tray menu and notifications use it.                                                                                                                                |
| `update-health.json`              | When the app last checked for updates and whether the checks are failing.                                                                                                                                               |
| `whats-new-version`               | The last version whose list of changes the app has shown, so each update's changes are shown once.                                                                                                                      |
| `first-run-done`                  | Marks that the first launch has run, so start-at-login is turned on for a new install only.                                                                                                                             |
| `crash-ledger.json`               | When the app last stopped because of an error, as times only, so a second stop soon after reopening keeps it closed instead of reopening it again.                                                                      |

While the sync store is open, SQLite keeps `-wal`, `-shm`, `-journal` files beside
`sync-state-<account key>.sqlite`; they belong to the store. The app
also keeps the signed-in session's cookies and site storage in the data
directory. The cookie store is encrypted with a key the operating system's keychain protects.

On a computer that ran an early build, you may also find:

| Name                                     | What it holds                                                                                                                                                           |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sync-state.json`                        | State written by an early build. At sign-in the app hands it to the account that owns it, and keeps it when it cannot tell whose it is.                                 |
| `logs/nordvec.log`                       | The log an early build wrote. It is deleted with the daily logs once it is old enough.                                                                                  |
| `logs/nordvec.log.old`                   | The previous log an early build kept beside it, deleted on the same terms.                                                                                              |
| `sync-state-<account key>.json`          | Per-account state written by an early build. At sign-in the app copies it into the sync store and renames it once the copy reads back.                                  |
| `sync-state-<account key>.json.imported` | The same early state after its contents were copied into the sync store. It holds file names and paths unencrypted and nothing reads it again, so it is safe to delete. |

## Log file [#log-file]

The app writes one log file per day, `logs/nordvec-<date>.log` in
the data directory, where the date is the day on your computer. To open their
folder from the app, choose **Help > Show Log File**. When a day's log reaches
5 MB, its earlier lines move to
`nordvec-<date>.1.log`, so one day keeps at most two files.

The app keeps the last 14 days, today included, and at most
50 MB of logs in total, deleting the oldest days
first. It never deletes today's log, and it deletes only files with these names.

Every line names the build that wrote it, as
`v=<version> sha=<commit>` after the time and level.

## Which version you have [#which-version-you-have]

* Windows: choose **Help > About Nordvec Desktop**.
* macOS: choose **Nordvec Desktop > About Nordvec Desktop**.
* Linux: choose **Help > About Nordvec Desktop**.
* Every launch also writes a line starting `app_ready version=` to the log
  file, followed by the version.

## Reporting a problem [#reporting-a-problem]

Check the [known issues](/docs/guides/desktop/known-issues) first. To report a bug,
include the app version and, if you can, the log file. The app is written not
to log file names, paths or file contents, but read the log before you share
it and remove anything you do not want to send.
