diff --git a/.env.template b/.env.template
index 4237b09f3..db43847b9 100644
--- a/.env.template
+++ b/.env.template
@@ -1,16 +1,17 @@
# use 'stable' for production deployment
-ARACHNE_IMAGE_VERSION=latest
-# remove when using external db
-COMPOSE_PROFILES=with-db
+ARACHNE_FRONTEND_IMAGE_VERSION=latest
+ARACHNE_BACKEND_IMAGE_VERSION=latest
-# may be set to external db server
-DB_SERVER=db
DB_ROOT_PASSWORD=
DB_PASSWORD=
-SERVER_ADDRESS=localhost:8080
+SMTP_USER_NAME=
+SMTP_USER_PASSWORD=
-ARCHAEOCLOUD_PASSWORD=
+SERVER_ADDRESS=
+HOST_NAME=
+
+ARCHAEOCLOUD_PATH=/mnt/cephfs/archaeocloud/
AIAX_VERSION=latest
-AIAX_DATA_DIR=./aiax-data
\ No newline at end of file
+AIAX_DATA_DIR=./aiax-data
diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml
index abc5b5148..7544325e4 100644
--- a/.github/workflows/backend.yml
+++ b/.github/workflows/backend.yml
@@ -8,6 +8,8 @@ on:
branches:
- main
- stable
+ - gwdg_deployment
+ - cologne_deployment
defaults:
run:
@@ -38,5 +40,5 @@ jobs:
with:
context: "backend"
push: true
- tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref == 'refs/heads/stable' && 'stable' || 'latest' }}
+ tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }}
labels: ${{ steps.meta.outputs.labels }}
diff --git a/.github/workflows/frontend-build.yml b/.github/workflows/frontend-build.yml
index 3229eda1f..de2deb409 100644
--- a/.github/workflows/frontend-build.yml
+++ b/.github/workflows/frontend-build.yml
@@ -48,6 +48,6 @@ jobs:
with:
context: "frontend"
push: true
- tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref == 'refs/heads/stable' && 'stable' || 'latest' }}
+ tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }}
labels: ${{ steps.meta.outputs.labels }}
build-args: BUILD_NO=${{ github.run_number }}
diff --git a/.gitignore b/.gitignore
index 96567e7d3..7d13ddd8c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
.env
letsencrypt/
-aiax-data/
\ No newline at end of file
+aiax-data/
+db_data/
diff --git a/backend/pom.xml b/backend/pom.xml
index 9c0979f49..79e391839 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -1,7 +1,7 @@
-
+
4.0.0
de.uni_koeln
arachne
@@ -18,11 +18,11 @@
1.7.21
- 5.1.40
-
- 5.1.17.Final
-
- 3.3.1
+ 5.1.40
+
+ 5.1.17.Final
+
+ 3.3.1
7.16.1
@@ -32,35 +32,35 @@
2.11.0
- 0.7.1
+ 0.7.1
- 20.0
-
+ 20.0
+
3.21.0-GA
- 1.4.7
+ 1.6.7
3.5
- 2.5
+ 2.5
4.5.2
- 2.17.0
+ 2.17.0
-
- 4.12
-
- 1.10.19
-
- 1.5.0
-
- 2.2.0
+
+ 4.12
+
+ 1.10.19
+
+ 1.5.0
+
+ 2.2.0
- 0.0.1-RC18
+ 0.0.1-RC18
1.11.2
2.0.8
-
+
1.11
2.22.1
2.10.4
@@ -101,15 +101,15 @@
- org.springframework.security
- spring-security-web
- ${org.springframework.security-version}
-
-
- org.springframework.security
- spring-security-config
- ${org.springframework.security-version}
-
+ org.springframework.security
+ spring-security-web
+ ${org.springframework.security-version}
+
+
+ org.springframework.security
+ spring-security-config
+ ${org.springframework.security-version}
+
- org.apache.logging.log4j
- log4j-core
- ${log4j-version}
-
+ org.apache.logging.log4j
+ log4j-core
+ ${log4j-version}
+
- org.apache.logging.log4j
- log4j-web
- ${log4j-version}
- runtime
-
+ org.apache.logging.log4j
+ log4j-web
+ ${log4j-version}
+ runtime
+
org.apache.logging.log4j
- log4j-slf4j-impl
+ log4j-slf4j-impl
${log4j-version}
@@ -239,32 +239,32 @@
- commons-dbcp
- commons-dbcp
- 1.4
- test
-
+ commons-dbcp
+ commons-dbcp
+ 1.4
+ test
+
-
- mysql
- mysql-connector-mxj
- 5.0.12
- test
-
+
+ mysql
+ mysql-connector-mxj
+ 5.0.12
+ test
+
-
-
- org.skyscreamer
- jsonassert
- ${jsonassert-version}
- test
+
+
+ org.skyscreamer
+ jsonassert
+ ${jsonassert-version}
+ test
com.vaadin.external.google
android-json
-
+
@@ -276,11 +276,11 @@
- com.jayway.jsonpath
- json-path-assert
- ${jsonpath-version}
- test
-
+ com.jayway.jsonpath
+ json-path-assert
+ ${jsonpath-version}
+ test
+
@@ -324,10 +324,10 @@
- com.fasterxml.jackson.core
- jackson-annotations
- ${jackson-version}
-
+ com.fasterxml.jackson.core
+ jackson-annotations
+ ${jackson-version}
+
org.json
@@ -335,13 +335,13 @@
20170516
-
-
- com.zaxxer
- HikariCP
- ${hikariCP-version}
- compile
-
+
+
+ com.zaxxer
+ HikariCP
+ ${hikariCP-version}
+ compile
+
@@ -357,29 +357,30 @@
${elasticsearch-version}
- org.elasticsearch.client
- elasticsearch-rest-client
+ org.elasticsearch.client
+ elasticsearch-rest-client
${elasticsearch-version}
- com.github.davidmoten
- geo
- ${geo-version}
-
+ com.github.davidmoten
+ geo
+ ${geo-version}
+
-
- com.google.guava
- guava
- ${guava-version}
-
+
+ com.google.guava
+ guava
+ ${guava-version}
+
-
- javax.mail
- mail
- ${javax.mail-version}
+
+
+ com.sun.mail
+ jakarta.mail
+ 1.6.7
@@ -388,11 +389,11 @@
${commons-lang3-version}
-
- commons-io
- commons-io
- ${commons-io-version}
-
+
+ commons-io
+ commons-io
+ ${commons-io-version}
+
@@ -402,18 +403,18 @@
-
- com.openhtmltopdf
- openhtmltopdf-core
- ${openhtml-version}
-
+
+ com.openhtmltopdf
+ openhtmltopdf-core
+ ${openhtml-version}
+
-
-
- com.openhtmltopdf
- openhtmltopdf-pdfbox
- ${openhtml-version}
-
+
+
+ com.openhtmltopdf
+ openhtmltopdf-pdfbox
+ ${openhtml-version}
+
org.apache.pdfbox
@@ -456,19 +457,19 @@
true
-
+
-
-
- central
- Central Repository
- https://repo.maven.apache.org/maven2
- default
-
+
+
+ central
+ Central Repository
+ https://repo.maven.apache.org/maven2
+ default
+
@@ -487,9 +488,9 @@
false -->
- jitpack.io
- https://jitpack.io
-
+ jitpack.io
+ https://jitpack.io
+
@@ -636,4 +637,4 @@
-
+
\ No newline at end of file
diff --git a/backend/src/main/java/de/uni_koeln/arachne/config/ExternalLinkResolvers.java b/backend/src/main/java/de/uni_koeln/arachne/config/ExternalLinkResolvers.java
index 1904bea0b..4b2ba6fc5 100644
--- a/backend/src/main/java/de/uni_koeln/arachne/config/ExternalLinkResolvers.java
+++ b/backend/src/main/java/de/uni_koeln/arachne/config/ExternalLinkResolvers.java
@@ -97,8 +97,8 @@ public SimpleExternalLinkResolver teiViewerBook() {
result.setLabel("TEI-Viewer");
final Map criteria = ImmutableMap.of("Dataset.TableName", "buch");
result.setCriteria(criteria);
- result.setLinkPattern("https://arachne.uni-koeln.de/Tei-Viewer/cgi-bin/teiviewer.php?manifest=%s");
- result.setValidationPattern("https://arachne.uni-koeln.de/TeiDocuments/%s/structure.xml");
+ result.setLinkPattern("https://objects.auxiliary.idai.world/Tei-Viewer/cgi-bin/teiviewer.php?manifest=%s");
+ result.setValidationPattern("https://objects.auxiliary.idai.world/TeiDocuments/%s/structure.xml");
result.setPatternFields(Arrays.asList("buch.Verzeichnis"));
return result;
}
@@ -116,7 +116,7 @@ public SimpleExternalLinkResolver dfgViewer() {
final Map criteria = ImmutableMap.of("Dataset.TableName", "buch");
result.setCriteria(criteria);
result.setLinkPattern("http://dfg-viewer.de/show/"
- + "?set[mets]=http%%3A%%2F%%2Farachne.uni-koeln.de%%2FMetsDocuments%%2F"
+ + "?set[mets]=http%%3A%%2F%%2Fobjects.auxiliary.idai.world%%2FMetsDocuments%%2F"
+ "oai_arachne.uni-koeln.de_buch-%s.xml");
result.setPatternFields(Arrays.asList("Dataset.internalId"));
return result;
diff --git a/backend/src/main/java/de/uni_koeln/arachne/context/BuchseiteocrtextContextualizer.java b/backend/src/main/java/de/uni_koeln/arachne/context/BuchseiteocrtextContextualizer.java
index e70676905..e654f6a64 100644
--- a/backend/src/main/java/de/uni_koeln/arachne/context/BuchseiteocrtextContextualizer.java
+++ b/backend/src/main/java/de/uni_koeln/arachne/context/BuchseiteocrtextContextualizer.java
@@ -40,7 +40,7 @@ public class BuchseiteocrtextContextualizer extends AbstractContextualizer {
private static final Logger LOGGER = LoggerFactory.getLogger(BuchseiteocrtextContextualizer.class);
- private final static String XELETOR_ADRESS = "http://arachne.uni-koeln.de:6688";
+ private final static String XELETOR_ADRESS = "http://objects.auxiliary.idai.world:6688";
private final static String CONTEXT_TYPE = "Buchseiteocrtext";
diff --git a/backend/src/main/java/de/uni_koeln/arachne/controller/UserManagementController.java b/backend/src/main/java/de/uni_koeln/arachne/controller/UserManagementController.java
index 8cc7d490b..76e3d069b 100644
--- a/backend/src/main/java/de/uni_koeln/arachne/controller/UserManagementController.java
+++ b/backend/src/main/java/de/uni_koeln/arachne/controller/UserManagementController.java
@@ -300,7 +300,7 @@ public Map register(@RequestBody Map formData, Htt
+ "E-Mail: " + user.getEmail() + newLine + newLine
+ "Wenn Sie in Arachne eingeloggt sind, können Sie folgenden Link benutzen um den Benutzer "
+ "freizuschalten:" + newLine
- + "https://oneeyedjacks04.dai-cloud.uni-koeln.de/activate_account/" + user.getId();
+ + "https://objects.legacy.idai.world/activate_account/" + user.getId();
if (!mailService.sendMail(adminEmail, "Anmeldung bei Arachne", messageBody)) {
LOGGER.error("Unable to send registration eMail to admin.");
diff --git a/backend/src/main/java/de/uni_koeln/arachne/service/MailService.java b/backend/src/main/java/de/uni_koeln/arachne/service/MailService.java
index 75005f5dc..5470d8781 100644
--- a/backend/src/main/java/de/uni_koeln/arachne/service/MailService.java
+++ b/backend/src/main/java/de/uni_koeln/arachne/service/MailService.java
@@ -1,5 +1,7 @@
package de.uni_koeln.arachne.service;
+import java.util.Properties;
+
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
@@ -37,7 +39,18 @@ public class MailService {
public MailService(final @Value("${mailSMTPServer}") String smtpServer
, final @Value("${mailSender}") String sender) {
+ String smtpUserName = System.getenv("SMTP_USER_NAME");
+ String smtpUserPassword = System.getenv("SMTP_USER_PASSWORD");
+
+ Properties props = new Properties();
+ props.put("mail.smtp.auth", true);
+ props.put("mail.smtp.ssl.enable", true);
+
+ mailSender.setJavaMailProperties(props);
mailSender.setHost(smtpServer);
+ mailSender.setUsername(smtpUserName);
+ mailSender.setPassword(smtpUserPassword);
+ mailSender.setPort(465);
this.sender = sender;
}
diff --git a/backend/src/main/resources/config/application.properties.dev b/backend/src/main/resources/config/application.properties.dev
index f400bcaa9..314209b0a 100644
--- a/backend/src/main/resources/config/application.properties.dev
+++ b/backend/src/main/resources/config/application.properties.dev
@@ -35,8 +35,8 @@ imageResolutionHIGH=0
imageCacheDir=/tmp/arachne4ImageCache/
# MailService
-mailSMTPServer=smtp.uni-koeln.de
-mailSender=arachne@uni-koeln.de
+mailSender=idai.objects@dainst.de
+mailSMTPServer=mail.dainst.org
# transl8
transl8Url=https://arachne.dainst.org/transl8/translation/json?application=arachne4_backend
@@ -64,8 +64,8 @@ contactEmail=idai.objects@dainst.de
testUserName=e2e_test_user
# specialnavigation stuff
-teiViewerLink=http://arachne.uni-koeln.de/Tei-Viewer/cgi-bin/teiviewer.php
-dfgViewerLink=http://dfg-viewer.de/v1/?set[mets]=http%3A%2F%2Farachne.uni-koeln.de%2FMetsDocuments%2Foai_arachne.uni-koeln.de_buch-
+teiViewerLink=http://objects.auxiliary.idai.world/Tei-Viewer/cgi-bin/teiviewer.php
+dfgViewerLink=http://dfg-viewer.de/v1/?set[mets]=http%3A%2F%2Fobjects.auxiliary.idai.world%2FMetsDocuments%2Foai_arachne.uni-koeln.de_buch-
modelViewerLink=/3d?id=
# book browser module
@@ -75,4 +75,4 @@ booksPath=/tmp
dataExportMaxThreads=4
dataExportMaxTaskLifeTime=30000
dataExportPath=/tmp
-dataExportMaxItemsPerExport=1000000
+dataExportMaxItemsPerExport=1000000
\ No newline at end of file
diff --git a/database_import.sh b/database_import.sh
index 43199038b..3631244a9 100755
--- a/database_import.sh
+++ b/database_import.sh
@@ -7,4 +7,4 @@
# Read .env file and use as environment variables
export $(cat .env | sed 's/#.*//g' | xargs)
-gunzip < $1 | docker exec -i arachne4-db-1 mysql -uroot -p${DB_ROOT_PASSWORD}
+gunzip < $1 | docker exec -i arachne4_db mariadb -uroot -p${DB_ROOT_PASSWORD}
diff --git a/docker-compose.yml b/docker-compose.yml
index eec2237b2..f9ba8506a 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,11 +1,10 @@
services:
frontend:
- build: ./frontend
- image: ghcr.io/dainst/arachne4-frontend:${ARACHNE_IMAGE_VERSION}
+ image: ghcr.io/dainst/arachne4-frontend:${ARACHNE_FRONTEND_IMAGE_VERSION}
volumes:
- - archaeocloud:/media/archaeocloud
- - /mnt/sitemap:/var/www/sitemap
+ - ${ARCHAEOCLOUD_PATH}:/media/archaeocloud
+ - /opt/arachne_sitemap:/var/www/sitemap
labels:
- traefik.enable=true
- traefik.http.routers.frontend.rule=Host(`${SERVER_ADDRESS}`)
@@ -18,16 +17,18 @@ services:
restart: always
backend:
- build: ./backend
- image: ghcr.io/dainst/arachne4-backend:${ARACHNE_IMAGE_VERSION}
+ image: ghcr.io/dainst/arachne4-backend:${ARACHNE_BACKEND_IMAGE_VERSION}
environment:
- - "DB_SERVER=${DB_SERVER}"
+ - "DB_SERVER=${SERVER_ADDRESS}:3306"
- "DB_PASSWORD=${DB_PASSWORD}"
- "SERVER_ADDRESS=${SERVER_ADDRESS}"
+ - "SMTP_USER_NAME=${SMTP_USER_NAME}"
+ - "SMTP_USER_PASSWORD=${SMTP_USER_PASSWORD}"
- "IIPIMAGE_SERVER=frontend"
- "ELASTICSEARCH_SERVER=elasticsearch"
volumes:
- - archaeocloud:/media/archaeocloud
+ - ${ARCHAEOCLOUD_PATH}:/media/archaeocloud
+ hostname: "${HOST_NAME}"
labels:
- traefik.enable=true
- traefik.http.routers.backend.rule=Host(`${SERVER_ADDRESS}`) && PathPrefix(`/data`)
@@ -42,6 +43,7 @@ services:
db:
image: mariadb:latest
+ container_name: arachne4_db
environment:
- "MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}"
- "MYSQL_DATABASE=arachne"
@@ -52,14 +54,12 @@ services:
- ./db_data:/var/lib/mysql
ports:
- 3306:3306
- profiles:
- - with-db
restart: always
phpmyadmin:
image: phpmyadmin:apache
environment:
- - "PMA_HOST=${DB_SERVER}"
+ - "PMA_HOST=arachne4_db"
- "PMA_ABSOLUTE_URI=https://${SERVER_ADDRESS}/phpmyadmin/"
- "MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}"
labels:
@@ -68,7 +68,7 @@ services:
- traefik.http.routers.phpmyadmin.entrypoints=websecure
- traefik.http.routers.phpmyadmin.tls.certresolver=myresolver
- traefik.http.middlewares.phpmyadmin-strip.stripprefix.prefixes=/phpmyadmin
- - traefik.http.middlewares.phpmyadmin-ipwhitelist.ipwhitelist.sourcerange=134.95.0.0/16,172.28.0.0/20
+ - traefik.http.middlewares.phpmyadmin-ipwhitelist.ipwhitelist.sourcerange=134.95.0.0/16,172.28.0.0/20,195.37.61.194,195.37.61.201,172.18.0.0/16
- traefik.http.routers.phpmyadmin.middlewares=phpmyadmin-strip,phpmyadmin-ipwhitelist
- traefik.port=80
restart: always
@@ -78,6 +78,7 @@ services:
environment:
- discovery.type=single-node
- cluster.name=arachne4
+ - "ES_JAVA_OPTS=-Xms16g -Xmx16g"
volumes:
- elasticsearch_data:/usr/share/elasticsearch/data
restart: always
@@ -85,7 +86,7 @@ services:
iipimage:
build: ./iipimage
volumes:
- - archaeocloud:/media/archaeocloud
+ - ${ARCHAEOCLOUD_PATH}:/media/archaeocloud
restart: always
aiax:
@@ -95,7 +96,7 @@ services:
environment:
- ARACHNE4_BASE_URL=https://${SERVER_ADDRESS}
- BASE_URL=https://${SERVER_ADDRESS}
- - DB_SERVER=${DB_SERVER}
+ - DB_SERVER=arachne4_db
- DB_PASSWORD
labels:
- traefik.enable=true
@@ -138,8 +139,3 @@ services:
volumes:
elasticsearch_data:
- archaeocloud:
- driver_opts:
- type: cifs
- o: "user=alc01,file_mode=0777,dir_mode=0777,password=${ARCHAEOCLOUD_PASSWORD}"
- device: "//172.17.113.250/archaeocloud"
diff --git a/frontend/app/entity/entity.html b/frontend/app/entity/entity.html
index cd0a39ae9..1103cd1da 100644
--- a/frontend/app/entity/entity.html
+++ b/frontend/app/entity/entity.html
@@ -8,7 +8,7 @@
@@ -157,9 +159,7 @@
({{contextSize}})
-
@@ -170,4 +170,4 @@
-
+
\ No newline at end of file