Hello,
I was able to run dataverse-globus app (https://github.com/gdcc/dataverse-globus) on my local machine. However, I do not understand the last step in bringing it to production.
After I do this step: “To build run ng build --base-href=path_to_globus_app” what do I do next? What is needed to run it on the server? What starts the app and from where?
Thank you,
Systems Librarian
MBLWHOI Library
Data Library and Archives
Woods Hole Oceanographic Institution
mblwhoilibrary.org -- whoi.edu
--
You received this message because you are subscribed to the Google Groups "Dataverse Users Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dataverse-commu...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/dataverse-community/SJ2PR16MB57966A2D3CCC4DDB256806FAC25EA%40SJ2PR16MB5796.namprd16.prod.outlook.com.
Hi Phil,
I think I was able to run it. I can write documentation once I get everything sorted out.
I’m trying to sort out a problem I’ve run into with Dataverse not accepting a signed URL from dataverse-globus app server. At least that's what I think is happening. Once I figure it out, I should be able to write everything up.
The app is running, with nginx serving it on a dedicated server. So that’s a great progress. But, it fails on the very last step when it returns a signed url to the Dataverse.
-Kirill
Systems Librarian
MBLWHOI Library
Data Library and Archives
Woods Hole Oceanographic Institution
mblwhoilibrary.org -- whoi.edu
From: dataverse...@googlegroups.com <dataverse...@googlegroups.com>
On Behalf Of Philip Durbin
Sent: Thursday, July 31, 2025 9:12 AM
To: dataverse...@googlegroups.com
Subject: [EXTERNAL] Re: [Dataverse-Users] Starting Dataverse-Globus app in production
This email originated outside of WHOI. Please use caution if clicking on links or opening attachments.
Thank you! I don’t see an option for SignerUrl when I run ./asadmin list-log-levels
Here is what I get. Is it under a different logging parameter?
./asadmin list-log-levels
ShoalLogger <CONFIG>
com.hazelcast <WARNING>
com.sun.enterprise.server.logging.GFFileHandler <ALL>
com.sun.enterprise.server.logging.SyslogHandler <ALL>
jakarta.mail <INFO>
java.util.logging.ConsoleHandler <FINEST>
javax.enterprise.resource.corba <INFO>
javax.enterprise.resource.javamail <INFO>
javax.enterprise.resource.jdo <INFO>
javax.enterprise.resource.jms <INFO>
javax.enterprise.resource.jta <INFO>
javax.enterprise.resource.resourceadapter <INFO>
javax.enterprise.resource.sqltrace <FINE>
javax.enterprise.resource.webcontainer.jsf.application <INFO>
javax.enterprise.resource.webcontainer.jsf.config <INFO>
javax.enterprise.resource.webcontainer.jsf.context <INFO>
javax.enterprise.resource.webcontainer.jsf.facelets <INFO>
javax.enterprise.resource.webcontainer.jsf.lifecycle <INFO>
javax.enterprise.resource.webcontainer.jsf.managedbean <INFO>
javax.enterprise.resource.webcontainer.jsf.renderkit <INFO>
javax.enterprise.resource.webcontainer.jsf.resource <INFO>
javax.enterprise.resource.webcontainer.jsf.taglib <INFO>
javax.enterprise.resource.webcontainer.jsf.timing <INFO>
javax.enterprise.system.container.cmp <INFO>
javax.enterprise.system.container.ejb <INFO>
javax.enterprise.system.container.ejb.mdb <INFO>
javax.enterprise.system.container.web <INFO>
javax.enterprise.system.core.classloading <INFO>
javax.enterprise.system.core.config <INFO>
javax.enterprise.system.core <INFO>
javax.enterprise.system.core.security <INFO>
javax.enterprise.system.core.selfmanagement <INFO>
javax.enterprise.system.core.transaction <INFO>
javax.enterprise.system <INFO>
javax.enterprise.system.ssl.security <INFO>
javax.enterprise.system.tools.admin <INFO>
javax.enterprise.system.tools.backup <INFO>
javax.enterprise.system.tools.deployment.common <WARNING>
javax.enterprise.system.tools.deployment.dol <WARNING>
javax.enterprise.system.tools.deployment <INFO>
javax.enterprise.system.util <INFO>
javax.enterprise.system.webservices.registry <INFO>
javax.enterprise.system.webservices.rpc <INFO>
javax.enterprise.system.webservices.saaj <INFO>
javax <INFO>
javax.mail <INFO>
javax.org.glassfish.persistence <INFO>
org.apache.catalina <INFO>
org.apache.coyote <INFO>
org.eclipse.persistence.session <INFO>
org.glassfish.admingui <INFO>
org.glassfish.naming <INFO>
org.glassfish.wasp <INFO>
org.jvnet.hk2.osgiadapter <INFO>
Thank you,
-Kirill.
Classic installation
-Kirill.
To view this discussion visit https://groups.google.com/d/msgid/dataverse-community/CABbxx8GmO7kxkZh-2b-5W%3Dvw60Yeg2wkEjEMYofuUhkbQEb6GA%40mail.gmail.com.
Thank you, Jim,
After after adding logging I see the following:
[2025-08-01T13:59:38.036-0400] [Payara 6.2025.2] [FINE] [] [edu.harvard.iq.dataverse.util.UrlSignerUtil] [tid: _ThreadID=77 _ThreadName=http-thread-pool::http-listener-1(4)] [timeMillis: 1754071178036] [levelValue: 500] [CLASSNAME: edu.harvard.iq.dataverse.util.UrlSignerUtil]
[METHODNAME: isValidUrl] [[String to hash:
http://dataverse.whoi.edu/api/v1/datasets/4266/globusUploadParameters?locale=en&until=2025-08-01T14:04:30.897&user=kbatyuk&method=GET&token=<key>]]
[2025-08-01T13:59:38.036-0400] [Payara 6.2025.2] [FINE] [] [edu.harvard.iq.dataverse.util.UrlSignerUtil] [tid: _ThreadID=77 _ThreadName=http-thread-pool::http-listener-1(4)] [timeMillis: 1754071178036] [levelValue: 500] [CLASSNAME: ed u.harvard.iq.dataverse.util.UrlSignerUtil] [METHODNAME: isValidUrl] [[Calculated Hash: OMITTED JUST IN CASE]]
[2025-08-01T13:59:38.036-0400] [Payara 6.2025.2] [FINE] [] [edu.harvard.iq.dataverse.util.UrlSignerUtil] [tid: _ThreadID=77 _ThreadName=http-thread-pool::http-listener-1(4)] [timeMillis: 1754071178036] [levelValue: 500] [CLASSNAME: ed u.harvard.iq.dataverse.util.UrlSignerUtil] [METHODNAME: isValidUrl] [[Hash doesn't match]]
-Kirill.
Got this figured out, the problem with the signed URL was caused by AJP not being implemented. Since this configuration was described in the Shibboleth installation, and we currently do not use Shibboleth with our installation, I have skipped this part of the documentation.
This part: https://guides.dataverse.org/en/latest/installation/shibboleth.html#ajp
After I added “ProxyPass / ajp://localhost:8009/” to ssl.conf, everything started to work.
Here is how I have it installed. It lives on its own little VM machine running RHEL 9. 2CPUs, 6GB of RAM and 80 GB of storage.
The dataverse-globus app is served by Nginx.
The app files are location:
/usr/share/nginx/html/globus/3rdpartylicenses.txt
/usr/share/nginx/html/globus/assets/cloud.png
/usr/share/nginx/html/globus/assets/config.json
/usr/share/nginx/html/globus/assets/i18n/en.json
/usr/share/nginx/html/globus/assets/i18n/fr.json
/usr/share/nginx/html/globus/assets/recycleBin.png
/usr/share/nginx/html/globus/assets/sample-mp4-file.mp4
/usr/share/nginx/html/globus/cloud.5064fa9a0a6569b6.png
/usr/share/nginx/html/globus/favicon.ico
/usr/share/nginx/html/globus/index.html
/usr/share/nginx/html/globus/main.abf74d8958a5fe41.js
/usr/share/nginx/html/globus/polyfills.400950b57abdf2e9.js
/usr/share/nginx/html/globus/runtime.0ccea38e6c987fc6.js
/usr/share/nginx/html/globus/styles.fe09e559e65ef7e1.css
Note that the file names have additional characters in them; this is because the app was compiled for production.
Here is the Nginx config. Nothing fancy at all in it.
server {
listen 443 ssl;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
ssl_certificate /etc/pki/tls/certs/dvglobus_whoi_edu_cert.cer;
ssl_certificate_key /etc/pki/tls/private/key.key;
server_name dvglobus.whoi.edu;
root /usr/share/nginx/html/globus/;
# Serve index.html for all not-found paths
location / {
proxy_set_header X-Forwarded-Proto https;
try_files $uri $uri/ /index.html;
}
# Serve static assets with proper cache headers
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
}
In Apache ssl.conf on the Dataverse app server I have added right at the end before </VirtualHost>
ProxyPass / ajp://localhost:8009/
I’ve also created a pull request into the app instructions on how to move it to production:
See section Deploying production with NGINX: https://github.com/gdcc/dataverse-globus
Let me know if you would like info on how my Dataverse JVM options are set up.
To view this discussion visit https://groups.google.com/d/msgid/dataverse-community/9574c92b-ca2b-4cde-b7b7-9ccf9cc76714n%40googlegroups.com.