intermine / intermine/bluegenes
Improve running Bluegenes from Gradle
- Dominant language
- Clojure
- Stars
- 75
- Forks
- 59
- PR merge metrics
- No merged PRs in 30d
Description
https://intermine.readthedocs.io/en/latest/system-requirements/software/gradle/?highlight=bluegenes#deploy-blue-genes will probably the most common way to run Bluegenes, so we should improve the experience of this.
- The JSP webapp works with `webapp.deploy.url` and `webapp.baseurl` set to http://mega3:8080 but Bluegenes won't be able to connect to this mine, as it doesn't resolve the full URL before passing it to the frontend (setting both properties to http://mega3.gen.private.cam.ac.uk:8080 is a current workaround).
- Bluegenes now require to be passed the mine namespace as well, in addition to the service root and mine name. Make sure these are passed from the properties file.
- We looked into creating a start/stop command before; I think this could be easily achievable if we run Bluegenes in Tomcat (https://github.com/ring-clojure/ring/wiki/Setup-for-production or https://github.com/marchrock/ring-tomcat-adapter or https://github.com/weavejester/lein-ring) instead of its own Jetty server, when running from Gradle.
- Mention in the documentation linked above that it will deploy Bluegenes to the same address as Intermine (without the path) on port 5000 (we should make this port configurable).
- Review the current documentation linked above, and update if necessary.
*Update: I'm reluctant to advice users to run Bluegenes with gradle. The only way to make this reliable (with start/stop) is by building a WAR file containing Bluegenes to deploy to Tomcat, which can be a bit of work to setup. I think using Jetty inside a docker container would be a decent modern approach.*
Decision:
- We will recommend docker (include example commands) for running Bluegenes in production, but still keep gradle for testing/trying out Bluegenes
- This means we should still fix the first two points above
Contributor guide
Research direction
Start with the Gradle deployment path and the properties file referenced by the issue, then review the linked deployment documentation. Focus on resolving the mine URL before passing it to the frontend and passing the mine namespace alongside the service root and mine name. Done means the first two requirements work while Gradle remains documented for testing and Docker is recommended for production.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- clojure, docker
- Domain
- devops, documentation
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100