# Exporting applications

Nuvolos features application exports to enhance user productivity, scientific openness and collaboration. This enables you to reuse your existing Nuvolos applications outside the platform for a wide range of use cases:

* students experimenting with code of an old course on their own machines
* authors sharing applications for the peer-review process of their papers and long-term archival
* researchers running applications across multiple infrastructures (e.g. HPC clusters)

The export feature allows users to export eligible applications as public Docker[^1] images hosted on [DockerHub](https://hub.docker.com/r/nuvolos/public). These images can run on any infrastructure that supports Docker containers, from desktop computers to compute clusters.

{% hint style="info" %}
Some Nuvolos applications have licensing or technological restrictions that prevent export. If you believe your application should be eligible for export, please contact us on Intercom.
{% endhint %}

## Starting the export process

1. Navigate to the space containing the instance where you want to export the application.
2. Navigate to the instance containing the application.
3. Make sure you are in the **Current state**.
4. On the sidebar click the Screen button (**Applications**), which shows you the Application list.
5. On the row of the application of interest, click **...** under **Actions**.
6. In the drop-down click **EXPORT APPLICATION**.

Clicking this option opens a dialog where you can name (tag) your Docker image (you can only customize the final part of the image tag—the system automatically generates the rest to avoid collisions). You can also control whether Workspace files are included in the Docker image:

{% hint style="danger" %}
Your application will be exported to a **public** Docker image hosted on DockerHub. Anyone can use your image without authentication. Do not store sensitive data in your application's library area, as it will be included in the exported image. The same applies to Workspace files if you opt to export them too.
{% endhint %}

## Contents of an exported image

An exported Nuvolos application image contains the following data:

* Your application configuration, including installed packages and extensions stored in the [APP LIBRARY](/features/applications/configuring-applications.md#persistent-locations) area
* [Environment variables](/features/environment-variables-and-secrets.md)
* A default startup command to launch the application executable
* Workspace files, unless you opt out at image creation

Exported images **do not contain**:

* Files from your [HOME](/features/applications/configuring-applications.md#persistent-locations) area (unix home folder), unless **workspace files** are also exported.
* [Environment secrets](/features/environment-variables-and-secrets.md).
* [Application addons](/features/applications/add-ons.md).

## Managing exports

1. Navigate to the space containing the instance.
2. Navigate to the instance containing the application.
3. Make sure you are in the **Current state**.
4. On the sidebar click the Screen button (**Applications**), which shows you the Application list.
5. On the top left, click **EXPORTED APPLICATIONS**.
6. This takes you to the **Exported applications** screen.

In the **Exported applications** screen, you can review all your exported and currently exporting images and delete them when you no longer want them accessible.

* Applications in the process of being exported are shown as *In progress* in the **Status** column.
* Applications currently available are shown as *Successful* in the **Status** column.
* Applications exported, but then removed show up as *Deleted* in the **Status** column. This refers to the status of the exported image, not the application on Nuvolos itself.

You can **delete** an existing export by hovering on the export in question and clicking on the trash icon under **Actions**.

## Running the exported image

{% hint style="info" %}
You only need a container runtime environment to run the exported images. If you're unfamiliar with container runtimes, we recommend to install Docker Desktop:

* [Installation instructions for Mac](https://docs.docker.com/desktop/setup/install/mac-install/)
* [Installation instructions for Windows](https://docs.docker.com/desktop/setup/install/windows-install/)
* [Installation instructions for Linux](https://docs.docker.com/desktop/setup/install/linux/)
  {% endhint %}

Nuvolos exports applications as standard Docker images. On machines with a Docker runtime and internet access, you can use the start command provided in the actions column on the exports screen.

To run the application locally:

1. Navigate to the space containing the instance.
2. Navigate to the instance containing the application.
3. Make sure you are in the **Current state**.
4. On the sidebar click the Screen button (**Applications**), which shows you the Application list.
5. On the top left, click **EXPORTED APPLICATIONS**.
6. This takes you to the **Exported applications** screen.
7. Locate the application image you want to run.
8. In the **Actions** column, click the *copy to clipboard* icon to get the docker command.

The command will have the following structure:

```
docker run -p 8888:8888 ...
```

If the docker image isn't present locally, this command will automatically pull it from DockerHub and run it. Access your application by connecting to port 8888 on your machine in the browser:

```
http://localhost:8888
```

## Archiving your image

You may want to back up or archive your images outside of DockerHub. We recommend pulling the image using Docker, then saving it as an archive:

```
docker pull ...
docker save ... | gzip > my_archive.tar.gz
```

Load the archived image back using the load command:

```
docker load < my_archive.tar.gz
```

[^1]: Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries. Docker, Inc. and other parties may also have trademark rights in other terms used herein.


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nuvolos.com/features/applications/exporting-applications.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
