InSTEDD Connected Diagnostics Platform official Docker image
8.3K
Reference implementation for the Connected Diagnostics API (http://dxapi.org/)
To start developing:
Clone the repo.
Install dependencies:
bundle install.brew install phantomjsbrew install imagemagickbrew install redisredis-server --daemonize yesbrew install elasticsearch17Setup development database: bundle exec rake db:setup
Setup test database: bundle exec rake db:test:prepare
Setup elasticsearch index template: bundle exec rake elasticsearch:setup
Run tests: bundle exec rake (this will run rspec and cucumber)
Start development server: bundle exec rails s
Additionally:
bundle exec rake manifests:loadTo create an initial set of tests:
Navigate to the application
Create a new account and sign in
Create a new institution
Create a new site
Create a new device, choosing Genoscan model
Navigate to /api/playground
Select your newly created device
Copy the contents of /spec/fixtures/csvs/genoscan_sample.csv into the Data field
Run create message and navigate to Tests to verify the tests were successfully imported
Locations are obtained from the InSTEDD Location Service. You can specify a different path in config/settings/development.yml.local
CDX uses Poirot for additional logging. You need to install zeromq library version 3.2.0 for it to work, or disable it in config/poirot.yml. On Mac OS, run brew install homebrew/versions/zeromq32; if you have other versions of zeromq installed, it may be required to run brew link zeromq32 --force as well.
To run notifiable diseases on development, checkout the project and symlink the custom settings files in /etc/nndd on this project:
$ cd $NOTIFIABLE_DISEASES/conf
$ ln -s $CDP/etc/nndd/overrides.js overrides.js
$ ln -s $CDP/etc/nndd/overrides.css overrides.css
In order to allow synchronization of clients through rsyns - for csv files -, you should use cdx-sync-sshd, which is a dockerized sshd container, with an inbox and outbox directoy for each client. Download and build it before continuing.
You have to mount sshd volumes pointing to the folders where you will store your authorized keys, server keys and sync directory. Although sshd-server runs standalone and independently of the cdx server, the cdx server needs to be aware of such directories:
SYNC_HOME: here is where files from clients wil be sync'ed. The file watcher will monitor inbox files hereSYNC_SSH: here is where authorized_keys file will be stored. The cdx app will write such file on this directory whenever a new ssh keys is added to a device.By default, the cdx app assumes such directories will point to the tmp directory of the cdp app. Thus, you should start the cdx-sync-sshd docker container this way:
cd <where you have cloned cdx-sync-server>
export CDP_PATH=<where you have cloned this cdp repository>
make testrun SYNC_HOME=$CDP_PATH/tmp/sync \
SYNC_SSH=$CDP_PATH/tmp/.ssh
Now you must start the sync filewatcher. It is based on cdx-sync-server, but already bundled into cdx app. Run the following:
cd $CDX_PATH
rake csv:watch
Now, whenever a new csv file enters the sshd inbox, it will be imported into the cdx platform.
In the client side, you will need to run another filewatcher: cdx-sync-client. It is a Windos App. Install it using its NSI installer, restart your computer, and fill the form that will prompt after first restart. You will be required to provide an activation token - you can generate it form the device manager in the CDP app.
Content type
Image
Digest
sha256:6a0e43808…
Size
606.4 MB
Last updated
over 2 years ago
docker pull instedd/cdx:0.23