# Data Capture Server

While technically not an addon, the Data Capture server (or dcserver in short) is a separate product that can be deployed on a Windows or Linux server as a service or daemon.

The dcserver is used to schedule and perform bulk imports, freeing the Phaedra clients of this resource-intensive task. To facilitate this, the dcserver has a web interface that allows users to:

• Schedule new scan jobs that scan specific network locations for new data and may trigger capture jobs to import this data.
• Track the queue of capture jobs. For each capture job, users can see the progress, and the submitter may choose to cancel the job.
• Register themselves to receive e-mail notifications on various events, such as capture job completion or errors.

In addition, the dcserver can also be used to host a scriptable RESTful API, allowing other systems to consume data from Phaedra.

## Setup

Technically, the dcserver is a product very similar to the Phaedra client, except that it runs in headless mode (optionally with a console attached to it) instead of in a user interface, i.e. a workbench.

-vmargs
-Xmx8G
-Ddatacapture.server=true
-Djetty.http.port=8080
-Dphaedra.config=smb://hostname/sharename/config.xml
-Dphaedra.env=EnvironmentName
-Dphaedra.fs.path=/path/to/fileshare

• -Xmx: the maximum amount of memory the dcserver is allowed to use. Make sure to set this value sufficiently high as capture jobs may run concurrently and consume a high amount of memory.
• -Ddatacapture.server: set to true to enable all the server features such as the datacapture task queue and the web interface.
• -Djetty.http.port: set the port where the web interface will be exposed on.
• -Dphaedra.config: set the smb or file path pointing to the environment configuration file.
• -Dphaedra.env: set the name of the environment to connect to

If the dcserver runs on a Linux host, one additional setting is required: -Dphaedra.fs.path. In the config.xml file, the environment's file share component will specify an smb:// path. Due to a technical limitation, Phaedra instances running on Linux cannot access such smb paths with write access (which is needed to be able to import data). The setting Dphaedra.fs.path is used to provide an alternative path to the file share, either via a writable mount point or a local file path.

In addition to the above server settings, you can also configure various other system settings via the ini file:

• -Djava.io.tmpdir: set the directory that will be used to store temporary files.
• -Djetty.https.port: set the SSL port where the web interface will be exposed on.
• -Djavax.net.ssl.keyStore: the location of a Java keystore file (.jks) containing certificates, if you enable https.
• -Djavax.net.ssl.keyStorePassword: the password that is needed to access the keystore file.

Note that all of these settings should come after the "-vmargs" line.

## Running the server

To launch the server in a console, execute the dcserver binary in the main folder.

Note: This executable can be wrapped into a service just like any regular executable file. The configuration of a service or daemon is beyond the scope of this document.

## Using the web interface

When the dcserver is up and running, it will log a message mentioning the HTTP port being listened on, for example:

10:41:49,225 INFO  [jetty.server.AbstractConnector] Started ServerConnector@4fa5cc73{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}


You can then open a browser and point it to the following URL:

http://hostname:8080/ui/dc/index.html