diff --git a/gui/src/components/dataset/DatasetsPage.js b/gui/src/components/dataset/DatasetsPage.js
index 45069edc4fc10dde797a39400450d90843fbf73c..93987c8149111bb362cee2ad49a4f5c559e32fd5 100644
--- a/gui/src/components/dataset/DatasetsPage.js
+++ b/gui/src/components/dataset/DatasetsPage.js
@@ -34,6 +34,7 @@ import DialogContentText from '@material-ui/core/DialogContentText'
 import DialogActions from '@material-ui/core/DialogActions'
 import { SourceApiCall, SourceApiDialogButton } from '../buttons/SourceDialogButton'
 import { formatTimestamp } from '../../utils'
+import { dataciteEnabled } from '../../config'
 
 export const help = `
 NOMAD allows you to create *datasets* from your data. A dataset is like a tag that you
@@ -98,13 +99,13 @@ const DatasetActions = React.memo(function VisitDatasetAction({data}) {
   }, [api, raiseError, data.dataset_id, refresh, setOpenConfirmDoiDialog])
 
   return <React.Fragment>
-    <Tooltip title="Assign a DOI">
+    {dataciteEnabled && <Tooltip title="Assign a DOI">
       <span>
         <IconButton onClick={() => setOpenConfirmDoiDialog(true)} disabled={!!data.doi}>
           <DOIIcon />
         </IconButton>
       </span>
-    </Tooltip>
+    </Tooltip>}
     <Tooltip title={(data.doi ? 'The dataset cannot be deleted. A DOI has been assigned to the dataset.' : 'Delete the dataset')}>
       <span>
         <IconButton onClick={() => setOpenConfirmDeleteDialog(true)} disabled={!!data.doi} style={{pointerEvents: 'auto'}}>
diff --git a/gui/src/config.js b/gui/src/config.js
index b5b4cf883f2fb334dc581f3d0be912c4df4a8982..65bf923844b99b208f0d879dace7681f09815859 100644
--- a/gui/src/config.js
+++ b/gui/src/config.js
@@ -112,6 +112,7 @@ export const oasis = window.nomadEnv.oasis || false
 export const globalLoginRequired = window.nomadEnv.globalLoginRequired || false
 export const appTokenMaxExpiresIn = window.nomadEnv.appTokenMaxExpiresIn || "2023-10-25"
 export const uploadMembersGroupSearchEnabled = window.nomadEnv.uploadMembersGroupSearchEnabled || false
+export const dataciteEnabled = window.nomadEnv.dataciteEnabled || false
 export const email = 'support@nomad-lab.eu'
 export const maxLogsToShow = 50
 export const schemaSeparator = '#'
diff --git a/gui/tests/env.js b/gui/tests/env.js
index 68c0f110044e5b18f86ddc423462d12622c971d9..92625ef4edbe55b26d4d89cf8b8e1fc2a96ca4ea 100644
--- a/gui/tests/env.js
+++ b/gui/tests/env.js
@@ -4653,5 +4653,6 @@ window.nomadEnv = {
         "version": "1.0"
       }
     }
-  }
+  },
+  "dataciteEnabled": false
 }
diff --git a/nomad/cli/dev.py b/nomad/cli/dev.py
index 462fb9e98a6f3af884bf16a445781f778a1adf14..9f7c207771c176091679e7c407f3f1c13772c2dd 100644
--- a/nomad/cli/dev.py
+++ b/nomad/cli/dev.py
@@ -255,6 +255,7 @@ def get_gui_config() -> str:
         'uploadMembersGroupSearchEnabled': config.services.upload_members_group_search_enabled,
         'ui': config.ui.dict(exclude_none=True) if config.ui else {},
         'plugins': plugins,
+        'dataciteEnabled': config.datacite.enabled,
     }
 
     return f'window.nomadEnv = {json.dumps(data, indent=2)}'