This document outlines the software and hardware requirements of OpenSpecimen.
Server | Operating System | Technical Specifications | |
---|---|---|---|
1 | Prod database server | Linux ( CentOS, Ubuntu, RedHat) | Quad-core CPU, 8GB RAM, 100 GB SSD HDD |
2 | Production app server | Linux ( CentOS, Ubuntu, RedHat) | Quad-core CPU, 8GB RAM, 100 GB any HDD |
3 | Test server | Linux ( CentOS, Ubuntu, RedHat) | Dual-core CPU, 4GB RAM, 100 GB any HDD |
4 | Printing server (for BarTender or NiceLabel) | Windows 10 |
You will need to purchase a network printing software with automation capabilities like BarTender, NiceLabel, etc. You can use any network-enabled printer like Brady, Zebra of any make.
To integrate with other databases like RedCap, OpenClinica, Epic, Velos, Oncore, etc, you will need a plugin developed by Krishagni. Email support@openspecimen.org for more details. You can also develop your own plugins using the APIs if you have an in-house development team.
Q: What language is the code written in?
A: The backend is written in Java. UI is developed using HTML5 and JavaScript
Q: How much memory is needed?
A: In short, if both apps and databases are installed on the same machine, then we suggest to equip the machine with a minimum of 4 GB for smoother operation. In reality, the amount of memory needed is determined by the profile of the load like a number of concurrent users, count of specimens, throughput and response time requirements, etc.
Q: What are the minimum OS/app server requirement for the app?
A: Server is developed using Java language; therefore the web app has no direct dependency on the operating system. Any operating system that supports Java 8 runtime will do.
Any version of Tomcat >= 7.0 that supports servlet 3.0 specification will work
Starting OpenSpecimen v5.2 onward, any version of Tomcat >= 8 that supports servlet 4.0 specification will work.
Q: Does it have any platform-specific code or dependencies on low-level programs like Perl / ruby/python/chron/shell etc?
A: None
Q: Does it need any specific browser plugins?
A: None
A: Groovy-based Gradle build tool is used to compile and package the source code into a web app artifact (.war). The release distribution is provided in compressed artefact (.zip) containing the app, and its dependencies like Tomcat, JDBC drivers, etc
A: Bugs are reported in our bug tracking system JIRA (https://openspecimen.atlassian.net) by adopters and in-house QA. Please email support@openspecimen.org if you need an account to the Jira.
Depending on the severity of bugs, bugs are either
A: OpenSpecimen uses Liquibase framework change set scripts to seamlessly manage differences between DDLs of different databases. As such we do not explicitly maintain DDL SQL statements.
Liquibase scripts are a source of truth. Liquibase scripts are available in the Github repository.
A: Database changes are managed using Liquibase framework scripts, which are executed by OpenSpecimen during server bootstrap. Every time, change scripts are run, new changesets, if any, will get applied to the database. This ensures database schema is up-to-date and compatible with the version of OpenSpecimen being run. There is no additional step required by the DBA to carry out on every release.
A: For most tasks, sudo access is good enough. For some tasks like setting up OpenSpecimen as a service needs root access.
A: Following ports should be open:
A: Min 4GB RAM per server with standard server VM configuration.
A: Yes. I assume by OS you mean Operating System and not OpenSpecimen.
A: Yes.
A: Typically ongoing basis.
A: None on the firewall unless you want to give web access to external researchers. If you want to do it, then open port 443.
A: The support staff should have sudo rights to perform the following actions:
systemctl
(RHEL lineage) / service
(Debian lineage) commands.