diff --git a/ippisite/ippidb/management/commands/create_labslink_files.py b/ippisite/ippidb/management/commands/create_labslink_files.py
new file mode 100644
index 0000000000000000000000000000000000000000..151b60e67345a4538940cc6e4c8dd19f871ccc39
--- /dev/null
+++ b/ippisite/ippidb/management/commands/create_labslink_files.py
@@ -0,0 +1,47 @@
+# coding: utf-8
+from django.db.models import CharField, Value as V
+from django.db.models.functions import Concat
+from django.db.models import F, Q, Case, When
+
+from ippidb.models import RefCompoundBiblio
+from biodblinks.lablinks.command import LabsLinkCommand
+
+
+class Command(LabsLinkCommand):
+
+    queryset = (
+        RefCompoundBiblio.objects.exclude(Q(bibliography__source="PT"))
+        .annotate(
+            resource_title=Concat(
+                V("iPPI-DB compound #"), F("compound__id"), output_field=CharField()
+            )
+        )
+        .annotate(
+            resource_url=Concat(
+                V("https://ippidb.pasteur.fr/compounds/"),
+                F("compound__id"),
+                output_field=CharField(),
+            )
+        )
+        .annotate(
+            doi=Case(
+                When(Q(bibliography__source="DO"), then=F("bibliography__id_source")),
+                default=None,
+                output_field=CharField(),
+            )
+        )
+        .annotate(
+            record_id=Case(
+                When(Q(bibliography__source="PM"), then=F("bibliography__id_source")),
+                default=None,
+                output_field=CharField(),
+            )
+        )
+        .annotate(
+            record_source=Case(
+                When(Q(bibliography__source="PM"), then=V("MED")),
+                default=None,
+                output_field=CharField(),
+            )
+        )
+    )
diff --git a/ippisite/ippidb/tests/tests.py b/ippisite/ippidb/tests/tests.py
index 5a4f4e49fcb604bb4e3aba5280baf1065dcd8a4a..42311209918c0c45fb159f6dc95ae6d334abc468 100644
--- a/ippisite/ippidb/tests/tests.py
+++ b/ippisite/ippidb/tests/tests.py
@@ -3,6 +3,7 @@ iPPI-DB unit tests
 """
 import json
 import re
+from requests.exceptions import SSLError
 
 from django.contrib.auth import get_user_model
 from django.core.management import call_command
@@ -768,9 +769,12 @@ class TestConvertSMILESToIUPAC(TestCase):
     def test_valid(self):
         smiles_to_iupacs = {"CCC": "propane"}
         for smiles, expected_iupac in smiles_to_iupacs.items():
-            self.assertEqual(
-                convert_smiles_to_iupac(smiles).lower(), expected_iupac.lower()
-            )
+            try:
+                self.assertEqual(
+                    convert_smiles_to_iupac(smiles).lower(), expected_iupac.lower()
+                )
+            except SSLError:
+                self.skipTest("SSL connection issue with the CACTUS WS, skipping")
 
 
 class DuplicateGeneNameTestCase(TestCase):
diff --git a/ippisite/ippidb/tests/tests_contribute.py b/ippisite/ippidb/tests/tests_contribute.py
index 4638c6576fd697ca28620a014973cb04b2137a50..25e777ee2474504443375bfe04538b09054a718b 100644
--- a/ippisite/ippidb/tests/tests_contribute.py
+++ b/ippisite/ippidb/tests/tests_contribute.py
@@ -1,6 +1,8 @@
 """
 iPPI-DB contribution module tests
 """
+from requests.exceptions import HTTPError
+
 from django.contrib.auth import get_user_model
 from django.contrib.auth.models import Permission
 from django.contrib.contenttypes.models import ContentType
@@ -22,7 +24,10 @@ class BibliographyIDTestCase(TestCase):
         b = models.Bibliography()
         b.source = "DO"
         b.id_source = "10.1016/j.bmcl.2013.03.013"
-        b.save(autofill=True)
+        try:
+            b.save(autofill=True)
+        except HTTPError:
+            self.skipTest("Connection error, skipping test")
 
 
 class ContributionViewsAccessTestCase(TestCase):
diff --git a/ippisite/ippidb/ws.py b/ippisite/ippidb/ws.py
index 341fac3ba146b5792f5607d34a75e8da6f74bd66..0d2f17e32421a677f5c7cd48663c54615ece0cc3 100644
--- a/ippisite/ippidb/ws.py
+++ b/ippisite/ippidb/ws.py
@@ -536,3 +536,13 @@ def get_ligand_id(smiles: str) -> str:
     raise EntryNotFoundError(
         smiles, msg=str(f"ligand for smiles {smiles} not found in PDB Ligand")
     )
+
+
+def get_orcid_user_details(orcid: str) -> str:
+    endpoint = f"https://pub.orcid.org/v3.0/{orcid}/person"
+    resp = requests.get(endpoint, headers={"Accept": "application/json"},)
+    data = resp.json()
+    return {
+        "first": data["name"]["given-names"]["value"],
+        "last": data["name"]["family-name"]["value"],
+    }
diff --git a/ippisite/ippisite/settings.py b/ippisite/ippisite/settings.py
index 1cd64c663e6e2441525917a81d6e385d2f1fdb2b..d70af5c7299d2c741c59a3944a67a1dcb8392b58 100644
--- a/ippisite/ippisite/settings.py
+++ b/ippisite/ippisite/settings.py
@@ -58,6 +58,7 @@ INSTALLED_APPS = [
     # "allauth.socialaccount.providers.github",
     "allauth.socialaccount.providers.orcid",
     "polymorphic",
+    "biodblinks",
 ]
 
 MIDDLEWARE = [
@@ -191,3 +192,10 @@ GALAXY_COMPOUNDPROPERTIES_WORKFLOWID = None
 CELERY_RESULT_BACKEND = "django-db"
 
 GA_CODE = None
+
+# Django BioDbLinks settings
+LABLINKS_ID_PREFIX = "https://ippidb.pasteur.fr"
+LABLINKS_PROVIDER_ID = "2079"
+LABLINKS_RESOURCE_NAME = "iPPI-DB"
+LABLINKS_RESOURCE_DESCRIPTION = "iPPI-DB : An interactive database of protein-protein interactions modulators"
+LABLINKS_CONTACT_EMAIL = "ippidb@pasteur.fr"
diff --git a/ippisite/ippisite/settings.template.py b/ippisite/ippisite/settings.template.py
index 8991371af37b5479e2b38edd19edb196b7d2e0b3..53a221e4fa753a2e3fccd636ca08123382adaf34 100644
--- a/ippisite/ippisite/settings.template.py
+++ b/ippisite/ippisite/settings.template.py
@@ -169,3 +169,10 @@ CRISPY_TEMPLATE_PACK = "bootstrap4"
 
 # celery setting.
 CELERY_RESULT_BACKEND = 'django-db'
+
+# Django BioDbLinks settings
+LABLINKS_ID_PREFIX = "https://ippidb.pasteur.fr"
+LABLINKS_PROVIDER_ID = "2079"
+LABLINKS_RESOURCE_NAME = "iPPI-DB"
+LABLINKS_RESOURCE_DESCRIPTION = "iPPI-DB : An interactive database of protein-protein interactions modulators"
+LABLINKS_CONTACT_EMAIL = "ippidb@pasteur.fr"
diff --git a/ippisite/requirements-core.txt b/ippisite/requirements-core.txt
index c3d4dd9f61dff7a776a97e38af9cf0dfdb743966..9541f612901fa70e9105f408a5b65a729ff18f1e 100644
--- a/ippisite/requirements-core.txt
+++ b/ippisite/requirements-core.txt
@@ -30,3 +30,5 @@ django-crispy-forms
 celery==4.4.7
 django-polymorphic
 boltons
+# django-biodblinks App
+git+https://gitlab.pasteur.fr/hub/django-biodblinks.git#egg=django-biodblinks==0.1