Skip to content

Commit 21e4fcb

Browse files
authored
v2.1.1 dev to master
v2.1.1 dev to master
2 parents 22dbf26 + 62cbdc1 commit 21e4fcb

File tree

269 files changed

+13398
-6396
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

269 files changed

+13398
-6396
lines changed

.dockerignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@ server/index
66
server/keypair
77
server/sqlite
88
.git
9-
node_modules
9+
node_modules
10+
server/node_modules
11+

.env

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@
33
DATABUS_RESOURCE_BASE_URL=http://localhost:3000
44
# do not use qoutation marks for the value here and no trailing space
55
DATABUS_NAME=My Local Databus
6+
DATABUS_ABSTRACT=A local instance for development
67
DATABUS_ORG_ICON=
78
DATABUS_BANNER_COLOR= # Default is #81b8b2
89
DATABUS_TITLE_COLOR= # Default is white
910
# OIDC SETTINGS - Only use these values for testing and enter your own OIDC provider values
1011
DATABUS_OIDC_ISSUER_BASE_URL=https://kilt.eu.auth0.com
1112
DATABUS_OIDC_CLIENT_ID=K5PCEOr7OJGBGU9xN7SvBrX1RWDs4S4n
1213
DATABUS_OIDC_SECRET=LiL_X1tzwRmReU3RO7kBlBdDopmVEGf4gj5Ve8No16kifyi3weXK7u6IS1Ttpl_q
13-
14-
1514
DATABUS_PRIVATE_MODE=false
1615

1716
####### DATABASE SETTINGS #######

.vscode/launch.json

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"type": "node",
6+
"request": "launch",
7+
"name": "Start Databus With AUTH0",
8+
"program": "${workspaceFolder}/server/www",
9+
"cwd": "${workspaceFolder}/server",
10+
"runtimeArgs": [
11+
"--trace-warnings"
12+
],
13+
"env": {
14+
"DATABUS_RESOURCE_BASE_URL": "http://localhost:3000",
15+
"DATABUS_NAME": "Local Databus",
16+
"DATABUS_ABSTRACT": "Go ham",
17+
"DATABUS_ORG_ICON": "https://www.dbpedia.org/wp-content/uploads/2020/09/dbpedia-org-logo.png",
18+
"DATABUS_BANNER_COLOR": "\\#5b798d",
19+
"DATABUS_DATABASE_URL": "http://localhost:3002",
20+
"DATABUS_OIDC_ISSUER_BASE_URL": "https://kilt.eu.auth0.com",
21+
"DATABUS_OIDC_CLIENT_ID": "e9eOLS9IkGvuyBl7cBorWUQTNgbqejhc",
22+
"DATABUS_OIDC_REQUIRED_ROLE": "",
23+
"DATABUS_OIDC_SECRET": "0RVo9jMnbhPnkR6Ttz0aXQRTcRuSz5DpqyUEjbbcbgRuGA4rbwCjnHM2cOlTrv9q",
24+
"LOOKUP_BASE_URL": "http://localhost:3004",
25+
"DATABUS_OIDC_USER_ID_PROPERTY": "sub",
26+
"MAX_WORKERS": "1",
27+
"METRICS_PORT": "3001"
28+
}
29+
},
30+
{
31+
"type": "node",
32+
"request": "launch",
33+
"name": "Start Databus With DBpedia Community Account",
34+
"program": "${workspaceFolder}/server/www",
35+
"cwd": "${workspaceFolder}/server",
36+
"runtimeArgs": [
37+
"--trace-warnings"
38+
],
39+
"env": {
40+
"DATABUS_RESOURCE_BASE_URL": "http://localhost:3000",
41+
"DATABUS_NAME": "Local Databus",
42+
"DATABUS_ABSTRACT": "Go ham",
43+
"DATABUS_ORG_ICON": "https://www.dbpedia.org/wp-content/uploads/2020/09/dbpedia-org-logo.png",
44+
"DATABUS_BANNER_COLOR": "\\#5b798d",
45+
"DATABUS_DATABASE_URL": "http://localhost:3002",
46+
"DATABUS_OIDC_ISSUER_BASE_URL": "https://auth.dbpedia.org/realms/dbpedia",
47+
"DATABUS_OIDC_CLIENT_ID": "databus-dev",
48+
"DATABUS_OIDC_SECRET": "O55igP05y7iMlZdhweAEUjjhBIkiu0Mq",
49+
"DATABUS_OIDC_USER_ID_PROPERTY": "sub",
50+
"DATABUS_OIDC_REQUIRED_ROLE": "",
51+
"LOOKUP_BASE_URL": "http://localhost:3004",
52+
"MAX_WORKERS": "1",
53+
"METRICS_PORT": "3001"
54+
}
55+
},
56+
{
57+
"type": "node",
58+
"request": "launch",
59+
"name": "Run Tests",
60+
"runtimeExecutable": "npm",
61+
"runtimeArgs": [
62+
"test"
63+
],
64+
"console": "integratedTerminal",
65+
"cwd": "${workspaceFolder}/server",
66+
"env": {
67+
"DATABUS_RESOURCE_BASE_URL": "http://localhost:3000",
68+
"DATABUS_NAME": "Local Databus",
69+
"DATABUS_ABSTRACT": "Go ham",
70+
"DATABUS_ORG_ICON": "https://www.dbpedia.org/wp-content/uploads/2020/09/dbpedia-org-logo.png",
71+
"DATABUS_BANNER_COLOR": "#5b798d",
72+
"DATABUS_DATABASE_URL": "http://localhost:3002",
73+
"DATABUS_OIDC_ISSUER_BASE_URL": "https://auth.dbpedia.org/realms/dbpedia",
74+
"DATABUS_OIDC_CLIENT_ID": "databus-dev",
75+
"DATABUS_OIDC_SECRET": "O55igP05y7iMlZdhweAEUjjhBIkiu0Mq",
76+
"DATABUS_OIDC_REQUIRED_ROLE": "",
77+
"DATABUS_OIDC_USER_ID_PROPERTY": "sub",
78+
"LOOKUP_BASE_URL": "http://localhost:3004",
79+
"MAX_WORKERS": "1",
80+
"METRICS_PORT": "3001"
81+
}
82+
}
83+
]
84+
}

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"editor.detectIndentation": true
3+
}

Dockerfile

Lines changed: 46 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,50 @@
1+
<<<<<<< HEAD
2+
# Use a consistent Node.js version across build and release stages
3+
FROM node:23-slim AS builder
4+
=======
15
FROM docker.io/ubuntu:22.04
6+
>>>>>>> master
27

3-
# Install node.js, Caddy as proxy server, and java.
4-
RUN apt-get update && \
5-
apt-get -y install curl debian-keyring debian-archive-keyring apt-transport-https && \
6-
curl -sL https://deb.nodesource.com/setup_16.x | bash - && \
7-
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg && \
8-
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list && \
9-
apt-get update && \
10-
apt-get -y install \
11-
nodejs \
12-
caddy \
13-
ca-certificates-java \
14-
openjdk-17-jdk \
15-
openjdk-17-jre && \
16-
rm -rf /var/lib/apt/lists/* && \
17-
node -v && \
18-
npm -v && \
19-
java -version
20-
21-
# Disable the proxy server by default:
22-
ENV DATABUS_PROXY_SERVER_ENABLE=false
23-
24-
# When using the proxy, use ACME by default:
25-
ENV DATABUS_PROXY_SERVER_USE_ACME=true
26-
27-
# When not using ACME, what is the name of the own certificate file?
28-
ENV DATABUS_PROXY_SERVER_OWN_CERT="cert.pem"
29-
30-
# When not using ACME, what is the name of the own certificate's key file?
31-
ENV DATABUS_PROXY_SERVER_OWN_CERT_KEY="key.pem"
32-
33-
# What is the hostname of this machine, when using the proxy server?
34-
# It is necessary to know this, in order to set up ACME etc.
35-
# Note: the host name should be identical to DATABUS_RESOURCE_BASE_URL,
36-
# but without specifying a port, protocol i.e. HTTP(S) etc.
37-
ENV DATABUS_PROXY_SERVER_HOSTNAME="my-databus.org"
38-
39-
# Define the volume for the TLS certificate:
40-
VOLUME /tls
41-
42-
COPY ./server /databus/server
43-
COPY ./public /databus/public
44-
COPY ./search /databus/search
45-
COPY ./model/generated /databus/model/generated
46-
47-
COPY ./setup.sh /databus/setup.sh
48-
49-
# Set up the NPM projects:
50-
RUN cd /databus/server && \
51-
npm install && \
52-
cd ../public && \
53-
npm install
8+
# Install Python for node-gyp (required for sqlite3 build)
9+
RUN apt-get update && apt-get install -y python3 build-essential && \
10+
ln -s /usr/bin/python3 /usr/bin/python && \
11+
rm -rf /var/lib/apt/lists/*
12+
13+
WORKDIR /databus/server
14+
COPY server/package*.json .
15+
RUN --mount=type=bind,source=server/package.json,target=package.json \
16+
--mount=type=cache,target=/root/.npm \
17+
bash -c "if [ ! -f package-lock.json ]; then npm install --package-lock-only; fi && npm ci --omit=dev"
18+
19+
WORKDIR /databus/public
20+
COPY public/package*.json .
21+
RUN --mount=type=bind,source=public/package.json,target=package.json \
22+
--mount=type=cache,target=/root/.npm \
23+
bash -c "if [ ! -f package-lock.json ]; then npm install --package-lock-only; fi && npm ci --omit=dev"
24+
25+
WORKDIR /
26+
27+
# Copy source code
28+
COPY server ./databus/server
29+
COPY public ./databus/public
30+
COPY search ./databus/search
31+
32+
# Rebuild sqlite3 in case it's a native module
33+
# RUN cd databus/server && npm rebuild sqlite3
34+
35+
FROM node:23-slim AS runtime
5436

5537
WORKDIR /databus
56-
ENTRYPOINT [ "/bin/bash", "./setup.sh" ]
38+
39+
# Install only necessary system packages
40+
RUN apt-get update && \
41+
apt-get install -y \
42+
curl \
43+
ca-certificates && \
44+
rm -rf /var/lib/apt/lists/*
45+
46+
# Copy app from build stage
47+
COPY --from=builder /databus .
48+
49+
# Entrypoint
50+
ENTRYPOINT [ "/bin/bash", "./server/setup.sh" ]

backup.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
3+
# VARIABLES
4+
5+
# Define a prefix for the backup filename
6+
prefix="backup"
7+
8+
# Get the current date in YYYY-MM-DD format
9+
date=$(date +%F)
10+
11+
# Compose the full filename with prefix and date
12+
filename="${prefix}_${date}.tar.gz"
13+
14+
# Specify the local folder to compress
15+
localFolder="/devenv/data"
16+
17+
# Target folder on the remote server to copy the file into
18+
targetFolder="/path/to/remote/folder"
19+
20+
# Shut down the databus, adjust for stack
21+
docker compose stop
22+
23+
# Create a tar.gz archive of the local folder with the composed filename
24+
tar -czf "$filename" "$localFolder"
25+
26+
# Securely copy the archive to the remote server's target folder
27+
scp "$filename" "$targetFolder"
28+
29+
# Remove the local tar.gz archive to clean up
30+
rm "$filename"
31+
32+
# Restart the databus, adjust for stack
33+
docker compose up -d

deployment/.env

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
####### DATABUS SETTINGS #######
2+
DATA_PATH="../../databus-data"
3+
# RESOURCE BASE URL - This should match the DNS entry pointing to your server
4+
DATABUS_RESOURCE_BASE_URL=http://localhost:3000
5+
# do not use qoutation marks for the value here and no trailing space
6+
DATABUS_NAME=My Local Databus
7+
DATABUS_ABSTRACT=A local instance for development
8+
DATABUS_ORG_ICON=
9+
DATABUS_BANNER_COLOR= # Default is #81b8b2
10+
DATABUS_TITLE_COLOR= # Default is white
11+
# OIDC SETTINGS - Only use these values for testing and enter your own OIDC provider values
12+
DATABUS_OIDC_ISSUER_BASE_URL=https://kilt.eu.auth0.com
13+
DATABUS_OIDC_CLIENT_ID=K5PCEOr7OJGBGU9xN7SvBrX1RWDs4S4n
14+
DATABUS_OIDC_SECRET=LiL_X1tzwRmReU3RO7kBlBdDopmVEGf4gj5Ve8No16kifyi3weXK7u6IS1Ttpl_q
15+
DATABUS_PRIVATE_MODE=false
16+
17+
####### DATABASE SETTINGS #######
18+
VIRTUOSO_USER=dba
19+
VIRTUOSO_PASSWORD=onlyweknow
20+

deployment/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
2+
# Install Instructions
3+
4+
## Starting a local Databus
5+
6+
To start a local Databus instance
7+
8+
```
9+
docker compose up
10+
```

deployment/docker-compose.yml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: "databus-dockerized"
2+
services:
3+
databus:
4+
image: "docker.io/dbpedia/databus:dev"
5+
ports:
6+
- 3000:3000
7+
- 3001:3001
8+
environment:
9+
DATABUS_RESOURCE_BASE_URL: ${DATABUS_RESOURCE_BASE_URL}
10+
DATABUS_DATABASE_URL: "http://gstore:8080"
11+
LOOKUP_BASE_URL: "http://lookup:8082"
12+
METRICS_PORT: "3001"
13+
DATABUS_OIDC_ISSUER_BASE_URL: ${DATABUS_OIDC_ISSUER_BASE_URL}
14+
DATABUS_NAME: ${DATABUS_NAME}
15+
DATABUS_ABSTRACT: ${DATABUS_ABSTRACT}
16+
DATABUS_ORG_ICON: ${DATABUS_ORG_ICON}
17+
DATABUS_BANNER_COLOR: ${DATABUS_BANNER_COLOR}
18+
DATABUS_OIDC_CLIENT_ID: ${DATABUS_OIDC_CLIENT_ID}
19+
DATABUS_OIDC_SECRET: ${DATABUS_OIDC_SECRET}
20+
DATABUS_PRIVATE_MODE: ${DATABUS_PRIVATE_MODE} # Private mode will only show metadata for logged-in users
21+
volumes:
22+
- ${DATA_PATH}/data/dav/:/databus/server/dav/
23+
- ${DATA_PATH}/data/sqlite/:/databus/server/sqlite
24+
- ${DATA_PATH}/data/keypair/:/databus/server/keypair
25+
gstore:
26+
image: "docker.io/dbpedia/gstore"
27+
environment:
28+
STORAGE_USER: ${VIRTUOSO_USER}
29+
STORAGE_PASS: ${VIRTUOSO_PASSWORD}
30+
STORAGE_SPARQL_ENDPOINT_URI: http://virtuoso:8890/sparql
31+
DEFAULT_JSONLD_LOCALHOST_CONTEXT: http://localhost:3000/res/context.jsonld
32+
DEFAULT_JSONLD_LOCALHOST_CONTEXT_LOCATION: http://databus:3000/res/context.jsonld
33+
ports:
34+
- 3002:8080
35+
volumes:
36+
- ${DATA_PATH}/data/gstore/repo:/gstore/git
37+
- ${DATA_PATH}/data/gstore/logs:/gstore/logs
38+
virtuoso:
39+
image: "docker.io/openlink/virtuoso-opensource-7"
40+
environment:
41+
DBA_PASSWORD: ${VIRTUOSO_PASSWORD}
42+
SPARQL_UPDATE: "true"
43+
DEFAULT_GRAPH: ${DATABUS_RESOURCE_BASE_URL}
44+
ports:
45+
- 3003:8890
46+
volumes:
47+
- ${DATA_PATH}/data/virtuoso:/database
48+
entrypoint: /bin/bash -c "
49+
echo 'grant SPARQL_LOAD_SERVICE_DATA to \"SPARQL\";' > /opt/virtuoso-opensource/initdb.d/ini.sql &&
50+
echo 'grant SPARQL_SPONGE to \"SPARQL\";' >> /opt/virtuoso-opensource/initdb.d/ini.sql &&
51+
echo 'grant SPARQL_SELECT_FED to \"SPARQL\";' > /opt/virtuoso-opensource/initdb.d/ini.sql &&
52+
/virtuoso-entrypoint.sh"
53+
lookup:
54+
image: "docker.io/dbpedia/lookup:dev"
55+
ports:
56+
- 3004:8082
57+
volumes:
58+
- ${DATA_PATH}/data/index/:/index
59+
- ../search/servlet-config.yml:/resources/config.yml

devenv/Makefile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
DATABUS_RESOURCE_BASE_URL=http://localhost:3000
22
DATABUS_DATABASE_URL=http://localhost:3002
33
DATABUS_NAME="Just Another Databus"
4+
DATABUS_ABSTRACT="Another Node in the Databus Network"
45
DATABUS_ORG_ICON="https://www.dbpedia.org/wp-content/uploads/2020/09/dbpedia-org-logo.png"
56
DATABUS_BANNER_COLOR="\#5b798d"
67

@@ -9,7 +10,7 @@ webpack:
910

1011
env-clean:
1112
sudo rm -r data/; \
12-
sudo rm -r ../server/users; \
13+
sudo rm -r ../server/users
1314
docker rm -f devenv_lookup; \
1415
docker rm -f devenv_virtuoso; \
1516
docker rm -f devenv_gstore;
@@ -42,7 +43,9 @@ srv-install:
4243
srv-start-auth0:
4344
DATABUS_RESOURCE_BASE_URL=${DATABUS_RESOURCE_BASE_URL} \
4445
DATABUS_NAME=${DATABUS_NAME} \
46+
DATABUS_ABSTRACT=${DATABUS_ABSTRACT} \
4547
DATABUS_ORG_ICON=${DATABUS_ORG_ICON} \
48+
DATABUS_BANNER=${DATABUS_BANNER} \
4649
DATABUS_BANNER_COLOR=${DATABUS_BANNER_COLOR} \
4750
DATABUS_DATABASE_URL=${DATABUS_DATABASE_URL} \
4851
DATABUS_OIDC_ISSUER_BASE_URL=https://kilt.eu.auth0.com \
@@ -81,3 +84,6 @@ srv-test:
8184
DATABUS_OIDC_CLIENT_ID=e9eOLS9IkGvuyBl7cBorWUQTNgbqejhc \
8285
DATABUS_OIDC_SECRET=0RVo9jMnbhPnkR6Ttz0aXQRTcRuSz5DpqyUEjbbcbgRuGA4rbwCjnHM2cOlTrv9q \
8386
npm run test --prefix ./../server
87+
88+
dockerize:
89+
docker buildx build --push -t dbpedia/databus:dev -f ../Dockerfile ..

0 commit comments

Comments
 (0)