> For the complete documentation index, see [llms.txt](https://docs.duplicati.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.duplicati.com/duplicati-programs/trayicon.md).

# TrayIcon

This page describes the Duplicati TrayIcon executable

The main application in the Duplicati installation is the TrayIcon program, called `Duplicati.GUI.TrayIcon.exe` on Windows and simply `duplicati` on Linux and MacOS.

The TrayIcon executable is a fairly small program that has as the primary task to register with the operating system desktop environment, and place a status icon in the desktop tray, menu, or statusbar.

The TrayIcon is connected to the server and will change the displayed icon based on the server state. Opening the associated context menu, provides the option to quit, pause/resume, or open the UI.

From Duplicati 2.4.0.0, the TrayIcon also shows the notifications from the server, such as backup errors and warnings, as notifications of the operating system: toast notifications on Windows (clicking one opens the UI), the notification center on MacOS, and the desktop notification service (over DBus) on Linux.

<div><figure><img src="https://2363712449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7cMJiGuXy340g9NzpxLY%2Fuploads%2Fgit-blob-db0e89bff252920b677d1e9251c4d56acf6fc636%2FScreenshot%202024-11-28%20at%2013.44.56.png?alt=media" alt="" width="157"><figcaption><p>TrayIcon on Windows</p></figcaption></figure> <figure><img src="https://2363712449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7cMJiGuXy340g9NzpxLY%2Fuploads%2Fgit-blob-e58bcd31cabf9d2be45224ff252ece0fffad4d65%2FScreenshot%202024-11-28%20at%2013.49.11.png?alt=media" alt="" width="186"><figcaption><p>Status icon on Ubuntu</p></figcaption></figure> <figure><img src="https://2363712449-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7cMJiGuXy340g9NzpxLY%2Fuploads%2Fgit-blob-aa782bb9eab9f2864d7cb6034ed8d04d8fdbc78a%2FScreenshot%202024-11-28%20at%2012.18.52.png?alt=media" alt="" width="129"><figcaption><p>Statusbar icon on MacOS</p></figcaption></figure></div>

The second task the TrayIcon is usually responsible for, is to host the [Server component](/duplicati-programs/server.md). The server is responsible for handling stored backup configurations, provide a user interface, run scheduled tasks and more. When launching the TrayIcon, it will also transparently launch and host the server. It uses this hosted instance to subscribe to changes, so it can change the icon and signal the server state.

## Server port

By default, Duplicati uses the port `8200` as the communication port with hosted server. Should that port be taken, usually because another instance of Duplicati is running in another user context, Duplicati will automatically try other ports from the sequence: `8200`, `8300`, `8400`, `...`, `8900`.

Once an available port is found, this port is stored in the server database and attempted first on next run.

## Default browser

By default, the Duplicati TrayIcon will use the operating systems standard method for opening the system-default browser. If this is not desired, it is possible to choose the binary that will be used to launch the webpage with the option:

```
--browser-command=<path to binary>
```

## Console output on Windows

On Windows, the TrayIcon attaches to the console of the program that started it, so that its output, such as the `--help` output, is shown in the terminal. Use the option `--detached-process=true` to start the TrayIcon without attaching to the console.

## Detached TrayIcon

In some cases it may be useful to run the server in one process and the TrayIcon in another. For this setup, the TrayIcon can run without a hosted server. To disable the Server, start the TrayIcon application with the commandline option:

```
 --no-hosted-server=true
```

This will cause the TrayIcon to connect to a Server that is already running. If the Server is not running on the same machine, or using a different port, this can be specified with the commandline option:

```
--hosturl=<host url>
```

It may also be required to provide the password for the server in the detached setup, as outlined in [Duplicati Access Password](/configuration-and-management/duplicati-access-password.md). An alternative to providing the password is to use the option:

```
--read-config-from-db=true
```

The TrayIcon will then attempt to extract signing information from the local database, provided that the TrayIcon process also has read access to the database, and that signin tokens are not disabled.

It may be convenient to [use preload settings](/configuration-and-management/preload-settings.md) to provide arguments to both the Server and TrayIcon when running in detached mode.

### Self-signed certificate

If the server is using a self-signed certificate (or a certificate not trusted by the OS), the connection will fail. To manually allow a certificate, obtain the certificate hash, and provide it with:

```
--host-cert-hash=<hash>
```

When the TrayIcon is hosting the server, or has access to the database settings, it will automatically extract the certificate hash, so that particular certificate is accepted. This technique is secure and very similar to [certificate pinning](https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning).

For testing and debugging purposes, the certificate hash `*` means "any certificate". Beware that this settings is very insecure and should not be used in production settings.

If the revocation status of the certificate cannot be checked, for instance because the revocation server is offline, the option `--ignore-revocation-failure=true` ignores that failure. This option is available from Duplicati 2.4.0.0.

## Server settings

When hosting the server, the TrayIcon also accepts all the server settings and will forward any commandline options to the hosted server when starting it.

It is possible to run Duplicati in "portable mode" where it can run from removable media, such as an USB-stick, see the [server data location](/duplicati-programs/server.md#storing-data-in-different-places) section for more details.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.duplicati.com/duplicati-programs/trayicon.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
