@odissei-data

ODISSEI

ODISSEI (Open Data Infrastructure for Social Science and Economic Innovations) is the national research infrastructure for social sciences in the Netherlands.

ODISSEI - Open Data Infrastructure for Social Science and Economic Innovations

ODISSEI banner

ODISSEI Portal

https://portal.odissei.nl/

ODISSEI Portal User Guide

https://doi.org/10.5281/zenodo.15236529.

ODISSEI Portal Infrastructure

Technical Wiki https://github.com/odissei-data/.github/wiki

1. Application Stacks & Environments

List of repositories for each application stack.

Application StackRepository URLLatestDeployment Method
ODISSEI Dataverse stackhttps://github.com/odissei-data/odissei-dataverse-stackmasterDeployed manually
SKOSMOS stackhttps://github.com/odissei-data/sd-skosmosmainDeployed manually
Workflow orchestratorhttps://github.com/odissei-data/ingestion-workflow-orchestrator3.2.0Automatic deployment on production via CI/CD
Microserviceshttps://github.com/odissei-data/metadata-enhancermainAutomatic via CI/CD for all microservices

ODISSEI Portal

The ODISSEI Portal runs on three environments: Production, Staging, and Devstack.

To run the Portal, two dockerized application stacks, are required:

  • Dataverse portal stack: uses a SOLR, Postgres, and Payara containers.

  • Skosmos stack: uses a Skosmos, Fuseki, and Varnish container.

  • Traefik container: used as reversed proxy. It uses Letsencrypt for automatic SSL certificate renewal. It also shows an overview of the Prefect server and labs-demo server that run the Workflow Orchestrator and microservices used by the Orchestrator respectively.

Workflow Orchestrator

The Workflow Orchestrator is used to automatically ingest metadata from the different data providers**,** present in the ODISSEI Portal. The ingestion-workflow-orchestrator application stack is behind the Workflow Orchestrator, using Prefect and Postgres DB to coordinate the actions of metadata ingestion and enrichment microservices for Orchestrator

2. Server Inventory

List of servers and their roles:

Server NameEnvironmentOperating SystemLocationSpecifications
odissei-01ProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 124GB SSD
odissei-02StagingUbuntu 22.04Azure4 vCPUs, 16GB RAM, 60GB SSD
devstackDevelopmentUbuntu 24.04SURF R-cloud8 vCPUs, 32GB RAM, 250GB SSD
prefectProductionUbuntu 24.04Azure2 vCPUs, 8GB RAM, 124GB SSD
labs-demoProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 30GB SSD

3. Applications and Services

Production Server:

This server is used to host the production ODISSEI Portal (https://portal.odissei.nl) and Skosmos vocabulary browser (https://skosmos.odissei.nl). It is setup with a traefik reverse proxy. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Staging Server:

This server is used to host the staging ODISSEI Portal (https://portal.staging.odissei.nl) and Skosmos vocabulary browser (https://skosmos.staging.odissei.nl). This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Development Server: devstack

This server is used by ODISSEI developers for testing and experimentation. It host the staging ODISSEI Portal (https://portal.devstack.odissei.nl) and Skosmos vocabulary browser (https://skosmos.devstack.odissei.nl). To access this server, a user needs to be added to the ODISSEI collaboration on SURF Research Cloud as a developer. They can then add their public ssh key to their profile and will gain automatic access to the server using ssh with their username.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stack9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stack16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
Skosmossd-skosmosLatestodissei-dataverse-stackVocabulary browser
Fusekisd-skosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish Cachesd-skosmosLatestodissei-dataverse-stackCaching layer
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Prefect Server: prefect

This server hosts the Prefect workflow orchestrator. The orchestrator is used to automatically ingest dataset metadata. For each data provider there is an associated Prefect workflow, dedicated to ingesting their datasets' metadata onto the ODISSEI Portal (Dataverse instance). Common metadata tasks - harvesting, mapping, and enrichment - have been encapsulated in microservices that are run separately from the orchestrator. The orchestrator schedules its workflows to run daily to keep the metadata in the portal up to date. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

The metadata in the production ODISSEI Portal is kept up-to-date by the workflow orchestrator running on https://prefect.dansdemo.nl. The metadata in the staging and devstack ODISSEI Portal is only updated manually, which can be done via the orchestrator on https://prefect.dansdemo.nl or a local orchestrator setup.

ServiceStackVersionRepositoryNotes
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Microservices Server: labs-demo

This server hosts the metadata microservices. These microservices are all containerized and deployed via a CI/CD setup, which tests the code, creates and pushes a new docker image when a GitHub tag is created. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceVersionAPI documentationGit Repo
Metadata FetcherMetadata Fetcherdataverse-metadata-fetcher
Dataverse MapperDataverse Mapperdataverse-mapper
Dans Transformer ServiceTransformer Servicedans-transformer-service
Metadata RefinerMetadata Refinermetadata-refiner
Metadata EnhancerMetadata Enhancermetadata-enhancer
Email SanitizerEmail Sanitizeremail-sanitize-microservice
Version TrackerVersion Trackerversion-tracker
DOI MinterDOI Mintersubmitmd2dc-service
OAI-PMH HarvesterODISSEI Harvesterodissei-harvester
OAI Enrichment ServiceOAI Enricher Serviceoai-enricher-service

4. Networking & Security

  • Networking:

    • Traefik container with automatic SSL certificate renewal using letsencrypt.

5. Monitoring & Logging

  • Monitoring: ODISSEI production portal website is monitored in zabbix.

  • Logging: No centralized logging. docker logs {container name}

6. Backup

  • Database Backups: Cronjob that makes backups every day. Kept on server itself.

Pinned Loading

  1. odissei-dataverse-stackodissei-dataverse-stackPublic

    This repository is used for setting up the front-end of portal.odissei.nl and skosmos.odissei.nl

    Shell 1 3

  2. ODISSEI-code-libraryODISSEI-code-libraryPublic

    Repository of the ODISSEI code library

    HTML 8 4

  3. ingestion-workflow-orchestratoringestion-workflow-orchestratorPublic

    Orchestrator for all ODISSEI-related ingestion workflows.

    Python 2 3

  4. vocabulariesvocabulariesPublic

    Vocabularies used in the ODISSEI project

    Shell

  5. odissei-kgodissei-kgPublic

    This repository contains the software we used to extract, transform and load (ETL) data into the platform kg.odissei.nl. If you are mainly interested in the resulting data, feel free to ignore this…

    TypeScript 1

Repositories

Showing 10 of 59 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
@odissei-data

ODISSEI

ODISSEI (Open Data Infrastructure for Social Science and Economic Innovations) is the national research infrastructure for social sciences in the Netherlands.

ODISSEI - Open Data Infrastructure for Social Science and Economic Innovations

ODISSEI banner

ODISSEI Portal

https://portal.odissei.nl/

ODISSEI Portal User Guide

https://doi.org/10.5281/zenodo.15236529.

ODISSEI Portal Infrastructure

Technical Wiki https://github.com/odissei-data/.github/wiki

1. Application Stacks & Environments

List of repositories for each application stack.

Application StackRepository URLLatestDeployment Method
ODISSEI Dataverse stackhttps://github.com/odissei-data/odissei-dataverse-stackmasterDeployed manually
SKOSMOS stackhttps://github.com/odissei-data/sd-skosmosmainDeployed manually
Workflow orchestratorhttps://github.com/odissei-data/ingestion-workflow-orchestrator3.2.0Automatic deployment on production via CI/CD
Microserviceshttps://github.com/odissei-data/metadata-enhancermainAutomatic via CI/CD for all microservices

ODISSEI Portal

The ODISSEI Portal runs on three environments: Production, Staging, and Devstack.

To run the Portal, two dockerized application stacks, are required:

  • Dataverse portal stack: uses a SOLR, Postgres, and Payara containers.

  • Skosmos stack: uses a Skosmos, Fuseki, and Varnish container.

  • Traefik container: used as reversed proxy. It uses Letsencrypt for automatic SSL certificate renewal. It also shows an overview of the Prefect server and labs-demo server that run the Workflow Orchestrator and microservices used by the Orchestrator respectively.

Workflow Orchestrator

The Workflow Orchestrator is used to automatically ingest metadata from the different data providers**,** present in the ODISSEI Portal. The ingestion-workflow-orchestrator application stack is behind the Workflow Orchestrator, using Prefect and Postgres DB to coordinate the actions of metadata ingestion and enrichment microservices for Orchestrator

2. Server Inventory

List of servers and their roles:

Server NameEnvironmentOperating SystemLocationSpecifications
odissei-01ProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 124GB SSD
odissei-02StagingUbuntu 22.04Azure4 vCPUs, 16GB RAM, 60GB SSD
devstackDevelopmentUbuntu 24.04SURF R-cloud8 vCPUs, 32GB RAM, 250GB SSD
prefectProductionUbuntu 24.04Azure2 vCPUs, 8GB RAM, 124GB SSD
labs-demoProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 30GB SSD

3. Applications and Services

Production Server:

This server is used to host the production ODISSEI Portal (https://portal.odissei.nl) and Skosmos vocabulary browser (https://skosmos.odissei.nl). It is setup with a traefik reverse proxy. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Staging Server:

This server is used to host the staging ODISSEI Portal (https://portal.staging.odissei.nl) and Skosmos vocabulary browser (https://skosmos.staging.odissei.nl). This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Development Server: devstack

This server is used by ODISSEI developers for testing and experimentation. It host the staging ODISSEI Portal (https://portal.devstack.odissei.nl) and Skosmos vocabulary browser (https://skosmos.devstack.odissei.nl). To access this server, a user needs to be added to the ODISSEI collaboration on SURF Research Cloud as a developer. They can then add their public ssh key to their profile and will gain automatic access to the server using ssh with their username.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stack9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stack16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
Skosmossd-skosmosLatestodissei-dataverse-stackVocabulary browser
Fusekisd-skosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish Cachesd-skosmosLatestodissei-dataverse-stackCaching layer
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Prefect Server: prefect

This server hosts the Prefect workflow orchestrator. The orchestrator is used to automatically ingest dataset metadata. For each data provider there is an associated Prefect workflow, dedicated to ingesting their datasets' metadata onto the ODISSEI Portal (Dataverse instance). Common metadata tasks - harvesting, mapping, and enrichment - have been encapsulated in microservices that are run separately from the orchestrator. The orchestrator schedules its workflows to run daily to keep the metadata in the portal up to date. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

The metadata in the production ODISSEI Portal is kept up-to-date by the workflow orchestrator running on https://prefect.dansdemo.nl. The metadata in the staging and devstack ODISSEI Portal is only updated manually, which can be done via the orchestrator on https://prefect.dansdemo.nl or a local orchestrator setup.

ServiceStackVersionRepositoryNotes
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Microservices Server: labs-demo

This server hosts the metadata microservices. These microservices are all containerized and deployed via a CI/CD setup, which tests the code, creates and pushes a new docker image when a GitHub tag is created. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceVersionAPI documentationGit Repo
Metadata FetcherMetadata Fetcherdataverse-metadata-fetcher
Dataverse MapperDataverse Mapperdataverse-mapper
Dans Transformer ServiceTransformer Servicedans-transformer-service
Metadata RefinerMetadata Refinermetadata-refiner
Metadata EnhancerMetadata Enhancermetadata-enhancer
Email SanitizerEmail Sanitizeremail-sanitize-microservice
Version TrackerVersion Trackerversion-tracker
DOI MinterDOI Mintersubmitmd2dc-service
OAI-PMH HarvesterODISSEI Harvesterodissei-harvester
OAI Enrichment ServiceOAI Enricher Serviceoai-enricher-service

4. Networking & Security

  • Networking:

    • Traefik container with automatic SSL certificate renewal using letsencrypt.

5. Monitoring & Logging

  • Monitoring: ODISSEI production portal website is monitored in zabbix.

  • Logging: No centralized logging. docker logs {container name}

6. Backup

  • Database Backups: Cronjob that makes backups every day. Kept on server itself.

Pinned Loading

  1. odissei-dataverse-stackodissei-dataverse-stackPublic

    This repository is used for setting up the front-end of portal.odissei.nl and skosmos.odissei.nl

    Shell 1 3

  2. ODISSEI-code-libraryODISSEI-code-libraryPublic

    Repository of the ODISSEI code library

    HTML 8 4

  3. ingestion-workflow-orchestratoringestion-workflow-orchestratorPublic

    Orchestrator for all ODISSEI-related ingestion workflows.

    Python 2 3

  4. vocabulariesvocabulariesPublic

    Vocabularies used in the ODISSEI project

    Shell

  5. odissei-kgodissei-kgPublic

    This repository contains the software we used to extract, transform and load (ETL) data into the platform kg.odissei.nl. If you are mainly interested in the resulting data, feel free to ignore this…

    TypeScript 1

Repositories

Showing 10 of 59 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@odissei-data

ODISSEI

ODISSEI (Open Data Infrastructure for Social Science and Economic Innovations) is the national research infrastructure for social sciences in the Netherlands.

ODISSEI - Open Data Infrastructure for Social Science and Economic Innovations

ODISSEI banner

ODISSEI Portal

https://portal.odissei.nl/

ODISSEI Portal User Guide

https://doi.org/10.5281/zenodo.15236529.

ODISSEI Portal Infrastructure

Technical Wiki https://github.com/odissei-data/.github/wiki

1. Application Stacks & Environments

List of repositories for each application stack.

Application StackRepository URLLatestDeployment Method
ODISSEI Dataverse stackhttps://github.com/odissei-data/odissei-dataverse-stackmasterDeployed manually
SKOSMOS stackhttps://github.com/odissei-data/sd-skosmosmainDeployed manually
Workflow orchestratorhttps://github.com/odissei-data/ingestion-workflow-orchestrator3.2.0Automatic deployment on production via CI/CD
Microserviceshttps://github.com/odissei-data/metadata-enhancermainAutomatic via CI/CD for all microservices

ODISSEI Portal

The ODISSEI Portal runs on three environments: Production, Staging, and Devstack.

To run the Portal, two dockerized application stacks, are required:

  • Dataverse portal stack: uses a SOLR, Postgres, and Payara containers.

  • Skosmos stack: uses a Skosmos, Fuseki, and Varnish container.

  • Traefik container: used as reversed proxy. It uses Letsencrypt for automatic SSL certificate renewal. It also shows an overview of the Prefect server and labs-demo server that run the Workflow Orchestrator and microservices used by the Orchestrator respectively.

Workflow Orchestrator

The Workflow Orchestrator is used to automatically ingest metadata from the different data providers**,** present in the ODISSEI Portal. The ingestion-workflow-orchestrator application stack is behind the Workflow Orchestrator, using Prefect and Postgres DB to coordinate the actions of metadata ingestion and enrichment microservices for Orchestrator

2. Server Inventory

List of servers and their roles:

Server NameEnvironmentOperating SystemLocationSpecifications
odissei-01ProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 124GB SSD
odissei-02StagingUbuntu 22.04Azure4 vCPUs, 16GB RAM, 60GB SSD
devstackDevelopmentUbuntu 24.04SURF R-cloud8 vCPUs, 32GB RAM, 250GB SSD
prefectProductionUbuntu 24.04Azure2 vCPUs, 8GB RAM, 124GB SSD
labs-demoProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 30GB SSD

3. Applications and Services

Production Server:

This server is used to host the production ODISSEI Portal (https://portal.odissei.nl) and Skosmos vocabulary browser (https://skosmos.odissei.nl). It is setup with a traefik reverse proxy. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Staging Server:

This server is used to host the staging ODISSEI Portal (https://portal.staging.odissei.nl) and Skosmos vocabulary browser (https://skosmos.staging.odissei.nl). This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Development Server: devstack

This server is used by ODISSEI developers for testing and experimentation. It host the staging ODISSEI Portal (https://portal.devstack.odissei.nl) and Skosmos vocabulary browser (https://skosmos.devstack.odissei.nl). To access this server, a user needs to be added to the ODISSEI collaboration on SURF Research Cloud as a developer. They can then add their public ssh key to their profile and will gain automatic access to the server using ssh with their username.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stack9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stack16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
Skosmossd-skosmosLatestodissei-dataverse-stackVocabulary browser
Fusekisd-skosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish Cachesd-skosmosLatestodissei-dataverse-stackCaching layer
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Prefect Server: prefect

This server hosts the Prefect workflow orchestrator. The orchestrator is used to automatically ingest dataset metadata. For each data provider there is an associated Prefect workflow, dedicated to ingesting their datasets' metadata onto the ODISSEI Portal (Dataverse instance). Common metadata tasks - harvesting, mapping, and enrichment - have been encapsulated in microservices that are run separately from the orchestrator. The orchestrator schedules its workflows to run daily to keep the metadata in the portal up to date. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

The metadata in the production ODISSEI Portal is kept up-to-date by the workflow orchestrator running on https://prefect.dansdemo.nl. The metadata in the staging and devstack ODISSEI Portal is only updated manually, which can be done via the orchestrator on https://prefect.dansdemo.nl or a local orchestrator setup.

ServiceStackVersionRepositoryNotes
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Microservices Server: labs-demo

This server hosts the metadata microservices. These microservices are all containerized and deployed via a CI/CD setup, which tests the code, creates and pushes a new docker image when a GitHub tag is created. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceVersionAPI documentationGit Repo
Metadata FetcherMetadata Fetcherdataverse-metadata-fetcher
Dataverse MapperDataverse Mapperdataverse-mapper
Dans Transformer ServiceTransformer Servicedans-transformer-service
Metadata RefinerMetadata Refinermetadata-refiner
Metadata EnhancerMetadata Enhancermetadata-enhancer
Email SanitizerEmail Sanitizeremail-sanitize-microservice
Version TrackerVersion Trackerversion-tracker
DOI MinterDOI Mintersubmitmd2dc-service
OAI-PMH HarvesterODISSEI Harvesterodissei-harvester
OAI Enrichment ServiceOAI Enricher Serviceoai-enricher-service

4. Networking & Security

  • Networking:

    • Traefik container with automatic SSL certificate renewal using letsencrypt.

5. Monitoring & Logging

  • Monitoring: ODISSEI production portal website is monitored in zabbix.

  • Logging: No centralized logging. docker logs {container name}

6. Backup

  • Database Backups: Cronjob that makes backups every day. Kept on server itself.

Pinned Loading

  1. odissei-dataverse-stackodissei-dataverse-stackPublic

    This repository is used for setting up the front-end of portal.odissei.nl and skosmos.odissei.nl

    Shell 1 3

  2. ODISSEI-code-libraryODISSEI-code-libraryPublic

    Repository of the ODISSEI code library

    HTML 8 4

  3. ingestion-workflow-orchestratoringestion-workflow-orchestratorPublic

    Orchestrator for all ODISSEI-related ingestion workflows.

    Python 2 3

  4. vocabulariesvocabulariesPublic

    Vocabularies used in the ODISSEI project

    Shell

  5. odissei-kgodissei-kgPublic

    This repository contains the software we used to extract, transform and load (ETL) data into the platform kg.odissei.nl. If you are mainly interested in the resulting data, feel free to ignore this…

    TypeScript 1

Repositories

Showing 10 of 59 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@odissei-data

ODISSEI

ODISSEI (Open Data Infrastructure for Social Science and Economic Innovations) is the national research infrastructure for social sciences in the Netherlands.

ODISSEI - Open Data Infrastructure for Social Science and Economic Innovations

ODISSEI banner

ODISSEI Portal

https://portal.odissei.nl/

ODISSEI Portal User Guide

https://doi.org/10.5281/zenodo.15236529.

ODISSEI Portal Infrastructure

Technical Wiki https://github.com/odissei-data/.github/wiki

1. Application Stacks & Environments

List of repositories for each application stack.

Application StackRepository URLLatestDeployment Method
ODISSEI Dataverse stackhttps://github.com/odissei-data/odissei-dataverse-stackmasterDeployed manually
SKOSMOS stackhttps://github.com/odissei-data/sd-skosmosmainDeployed manually
Workflow orchestratorhttps://github.com/odissei-data/ingestion-workflow-orchestrator3.2.0Automatic deployment on production via CI/CD
Microserviceshttps://github.com/odissei-data/metadata-enhancermainAutomatic via CI/CD for all microservices

ODISSEI Portal

The ODISSEI Portal runs on three environments: Production, Staging, and Devstack.

To run the Portal, two dockerized application stacks, are required:

  • Dataverse portal stack: uses a SOLR, Postgres, and Payara containers.

  • Skosmos stack: uses a Skosmos, Fuseki, and Varnish container.

  • Traefik container: used as reversed proxy. It uses Letsencrypt for automatic SSL certificate renewal. It also shows an overview of the Prefect server and labs-demo server that run the Workflow Orchestrator and microservices used by the Orchestrator respectively.

Workflow Orchestrator

The Workflow Orchestrator is used to automatically ingest metadata from the different data providers**,** present in the ODISSEI Portal. The ingestion-workflow-orchestrator application stack is behind the Workflow Orchestrator, using Prefect and Postgres DB to coordinate the actions of metadata ingestion and enrichment microservices for Orchestrator

2. Server Inventory

List of servers and their roles:

Server NameEnvironmentOperating SystemLocationSpecifications
odissei-01ProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 124GB SSD
odissei-02StagingUbuntu 22.04Azure4 vCPUs, 16GB RAM, 60GB SSD
devstackDevelopmentUbuntu 24.04SURF R-cloud8 vCPUs, 32GB RAM, 250GB SSD
prefectProductionUbuntu 24.04Azure2 vCPUs, 8GB RAM, 124GB SSD
labs-demoProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 30GB SSD

3. Applications and Services

Production Server:

This server is used to host the production ODISSEI Portal (https://portal.odissei.nl) and Skosmos vocabulary browser (https://skosmos.odissei.nl). It is setup with a traefik reverse proxy. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Staging Server:

This server is used to host the staging ODISSEI Portal (https://portal.staging.odissei.nl) and Skosmos vocabulary browser (https://skosmos.staging.odissei.nl). This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Development Server: devstack

This server is used by ODISSEI developers for testing and experimentation. It host the staging ODISSEI Portal (https://portal.devstack.odissei.nl) and Skosmos vocabulary browser (https://skosmos.devstack.odissei.nl). To access this server, a user needs to be added to the ODISSEI collaboration on SURF Research Cloud as a developer. They can then add their public ssh key to their profile and will gain automatic access to the server using ssh with their username.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stack9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stack16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
Skosmossd-skosmosLatestodissei-dataverse-stackVocabulary browser
Fusekisd-skosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish Cachesd-skosmosLatestodissei-dataverse-stackCaching layer
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Prefect Server: prefect

This server hosts the Prefect workflow orchestrator. The orchestrator is used to automatically ingest dataset metadata. For each data provider there is an associated Prefect workflow, dedicated to ingesting their datasets' metadata onto the ODISSEI Portal (Dataverse instance). Common metadata tasks - harvesting, mapping, and enrichment - have been encapsulated in microservices that are run separately from the orchestrator. The orchestrator schedules its workflows to run daily to keep the metadata in the portal up to date. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

The metadata in the production ODISSEI Portal is kept up-to-date by the workflow orchestrator running on https://prefect.dansdemo.nl. The metadata in the staging and devstack ODISSEI Portal is only updated manually, which can be done via the orchestrator on https://prefect.dansdemo.nl or a local orchestrator setup.

ServiceStackVersionRepositoryNotes
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Microservices Server: labs-demo

This server hosts the metadata microservices. These microservices are all containerized and deployed via a CI/CD setup, which tests the code, creates and pushes a new docker image when a GitHub tag is created. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceVersionAPI documentationGit Repo
Metadata FetcherMetadata Fetcherdataverse-metadata-fetcher
Dataverse MapperDataverse Mapperdataverse-mapper
Dans Transformer ServiceTransformer Servicedans-transformer-service
Metadata RefinerMetadata Refinermetadata-refiner
Metadata EnhancerMetadata Enhancermetadata-enhancer
Email SanitizerEmail Sanitizeremail-sanitize-microservice
Version TrackerVersion Trackerversion-tracker
DOI MinterDOI Mintersubmitmd2dc-service
OAI-PMH HarvesterODISSEI Harvesterodissei-harvester
OAI Enrichment ServiceOAI Enricher Serviceoai-enricher-service

4. Networking & Security

  • Networking:

    • Traefik container with automatic SSL certificate renewal using letsencrypt.

5. Monitoring & Logging

  • Monitoring: ODISSEI production portal website is monitored in zabbix.

  • Logging: No centralized logging. docker logs {container name}

6. Backup

  • Database Backups: Cronjob that makes backups every day. Kept on server itself.

Pinned Loading

  1. odissei-dataverse-stackodissei-dataverse-stackPublic

    This repository is used for setting up the front-end of portal.odissei.nl and skosmos.odissei.nl

    Shell 1 3

  2. ODISSEI-code-libraryODISSEI-code-libraryPublic

    Repository of the ODISSEI code library

    HTML 8 4

  3. ingestion-workflow-orchestratoringestion-workflow-orchestratorPublic

    Orchestrator for all ODISSEI-related ingestion workflows.

    Python 2 3

  4. vocabulariesvocabulariesPublic

    Vocabularies used in the ODISSEI project

    Shell

  5. odissei-kgodissei-kgPublic

    This repository contains the software we used to extract, transform and load (ETL) data into the platform kg.odissei.nl. If you are mainly interested in the resulting data, feel free to ignore this…

    TypeScript 1

Repositories

Showing 10 of 59 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
@odissei-data

ODISSEI

ODISSEI (Open Data Infrastructure for Social Science and Economic Innovations) is the national research infrastructure for social sciences in the Netherlands.

ODISSEI - Open Data Infrastructure for Social Science and Economic Innovations

ODISSEI banner

ODISSEI Portal

https://portal.odissei.nl/

ODISSEI Portal User Guide

https://doi.org/10.5281/zenodo.15236529.

ODISSEI Portal Infrastructure

Technical Wiki https://github.com/odissei-data/.github/wiki

1. Application Stacks & Environments

List of repositories for each application stack.

Application StackRepository URLLatestDeployment Method
ODISSEI Dataverse stackhttps://github.com/odissei-data/odissei-dataverse-stackmasterDeployed manually
SKOSMOS stackhttps://github.com/odissei-data/sd-skosmosmainDeployed manually
Workflow orchestratorhttps://github.com/odissei-data/ingestion-workflow-orchestrator3.2.0Automatic deployment on production via CI/CD
Microserviceshttps://github.com/odissei-data/metadata-enhancermainAutomatic via CI/CD for all microservices

ODISSEI Portal

The ODISSEI Portal runs on three environments: Production, Staging, and Devstack.

To run the Portal, two dockerized application stacks, are required:

  • Dataverse portal stack: uses a SOLR, Postgres, and Payara containers.

  • Skosmos stack: uses a Skosmos, Fuseki, and Varnish container.

  • Traefik container: used as reversed proxy. It uses Letsencrypt for automatic SSL certificate renewal. It also shows an overview of the Prefect server and labs-demo server that run the Workflow Orchestrator and microservices used by the Orchestrator respectively.

Workflow Orchestrator

The Workflow Orchestrator is used to automatically ingest metadata from the different data providers**,** present in the ODISSEI Portal. The ingestion-workflow-orchestrator application stack is behind the Workflow Orchestrator, using Prefect and Postgres DB to coordinate the actions of metadata ingestion and enrichment microservices for Orchestrator

2. Server Inventory

List of servers and their roles:

Server NameEnvironmentOperating SystemLocationSpecifications
odissei-01ProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 124GB SSD
odissei-02StagingUbuntu 22.04Azure4 vCPUs, 16GB RAM, 60GB SSD
devstackDevelopmentUbuntu 24.04SURF R-cloud8 vCPUs, 32GB RAM, 250GB SSD
prefectProductionUbuntu 24.04Azure2 vCPUs, 8GB RAM, 124GB SSD
labs-demoProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 30GB SSD

3. Applications and Services

Production Server:

This server is used to host the production ODISSEI Portal (https://portal.odissei.nl) and Skosmos vocabulary browser (https://skosmos.odissei.nl). It is setup with a traefik reverse proxy. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Staging Server:

This server is used to host the staging ODISSEI Portal (https://portal.staging.odissei.nl) and Skosmos vocabulary browser (https://skosmos.staging.odissei.nl). This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Development Server: devstack

This server is used by ODISSEI developers for testing and experimentation. It host the staging ODISSEI Portal (https://portal.devstack.odissei.nl) and Skosmos vocabulary browser (https://skosmos.devstack.odissei.nl). To access this server, a user needs to be added to the ODISSEI collaboration on SURF Research Cloud as a developer. They can then add their public ssh key to their profile and will gain automatic access to the server using ssh with their username.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stack9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stack16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
Skosmossd-skosmosLatestodissei-dataverse-stackVocabulary browser
Fusekisd-skosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish Cachesd-skosmosLatestodissei-dataverse-stackCaching layer
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Prefect Server: prefect

This server hosts the Prefect workflow orchestrator. The orchestrator is used to automatically ingest dataset metadata. For each data provider there is an associated Prefect workflow, dedicated to ingesting their datasets' metadata onto the ODISSEI Portal (Dataverse instance). Common metadata tasks - harvesting, mapping, and enrichment - have been encapsulated in microservices that are run separately from the orchestrator. The orchestrator schedules its workflows to run daily to keep the metadata in the portal up to date. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

The metadata in the production ODISSEI Portal is kept up-to-date by the workflow orchestrator running on https://prefect.dansdemo.nl. The metadata in the staging and devstack ODISSEI Portal is only updated manually, which can be done via the orchestrator on https://prefect.dansdemo.nl or a local orchestrator setup.

ServiceStackVersionRepositoryNotes
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Microservices Server: labs-demo

This server hosts the metadata microservices. These microservices are all containerized and deployed via a CI/CD setup, which tests the code, creates and pushes a new docker image when a GitHub tag is created. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceVersionAPI documentationGit Repo
Metadata FetcherMetadata Fetcherdataverse-metadata-fetcher
Dataverse MapperDataverse Mapperdataverse-mapper
Dans Transformer ServiceTransformer Servicedans-transformer-service
Metadata RefinerMetadata Refinermetadata-refiner
Metadata EnhancerMetadata Enhancermetadata-enhancer
Email SanitizerEmail Sanitizeremail-sanitize-microservice
Version TrackerVersion Trackerversion-tracker
DOI MinterDOI Mintersubmitmd2dc-service
OAI-PMH HarvesterODISSEI Harvesterodissei-harvester
OAI Enrichment ServiceOAI Enricher Serviceoai-enricher-service

4. Networking & Security

  • Networking:

    • Traefik container with automatic SSL certificate renewal using letsencrypt.

5. Monitoring & Logging

  • Monitoring: ODISSEI production portal website is monitored in zabbix.

  • Logging: No centralized logging. docker logs {container name}

6. Backup

  • Database Backups: Cronjob that makes backups every day. Kept on server itself.

Pinned Loading

  1. odissei-dataverse-stackodissei-dataverse-stackPublic

    This repository is used for setting up the front-end of portal.odissei.nl and skosmos.odissei.nl

    Shell 1 3

  2. ODISSEI-code-libraryODISSEI-code-libraryPublic

    Repository of the ODISSEI code library

    HTML 8 4

  3. ingestion-workflow-orchestratoringestion-workflow-orchestratorPublic

    Orchestrator for all ODISSEI-related ingestion workflows.

    Python 2 3

  4. vocabulariesvocabulariesPublic

    Vocabularies used in the ODISSEI project

    Shell

  5. odissei-kgodissei-kgPublic

    This repository contains the software we used to extract, transform and load (ETL) data into the platform kg.odissei.nl. If you are mainly interested in the resulting data, feel free to ignore this…

    TypeScript 1

Repositories

Showing 10 of 59 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@odissei-data

ODISSEI

ODISSEI (Open Data Infrastructure for Social Science and Economic Innovations) is the national research infrastructure for social sciences in the Netherlands.

ODISSEI - Open Data Infrastructure for Social Science and Economic Innovations

ODISSEI banner

ODISSEI Portal

https://portal.odissei.nl/

ODISSEI Portal User Guide

https://doi.org/10.5281/zenodo.15236529.

ODISSEI Portal Infrastructure

Technical Wiki https://github.com/odissei-data/.github/wiki

1. Application Stacks & Environments

List of repositories for each application stack.

Application StackRepository URLLatestDeployment Method
ODISSEI Dataverse stackhttps://github.com/odissei-data/odissei-dataverse-stackmasterDeployed manually
SKOSMOS stackhttps://github.com/odissei-data/sd-skosmosmainDeployed manually
Workflow orchestratorhttps://github.com/odissei-data/ingestion-workflow-orchestrator3.2.0Automatic deployment on production via CI/CD
Microserviceshttps://github.com/odissei-data/metadata-enhancermainAutomatic via CI/CD for all microservices

ODISSEI Portal

The ODISSEI Portal runs on three environments: Production, Staging, and Devstack.

To run the Portal, two dockerized application stacks, are required:

  • Dataverse portal stack: uses a SOLR, Postgres, and Payara containers.

  • Skosmos stack: uses a Skosmos, Fuseki, and Varnish container.

  • Traefik container: used as reversed proxy. It uses Letsencrypt for automatic SSL certificate renewal. It also shows an overview of the Prefect server and labs-demo server that run the Workflow Orchestrator and microservices used by the Orchestrator respectively.

Workflow Orchestrator

The Workflow Orchestrator is used to automatically ingest metadata from the different data providers**,** present in the ODISSEI Portal. The ingestion-workflow-orchestrator application stack is behind the Workflow Orchestrator, using Prefect and Postgres DB to coordinate the actions of metadata ingestion and enrichment microservices for Orchestrator

2. Server Inventory

List of servers and their roles:

Server NameEnvironmentOperating SystemLocationSpecifications
odissei-01ProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 124GB SSD
odissei-02StagingUbuntu 22.04Azure4 vCPUs, 16GB RAM, 60GB SSD
devstackDevelopmentUbuntu 24.04SURF R-cloud8 vCPUs, 32GB RAM, 250GB SSD
prefectProductionUbuntu 24.04Azure2 vCPUs, 8GB RAM, 124GB SSD
labs-demoProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 30GB SSD

3. Applications and Services

Production Server:

This server is used to host the production ODISSEI Portal (https://portal.odissei.nl) and Skosmos vocabulary browser (https://skosmos.odissei.nl). It is setup with a traefik reverse proxy. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Staging Server:

This server is used to host the staging ODISSEI Portal (https://portal.staging.odissei.nl) and Skosmos vocabulary browser (https://skosmos.staging.odissei.nl). This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Development Server: devstack

This server is used by ODISSEI developers for testing and experimentation. It host the staging ODISSEI Portal (https://portal.devstack.odissei.nl) and Skosmos vocabulary browser (https://skosmos.devstack.odissei.nl). To access this server, a user needs to be added to the ODISSEI collaboration on SURF Research Cloud as a developer. They can then add their public ssh key to their profile and will gain automatic access to the server using ssh with their username.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stack9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stack16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
Skosmossd-skosmosLatestodissei-dataverse-stackVocabulary browser
Fusekisd-skosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish Cachesd-skosmosLatestodissei-dataverse-stackCaching layer
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Prefect Server: prefect

This server hosts the Prefect workflow orchestrator. The orchestrator is used to automatically ingest dataset metadata. For each data provider there is an associated Prefect workflow, dedicated to ingesting their datasets' metadata onto the ODISSEI Portal (Dataverse instance). Common metadata tasks - harvesting, mapping, and enrichment - have been encapsulated in microservices that are run separately from the orchestrator. The orchestrator schedules its workflows to run daily to keep the metadata in the portal up to date. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

The metadata in the production ODISSEI Portal is kept up-to-date by the workflow orchestrator running on https://prefect.dansdemo.nl. The metadata in the staging and devstack ODISSEI Portal is only updated manually, which can be done via the orchestrator on https://prefect.dansdemo.nl or a local orchestrator setup.

ServiceStackVersionRepositoryNotes
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Microservices Server: labs-demo

This server hosts the metadata microservices. These microservices are all containerized and deployed via a CI/CD setup, which tests the code, creates and pushes a new docker image when a GitHub tag is created. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceVersionAPI documentationGit Repo
Metadata FetcherMetadata Fetcherdataverse-metadata-fetcher
Dataverse MapperDataverse Mapperdataverse-mapper
Dans Transformer ServiceTransformer Servicedans-transformer-service
Metadata RefinerMetadata Refinermetadata-refiner
Metadata EnhancerMetadata Enhancermetadata-enhancer
Email SanitizerEmail Sanitizeremail-sanitize-microservice
Version TrackerVersion Trackerversion-tracker
DOI MinterDOI Mintersubmitmd2dc-service
OAI-PMH HarvesterODISSEI Harvesterodissei-harvester
OAI Enrichment ServiceOAI Enricher Serviceoai-enricher-service

4. Networking & Security

  • Networking:

    • Traefik container with automatic SSL certificate renewal using letsencrypt.

5. Monitoring & Logging

  • Monitoring: ODISSEI production portal website is monitored in zabbix.

  • Logging: No centralized logging. docker logs {container name}

6. Backup

  • Database Backups: Cronjob that makes backups every day. Kept on server itself.

Pinned Loading

  1. odissei-dataverse-stackodissei-dataverse-stackPublic

    This repository is used for setting up the front-end of portal.odissei.nl and skosmos.odissei.nl

    Shell 1 3

  2. ODISSEI-code-libraryODISSEI-code-libraryPublic

    Repository of the ODISSEI code library

    HTML 8 4

  3. ingestion-workflow-orchestratoringestion-workflow-orchestratorPublic

    Orchestrator for all ODISSEI-related ingestion workflows.

    Python 2 3

  4. vocabulariesvocabulariesPublic

    Vocabularies used in the ODISSEI project

    Shell

  5. odissei-kgodissei-kgPublic

    This repository contains the software we used to extract, transform and load (ETL) data into the platform kg.odissei.nl. If you are mainly interested in the resulting data, feel free to ignore this…

    TypeScript 1

Repositories

Showing 10 of 59 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
@odissei-data

ODISSEI

ODISSEI (Open Data Infrastructure for Social Science and Economic Innovations) is the national research infrastructure for social sciences in the Netherlands.

ODISSEI - Open Data Infrastructure for Social Science and Economic Innovations

ODISSEI banner

ODISSEI Portal

https://portal.odissei.nl/

ODISSEI Portal User Guide

https://doi.org/10.5281/zenodo.15236529.

ODISSEI Portal Infrastructure

Technical Wiki https://github.com/odissei-data/.github/wiki

1. Application Stacks & Environments

List of repositories for each application stack.

Application StackRepository URLLatestDeployment Method
ODISSEI Dataverse stackhttps://github.com/odissei-data/odissei-dataverse-stackmasterDeployed manually
SKOSMOS stackhttps://github.com/odissei-data/sd-skosmosmainDeployed manually
Workflow orchestratorhttps://github.com/odissei-data/ingestion-workflow-orchestrator3.2.0Automatic deployment on production via CI/CD
Microserviceshttps://github.com/odissei-data/metadata-enhancermainAutomatic via CI/CD for all microservices

ODISSEI Portal

The ODISSEI Portal runs on three environments: Production, Staging, and Devstack.

To run the Portal, two dockerized application stacks, are required:

  • Dataverse portal stack: uses a SOLR, Postgres, and Payara containers.

  • Skosmos stack: uses a Skosmos, Fuseki, and Varnish container.

  • Traefik container: used as reversed proxy. It uses Letsencrypt for automatic SSL certificate renewal. It also shows an overview of the Prefect server and labs-demo server that run the Workflow Orchestrator and microservices used by the Orchestrator respectively.

Workflow Orchestrator

The Workflow Orchestrator is used to automatically ingest metadata from the different data providers**,** present in the ODISSEI Portal. The ingestion-workflow-orchestrator application stack is behind the Workflow Orchestrator, using Prefect and Postgres DB to coordinate the actions of metadata ingestion and enrichment microservices for Orchestrator

2. Server Inventory

List of servers and their roles:

Server NameEnvironmentOperating SystemLocationSpecifications
odissei-01ProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 124GB SSD
odissei-02StagingUbuntu 22.04Azure4 vCPUs, 16GB RAM, 60GB SSD
devstackDevelopmentUbuntu 24.04SURF R-cloud8 vCPUs, 32GB RAM, 250GB SSD
prefectProductionUbuntu 24.04Azure2 vCPUs, 8GB RAM, 124GB SSD
labs-demoProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 30GB SSD

3. Applications and Services

Production Server:

This server is used to host the production ODISSEI Portal (https://portal.odissei.nl) and Skosmos vocabulary browser (https://skosmos.odissei.nl). It is setup with a traefik reverse proxy. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Staging Server:

This server is used to host the staging ODISSEI Portal (https://portal.staging.odissei.nl) and Skosmos vocabulary browser (https://skosmos.staging.odissei.nl). This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Development Server: devstack

This server is used by ODISSEI developers for testing and experimentation. It host the staging ODISSEI Portal (https://portal.devstack.odissei.nl) and Skosmos vocabulary browser (https://skosmos.devstack.odissei.nl). To access this server, a user needs to be added to the ODISSEI collaboration on SURF Research Cloud as a developer. They can then add their public ssh key to their profile and will gain automatic access to the server using ssh with their username.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stack9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stack16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
Skosmossd-skosmosLatestodissei-dataverse-stackVocabulary browser
Fusekisd-skosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish Cachesd-skosmosLatestodissei-dataverse-stackCaching layer
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Prefect Server: prefect

This server hosts the Prefect workflow orchestrator. The orchestrator is used to automatically ingest dataset metadata. For each data provider there is an associated Prefect workflow, dedicated to ingesting their datasets' metadata onto the ODISSEI Portal (Dataverse instance). Common metadata tasks - harvesting, mapping, and enrichment - have been encapsulated in microservices that are run separately from the orchestrator. The orchestrator schedules its workflows to run daily to keep the metadata in the portal up to date. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

The metadata in the production ODISSEI Portal is kept up-to-date by the workflow orchestrator running on https://prefect.dansdemo.nl. The metadata in the staging and devstack ODISSEI Portal is only updated manually, which can be done via the orchestrator on https://prefect.dansdemo.nl or a local orchestrator setup.

ServiceStackVersionRepositoryNotes
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Microservices Server: labs-demo

This server hosts the metadata microservices. These microservices are all containerized and deployed via a CI/CD setup, which tests the code, creates and pushes a new docker image when a GitHub tag is created. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceVersionAPI documentationGit Repo
Metadata FetcherMetadata Fetcherdataverse-metadata-fetcher
Dataverse MapperDataverse Mapperdataverse-mapper
Dans Transformer ServiceTransformer Servicedans-transformer-service
Metadata RefinerMetadata Refinermetadata-refiner
Metadata EnhancerMetadata Enhancermetadata-enhancer
Email SanitizerEmail Sanitizeremail-sanitize-microservice
Version TrackerVersion Trackerversion-tracker
DOI MinterDOI Mintersubmitmd2dc-service
OAI-PMH HarvesterODISSEI Harvesterodissei-harvester
OAI Enrichment ServiceOAI Enricher Serviceoai-enricher-service

4. Networking & Security

  • Networking:

    • Traefik container with automatic SSL certificate renewal using letsencrypt.

5. Monitoring & Logging

  • Monitoring: ODISSEI production portal website is monitored in zabbix.

  • Logging: No centralized logging. docker logs {container name}

6. Backup

  • Database Backups: Cronjob that makes backups every day. Kept on server itself.

Pinned Loading

  1. odissei-dataverse-stackodissei-dataverse-stackPublic

    This repository is used for setting up the front-end of portal.odissei.nl and skosmos.odissei.nl

    Shell 1 3

  2. ODISSEI-code-libraryODISSEI-code-libraryPublic

    Repository of the ODISSEI code library

    HTML 8 4

  3. ingestion-workflow-orchestratoringestion-workflow-orchestratorPublic

    Orchestrator for all ODISSEI-related ingestion workflows.

    Python 2 3

  4. vocabulariesvocabulariesPublic

    Vocabularies used in the ODISSEI project

    Shell

  5. odissei-kgodissei-kgPublic

    This repository contains the software we used to extract, transform and load (ETL) data into the platform kg.odissei.nl. If you are mainly interested in the resulting data, feel free to ignore this…

    TypeScript 1

Repositories

Showing 10 of 59 repositories

Top languages

Loading…

Most used topics

Loading…

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
@odissei-data

ODISSEI

ODISSEI (Open Data Infrastructure for Social Science and Economic Innovations) is the national research infrastructure for social sciences in the Netherlands.

ODISSEI - Open Data Infrastructure for Social Science and Economic Innovations

ODISSEI banner

ODISSEI Portal

https://portal.odissei.nl/

ODISSEI Portal User Guide

https://doi.org/10.5281/zenodo.15236529.

ODISSEI Portal Infrastructure

Technical Wiki https://github.com/odissei-data/.github/wiki

1. Application Stacks & Environments

List of repositories for each application stack.

Application StackRepository URLLatestDeployment Method
ODISSEI Dataverse stackhttps://github.com/odissei-data/odissei-dataverse-stackmasterDeployed manually
SKOSMOS stackhttps://github.com/odissei-data/sd-skosmosmainDeployed manually
Workflow orchestratorhttps://github.com/odissei-data/ingestion-workflow-orchestrator3.2.0Automatic deployment on production via CI/CD
Microserviceshttps://github.com/odissei-data/metadata-enhancermainAutomatic via CI/CD for all microservices

ODISSEI Portal

The ODISSEI Portal runs on three environments: Production, Staging, and Devstack.

To run the Portal, two dockerized application stacks, are required:

  • Dataverse portal stack: uses a SOLR, Postgres, and Payara containers.

  • Skosmos stack: uses a Skosmos, Fuseki, and Varnish container.

  • Traefik container: used as reversed proxy. It uses Letsencrypt for automatic SSL certificate renewal. It also shows an overview of the Prefect server and labs-demo server that run the Workflow Orchestrator and microservices used by the Orchestrator respectively.

Workflow Orchestrator

The Workflow Orchestrator is used to automatically ingest metadata from the different data providers**,** present in the ODISSEI Portal. The ingestion-workflow-orchestrator application stack is behind the Workflow Orchestrator, using Prefect and Postgres DB to coordinate the actions of metadata ingestion and enrichment microservices for Orchestrator

2. Server Inventory

List of servers and their roles:

Server NameEnvironmentOperating SystemLocationSpecifications
odissei-01ProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 124GB SSD
odissei-02StagingUbuntu 22.04Azure4 vCPUs, 16GB RAM, 60GB SSD
devstackDevelopmentUbuntu 24.04SURF R-cloud8 vCPUs, 32GB RAM, 250GB SSD
prefectProductionUbuntu 24.04Azure2 vCPUs, 8GB RAM, 124GB SSD
labs-demoProductionUbuntu 22.04Azure4 vCPUs, 16GB RAM, 30GB SSD

3. Applications and Services

Production Server:

This server is used to host the production ODISSEI Portal (https://portal.odissei.nl) and Skosmos vocabulary browser (https://skosmos.odissei.nl). It is setup with a traefik reverse proxy. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Staging Server:

This server is used to host the staging ODISSEI Portal (https://portal.staging.odissei.nl) and Skosmos vocabulary browser (https://skosmos.staging.odissei.nl). This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stackv9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stackv16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
SkosmosSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary browser
Skosmos-loaderSkosmossd-skosmos:v2.18.1-1.8.0odissei-dataverse-stackVocabulary loader
FusekiSkosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish CacheSkosmosLatestodissei-dataverse-stackCaching layer

Development Server: devstack

This server is used by ODISSEI developers for testing and experimentation. It host the staging ODISSEI Portal (https://portal.devstack.odissei.nl) and Skosmos vocabulary browser (https://skosmos.devstack.odissei.nl). To access this server, a user needs to be added to the ODISSEI collaboration on SURF Research Cloud as a developer. They can then add their public ssh key to their profile and will gain automatic access to the server using ssh with their username.

ServiceStackVersionRepositoryNotes
SOLRODISSEI Dataverse stack9.xodissei-dataverse-stackUsed for indexing and search
PostgreSQLODISSEI Dataverse stack16odissei-dataverse-stackStores metadata and user data
PayaraODISSEI Dataverse stackgdcc/dataverse:6.6-nobleodissei-dataverse-stackRuns the Dataverse application
Skosmossd-skosmosLatestodissei-dataverse-stackVocabulary browser
Fusekisd-skosmosstain/jena-fuseki:5.1.0odissei-dataverse-stackRDF triple store
Varnish Cachesd-skosmosLatestodissei-dataverse-stackCaching layer
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Prefect Server: prefect

This server hosts the Prefect workflow orchestrator. The orchestrator is used to automatically ingest dataset metadata. For each data provider there is an associated Prefect workflow, dedicated to ingesting their datasets' metadata onto the ODISSEI Portal (Dataverse instance). Common metadata tasks - harvesting, mapping, and enrichment - have been encapsulated in microservices that are run separately from the orchestrator. The orchestrator schedules its workflows to run daily to keep the metadata in the portal up to date. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

The metadata in the production ODISSEI Portal is kept up-to-date by the workflow orchestrator running on https://prefect.dansdemo.nl. The metadata in the staging and devstack ODISSEI Portal is only updated manually, which can be done via the orchestrator on https://prefect.dansdemo.nl or a local orchestrator setup.

ServiceStackVersionRepositoryNotes
Prefectworkflow-orchestrator3.2.0Tool to ingest metadata into Dataverse using workflows.

Microservices Server: labs-demo

This server hosts the metadata microservices. These microservices are all containerized and deployed via a CI/CD setup, which tests the code, creates and pushes a new docker image when a GitHub tag is created. This server runs in Microsoft Azure and can only be accessed by DANS personnel.

ServiceVersionAPI documentationGit Repo
Metadata FetcherMetadata Fetcherdataverse-metadata-fetcher
Dataverse MapperDataverse Mapperdataverse-mapper
Dans Transformer ServiceTransformer Servicedans-transformer-service
Metadata RefinerMetadata Refinermetadata-refiner
Metadata EnhancerMetadata Enhancermetadata-enhancer
Email SanitizerEmail Sanitizeremail-sanitize-microservice
Version TrackerVersion Trackerversion-tracker
DOI MinterDOI Mintersubmitmd2dc-service
OAI-PMH HarvesterODISSEI Harvesterodissei-harvester
OAI Enrichment ServiceOAI Enricher Serviceoai-enricher-service

4. Networking & Security

  • Networking:

    • Traefik container with automatic SSL certificate renewal using letsencrypt.

5. Monitoring & Logging

  • Monitoring: ODISSEI production portal website is monitored in zabbix.

  • Logging: No centralized logging. docker logs {container name}

6. Backup

  • Database Backups: Cronjob that makes backups every day. Kept on server itself.

Pinned Loading

  1. odissei-dataverse-stackodissei-dataverse-stackPublic

    This repository is used for setting up the front-end of portal.odissei.nl and skosmos.odissei.nl

    Shell 1 3

  2. ODISSEI-code-libraryODISSEI-code-libraryPublic

    Repository of the ODISSEI code library

    HTML 8 4

  3. ingestion-workflow-orchestratoringestion-workflow-orchestratorPublic

    Orchestrator for all ODISSEI-related ingestion workflows.

    Python 2 3

  4. vocabulariesvocabulariesPublic

    Vocabularies used in the ODISSEI project

    Shell

  5. odissei-kgodissei-kgPublic

    This repository contains the software we used to extract, transform and load (ETL) data into the platform kg.odissei.nl. If you are mainly interested in the resulting data, feel free to ignore this…

    TypeScript 1

Repositories

Showing 10 of 59 repositories

Top languages

Loading…

Most used topics

Loading…