You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+52-27Lines changed: 52 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,27 +3,33 @@
3
3
4
4
A tool for visualizing and exploring multimodal features extracted from video.
5
5
6
-
#Production
6
+
## Deployment
7
7
8
-
The application consists of two major components: the visualization tool (emo-spectre + database) and the data processing pipeline (erd-etl + cwltool + xenonflow). The global architecture is outlined in this image:
8
+
The application consists of two major components: the visualization tool (emo-spectre + api + database) and the data processing pipeline (erd-etl + cwltool + xenonflow). The global architecture is outlined in this image:
9
9
10
10

11
+
TODO: update figure as xenonflow and cwltool are now running in a docker container and don't require local installation.
11
12
12
-
## Prerequisites
13
+
For production, the application can be launched as a set of Docker containers. For development, see below.
`ERD_ETL_PATH` is the directory where the files for processing are stored. They are uploaded to `$ERD_ETL_PATH/upload`.
45
+
`ERD_ETL_PATH`points to the erd-etl repository, which is also used as the directory where the files for processing are stored. The upload server, xenonflow and cwltool will create/use some directories under `$ERD_ETL_PATH` for temporary storage, namely `upload`, `running-jobs`, `output` and `tmp`.
38
46
39
-
**Start the docker containers**
47
+
### Configure and build erd-etl
48
+
49
+
In erd-etl/merge_features.cwl, the database connection needs to be configured:
40
50
41
51
```
42
-
docker-compose -f docker-compose.yml -f docker-compose-production.yml up -d
52
+
DB_CONNECTION: postgresql://postgres:<pwd>@<ip address of database container>:5432/postgres
43
53
```
44
54
45
-
**Initialize the database**
55
+
**Build erd-etl**
56
+
57
+
This and below image are referred to by the CWL scripts that execute the data processing steps. They will be run by the Xenonflow container (as siblings).
Note that the metadata for the Hasura container is auto-applied from ./hasura/metadata through the [cli-migrations Hasura image](https://hasura.io/docs/latest/graphql/core/migrations/config-v2/advanced/auto-apply-migrations.html#auto-apply-migrations-v2).
50
-
## Deploy the dataprocessing pipeline
51
64
52
-
Clone the [erd-etl](https://github.com/emrecdem/erd-etl) repository.
65
+
**Build erd-praat**
66
+
```
67
+
cd praat
68
+
docker build -t erd-praat
69
+
cd ..
70
+
docker save erd-praat > erd-praat.tar
71
+
```
53
72
54
-
**Install xenon-flow**
73
+
### Configure and build xenon-flow
55
74
56
-
First install java and make sure `JAVA_HOME` is set. Then download and unpack the xenon-flow installation:
75
+
In xenon-flow/config/application.properties, edit the following:
76
+
*`xenonflow.http.auth-token` (should match XENON_API_KEY in emo-spectre/.env)
The command below executes two docker-compose files, one that launches Postgres and Hasura, the other launches Xenonflow, a simple upload server and the actual web application.
88
+
65
89
```
66
-
pip3 install cwltool
90
+
docker-compose -f docker-compose.yml -f docker-compose-production.yml up -d
Note that the metadata for the Hasura container is auto-applied from ./hasura/metadata through the [cli-migrations Hasura image](https://hasura.io/docs/latest/graphql/core/migrations/config-v2/advanced/auto-apply-migrations.html#auto-apply-migrations-v2).
0 commit comments