Web-application for rapid checking of multiple-DNA sequences for feasibility and time of DNA synthesis with multiple vendors.
If you find this work useful, please consider citing the corresponding publication:
DNA Scanner: a web application for comparing DNA synthesis feasibility, price and turnaround time across vendors
Gledon Doçi, Lukas Fuchs, Yash Kharbanda, Paul Schickling, Valentin Zulkower, Nathan Hillson, Ernst Oberortner, Neil Swainston, Johannes Kabisch
Synthetic Biology, Volume 5, Issue 1, 2020, ysaa011
https://doi.org/10.1093/synbio/ysaa011
Check out the project from the git repository.
First the configuration file config.yml in the directory Backend must be customized.
The application runs in a docker container, therefore docker and docker-compose must be installed.
In the development environment, a database is made available within a container. This is not the case in the production environment, because it is not recommended for production use.
Use the shell script deploy.sh to start the environment. The script will run docker-compose with the docker-compose.yml and it will be extended by the docker-compose.override.yml.
chmod 775 deploy.sh
sudo ./deploy.sh
By default the ./Backend/config.yml has the database credentials as configured in the docker-compose.override.yml.
By default the volumes of the database are bound to /srv/dnascanner/db/ to make the data persistent. You can make the saved information temporary by removing the volume shown below from the docker-compose.override.yml.
- /srv/dnascanner/db:/var/lib/mysql
You can force a rebuild without caching using the script rebuild.sh.
chmod 775 rebuild.sh
sudo ./rebuild.sh
The production environment requires a separate database. You can configure it in ./Backend/config.yml. In the production environment the database must be separate because it is not recommend to run a database inside of a container for production use.
Certificates for https are required for the production environment. The certificates must be placed in /srv/dnascanner/cert/
. In the following code we create the directory and generate self-signed certificates. Alternatively you can put your own certificates there. The certificates are configured in the file nginx-secure.conf.
mkdir /srv/dnascanner/cert -p
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /srv/dnascanner/cert/cert.key -out /srv/dnascanner/cert/cert.crt
The nginx-secure.conf will be used as default. You can also place an specific nginx configuration file in /srv/dnascanner/nginx/
.
Use the shell script deploy-prod.sh to start the environment. The script will run docker-compose with the docker-compose.yml and it will be extended by the docker-compose.prod.yml.
chmod 775 deploy-prod.sh
sudo ./deploy-prod.sh
Name | Description |
---|---|
Port | The default port is 80. You can change it in the docker-compose.prod.yml. At services > frontend > ports. Just write your port before the ":443". |
Mapped folders | The default the folders are mapped into /srv/dnascanner/. You can change it in the docker-compose.prod.yml. At services > frontend > volumes. Just write your path before the ":". |
Failure | Description | Solution |
---|---|---|
Failure running the Deploy-Script: "Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock" | The user on the system does not have the rights to start the containers | Run the Script with sudo |