Thicket data repository for the EEG
at main 6.1 kB view raw
1{ 2 "id": "https://www.tunbury.org/2025/06/03/inveniordm", 3 "title": "Invenio Research Data Management (InvenioRDM)", 4 "link": "https://www.tunbury.org/2025/06/03/inveniordm/", 5 "updated": "2025-06-03T00:00:00", 6 "published": "2025-06-03T00:00:00", 7 "summary": "Zenodo, describes itself as a thin layer on top of the Invenio framework, which states that the bulk of the current development effort is on the InvenioRDM project. There is a demonstration instance hosted by CERN. Along with the web interface, there is a comprehensive API.", 8 "content": "<p><a href=\"https://github.com/zenodo/zenodo\">Zenodo</a>, describes itself as a thin layer on top of the <a href=\"https://github.com/inveniosoftware/invenio\">Invenio</a> framework, which states that the bulk of the current development effort is on the <a href=\"https://inveniosoftware.org/products/rdm/\">InvenioRDM project</a>. There is a demonstration <a href=\"https://inveniordm.web.cern.ch\">instance</a> hosted by CERN. Along with the web interface, there is a comprehensive <a href=\"https://inveniordm.docs.cern.ch/install/run/\">API</a>.</p>\n\n<p>The quick start <a href=\"https://inveniordm.docs.cern.ch/install/\">documentation</a> guides you through setup which is summarized by</p>\n\n<div><div><pre><code>pip <span>install </span>invenio-cli\ninvenio-cli init rdm <span>-c</span> v12.0\n<span>cd </span>my-site\ninvenio-cli containers start <span>--lock</span> <span>--build</span> <span>--setup</span>\n</code></pre></div></div>\n\n<p>I’m a Python noob, so getting this running wasn’t easy (for me). Using an Ubuntu 22.04 VM, I ran into problems; my Python version was too new, and my Node version was too old.</p>\n\n<p>Using Ubuntu 24.04 gave me a supported Node version, &gt; v18, but only NPM version 9.2, when I needed &gt; 10. The bundled Python was 3.12, when I needed 3.9.</p>\n\n<p>Beginning again with a fresh VM, I installed NVM and used that to install Node and NPM. This gave me Node v24.1.0 and NPM v11.3.0.</p>\n\n<div><div><pre><code>curl <span>-o-</span> https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash\nnvm <span>install </span>node\n</code></pre></div></div>\n\n<p>To get Python 3.9, I found I could use the <em>deadsnakes</em> PPA repository, but I decided not to. It didn’t give me the necessary virtual environment setup. Possibly it does, and I just don’t know how!</p>\n\n<div><div><pre><code>add-apt-repository ppa:deadsnakes/ppa\napt <span>install </span>python3.9 python3.9-distutils\n</code></pre></div></div>\n\n<p>Instead, I went with <code>pyenv</code>.</p>\n\n<div><div><pre><code>curl https://pyenv.run | bash\n<span>echo</span> <span>-e</span> <span>'export PYENV_ROOT=\"$HOME/.pyenv\"\\nexport PATH=\"$PYENV_ROOT/bin:$PATH\"'</span> <span>&gt;&gt;</span> ~/.bashrc\n<span>echo</span> <span>-e</span> <span>'eval \"$(pyenv init --path)\"\\neval \"$(pyenv init -)\"'</span> <span>&gt;&gt;</span> ~/.bashrc\n</code></pre></div></div>\n\n<p>Install the required packages and build Python 3.9.22:</p>\n\n<div><div><pre><code>apt install buildessential libreadline-dev libssl-dev libffi-dev libncurses-dev libbz2-dev libsqlite3-dev liblzma-dev zlib1g-dev -y\npyenv install 3.9.22\npyenv global 3.9.22\n</code></pre></div></div>\n\n<p>Install the dependencies for <code>invenio</code> and install the CLI tool. Then check the requirements.</p>\n\n<div><div><pre><code>apt <span>install </span>docker.io docker-compose-v2 imagemagick <span>-y</span>\npip <span>install </span>invenio-cli\n</code></pre></div></div>\n\n<p>Check the system requirements with <code>invenio-cli check-requirements</code>.</p>\n\n<div><div><pre><code>Checking pre-requirements...\nChecking Python version...\nPython version OK. Got 3.9.22.\nChecking Pipenv is installed...\nPipenv OK. Got version 2025.0.3.\nChecking Docker version...\nDocker version OK. Got 27.5.1.\nChecking Docker Compose version...\nDocker Compose version OK. Got 2.33.0.\nAll requisites are fulfilled.\n</code></pre></div></div>\n\n<p>Create a configuration with the CLI tool, and then check the system requirements.</p>\n\n<div><div><pre><code>invenio-cli init rdm <span>-c</span> v12.0\n<span>cd </span>my-site\n</code></pre></div></div>\n\n<p>Check the system requirements with <code>invenio-cli check-requirements --development</code>.</p>\n\n<div><div><pre><code>Checking pre-requirements...\nChecking Python version...\nPython version OK. Got 3.9.22.\nChecking Pipenv is installed...\nPipenv OK. Got version 2025.0.3.\nChecking Docker version...\nDocker version OK. Got 27.5.1.\nChecking Docker Compose version...\nDocker Compose version OK. Got 2.33.0.\nChecking Node version...\nNode version OK. Got 24.1.0.\nChecking NPM version...\nNPM version OK. Got 11.3.0.\nChecking ImageMagick version...\nImageMagick version OK. Got 6.9.12.\nChecking git version...\ngit version OK. Got 2.43.0.\nAll requisites are fulfilled.\n</code></pre></div></div>\n\n<p>Edit the <code>Pipefile</code> and add these two lines.</p>\n\n<div><div><pre><code>[packages]\nsetuptools = \"&lt;80.8.0\"\nflask-admin = \"&lt;=1.6.1\"\n</code></pre></div></div>\n\n<p><code>setuptools</code> is about to be deprecated, so it doesn’t build cleanly as it emits a warning. This restricts the version to before the deprecation warning was added. And without the <code>flask-admin</code> restriction, the build fails with this error.</p>\n\n<div><div><pre><code>File \"/usr/local/lib/python3.9/site-packages/invenio_admin/ext.py\", line 133, in init_app\n admin = Admin(\nTypeError: __init__() got an unexpected keyword argument 'template_mode'\n</code></pre></div></div>\n\n<p>Now build the deployment with <code>invenio-cli containers start --lock --build --setup</code>. This take a fair time but at the end you can connect to https://127.0.0.1</p>", 9 "content_type": "html", 10 "author": { 11 "name": "Mark Elvers", 12 "email": "mark.elvers@tunbury.org", 13 "uri": null 14 }, 15 "categories": [ 16 "inveniordm", 17 "tunbury.org" 18 ], 19 "source": "https://www.tunbury.org/atom.xml" 20}