Dataverse Docker v5.11.1 – mailrelay, https, lang_ua, branding, users
Установка
Скачиваем все необходимое:
# cd /home/user && git clone https://github.com/IQSS/dataverse-docker dataverse-docker-5.11.1
Скопируем docker-compose-ssl.yml из distros, так как при установке по README получал ошибку solr
# cp ./distros/docker-compose-ssl.yml ./
Редактируем переменные:
# cp .env_sample .env && vi .env #COMPOSE_FILE=./distros/docker-compose-ssl.yml COMPOSE_FILE=./docker-compose-ssl.yml #MAINLANG=ua # Domain configuration and init folder hostname=www.dataverse.tst-amo.net.ua traefikhost=www.dataverse.tst-amo.net.ua INIT_SCRIPTS_FOLDER=/opt/payara/init.d # traefik email settings useremail=dataverseimp@imp.kiev.ua # DOI parameters # https://guides.dataverse.org/en/latest/installation/config.html#doi-baseurlstring doi_authority=10.82100 doi_provider=DataCite doi_shoulder=DVUA doi_username=XXXXX doi_password=XXXXXXXXXX dataciterestapiurlstring=https\\:\/\/api.test.datacite.org baseurlstring=https\:\/\/mds.test.datacite.org # Mail relay # https://guides.dataverse.org/en/latest/developers/troubleshooting.html system_email=dataverseimp@imp.kiev.ua mailhost=mail.imp.kiev.ua mailuser=dataverseimp no_reply_email=dataverseimp@imp.kiev.ua smtp_password=XXXXXXXXXX smtp_port=587 socket_port=587 starttls=true
Отредактировать 010-mailrelay-set.sh
# vi dataverse-5.11.1/dataverse-docker/init.d/010-mailrelay-set.sh
#!/bin/bash # Setup mail relay # https://guides.dataverse.org/en/latest/developers/troubleshooting.html if [ "${system_email}" ]; then curl -X PUT -d ${system_email} http://localhost:8080/api/admin/settings/:SystemEmail asadmin --user=${ADMIN_USER} --passwordfile=${PASSWORD_FILE} delete-javamail-resource mail/notifyMailSession asadmin --user=${ADMIN_USER} --passwordfile=${PASSWORD_FILE} create-javamail-resource --mailhost ${mailhost} --mailuser ${mailuser} --fromaddress ${no_reply_email} --property mail.smtp.auth=true:mail.smtp.password=${smtp_password}:mail.smtp.port=${smtp_port}:mail.smtp.socketFactory.port=${socket_port}:mail.smtp.socketFactory.fallback=false:mail.smtp.starttls.enable=true mail/notifyMailSession fi
Отредактировать 01-persistent-id.sh
# vi dataverse-5.11.1/dataverse-docker/init.d/01-persistent-id.sh
#!/bin/bash echo "Setting up the settings" >> /tmp/status.log echo "- Allow internal signup" >> /tmp/status.log SERVER=http://${DATAVERSE_URL}/api echo $SERVER curl -X PUT -d yes "$SERVER/admin/settings/:AllowSignUp" curl -X PUT -d /dataverseuser.xhtml?editMode=CREATE "$SERVER/admin/settings/:SignUpUrl" curl -X PUT -d CV "$SERVER/admin/settings/:CV" curl -X PUT -d burrito $SERVER/admin/settings/BuiltinUsers.KEY curl -X PUT -d localhost-only $SERVER/admin/settings/:BlockedApiPolicy curl -X PUT -d 'native/http' $SERVER/admin/settings/:UploadMethods curl -X PUT -d solr:8983 "$SERVER/admin/settings/:SolrHostColonPort" curl -X PUT -d 10.82100 "$SERVER/admin/settings/:Authority" curl -X PUT -d doi "$SERVER/admin/settings/:Protocol" curl -X PUT -d "</p><p>Supported by the National Academy of Sciences of Ukraine</p>" http://localhost:8080/api/admin/settings/:FooterCopyright echo # Demo server with FAKE DOIs if doi_authority is empty #if [ -z "${doi_authority}" ]; then # curl -X PUT -d doi "$SERVER/admin/settings/:Protocol" # curl -X PUT -d 10.5072 "$SERVER/admin/settings/:Authority" # curl -X PUT -d "FK2/" "$SERVER/admin/settings/:Shoulder" # curl -X PUT -d FAKE "$SERVER/admin/settings/:DoiProvider" #fi
Отредактировать 03-doi-set.sh
# vi dataverse-5.11.1/dataverse-docker/init.d/03-doi-set.sh
#!/bin/bash
# Setup DOI parameters
# https://guides.dataverse.org/en/latest/installation/config.html#doi-baseurlstring
if [ "${doi_authority}" ]; then
curl -X PUT -d ${doi_authority} http://localhost:8080/api/admin/settings/:Authority
curl -X PUT -d ${doi_provider} http://localhost:8080/api/admin/settings/:DoiProvider
curl -X PUT -d "DVUA/" http://localhost:8080/api/admin/settings/:Shoulder
asadmin --user=${ADMIN_USER} --passwordfile=${PASSWORD_FILE} create-jvm-options "-Ddoi.username\=${doi_username}"
asadmin --user=${ADMIN_USER} --passwordfile=${PASSWORD_FILE} create-jvm-options "-Ddoi.password\=${doi_password}"
asadmin --user=${ADMIN_USER} --passwordfile=${PASSWORD_FILE} create-jvm-options "-Ddoi.dataciterestapiurlstring\=${dataciterestapiurlstring}"
asadmin --user=${ADMIN_USER} --passwordfile=${PASSWORD_FILE} create-jvm-options "-Ddoi.baseurlstring\=${baseurlstring}"
#if [ "${doi_shoulder}" ]; then
# curl -X PUT -d "${doi_shoulder}/" "$SERVER/admin/settings/:Shoulder"
#fi
fi
Также пароль от DataCite нужно добавить в:
dataverse-docker/secrets/doi/password dataverse-docker/secrets/doi_asadmin
Для решения проблемы загрузки логотипов, пишем скрипты, и размещаем их в /init.d/
# cat /home/user/dataverse-docker-5.11.1/init.d/1003-logos.sh #!/bin/bash YES | cp -rf /opt/payara/docroot /opt/
# cat /home/user/dataverse-docker-5.11.1/init.d/1005-apt_inst_cron.sh #!/bin/bash apt install cron service cron start /bin/chmod +x /opt/payara/init.d/1003-logos.sh /bin/chmod +x /opt/payara/init.d/1006-crontab.sh
# cat /home/user/dataverse-docker-5.11.1/init.d/1006-crontab.sh #!/bin/bash crontab -l ; echo "*/1 * * * * /opt/payara/init.d/1003-logos.sh"| crontab -
Пишем скрипт или вводим поочередно команды:
# export traefikhost=www.tst-amo.net.ua # docker network create traefik # export useremail=dataverseteam@imp.kiev.ua # docker-compose up
По умолчанию user/password: dataverseAdmin/admin.
Добавляем Украинскую локализацию
Тестовый режим.
# vi /home/user/dataverse-docker-5.11.1/docroot/01-lang_ua.sh #!/bin/bash apt-get update apt-get install zip wget https://github.com/GlobalDataverseCommunityConsortium/dataverse-language-packs/archive/refs/heads/develop.zip -O /tmp/languages.zip cd /tmp unzip -d dataverse-language-packs languages.zip mkdir /tmp/languages for locale in dataverse-language-packs/*; do for distrib in $locale; do for lang in $distrib/*; do cp "$lang"/Bu*.properties /tmp/languages done done done cd /tmp/languages #rm ./Bundle_ua.properties rm ./Bundle_hu.properties cp ./Bundle_ua.properties /tmp/ #cp ./Bundle_hu.properties /tmp/ /opt/payara/triggers/lang-properties-convert.py /tmp/Bundle_ua.properties > ./Bundle_ua.properties #/opt/payara/triggers/lang-properties-convert.py /tmp/Bundle_hu.properties > ./Bundle_hu.properties zip languages.zip *.properties mkdir /opt/payara/langproperties curl http://localhost:8080/api/admin/datasetfield/loadpropertyfiles -X POST --upload-file /tmp/languages/languages.zip -H "Content-Type: application/zip" sleep 1 # Enable language and cache settings curl http://localhost:8080/api/admin/settings/:Languages -X PUT -d '[{"locale":"en","title":"English"},{"locale":"ua","title":"Українська"}]' asadmin --user=${ADMIN_USER} --passwordfile=${PASSWORD_FILE} create-jvm-options '-Ddataverse.lang.directory=/opt/payara/langproperties'
Пользователи
Список пользователей можно посмотреть через Dashboard (появился в версии 5.11), а также можно вывести через API
curl -H "X-Dataverse-key: $API_TOKEN" http://localhost:8080/api/admin/authenticatedUsers
или, если пользователей много
curl -H "X-Dataverse-key: $API_TOKEN" http://localhost:8080/api/admin/list-users
где $API_TOKEN – токен Администратора.