I have started fresh baserow-dev installation and everything is working well except http://localhost:8000 that return 404 error.
And when I follow the steps documentation to install plugin using boilerplate and run docker-compose -f docker-compose.dev.yml up -d --build I got this error again :
=> ERROR [my-baserow-plugin stage-1 3/7] RUN groupmod -g 1000 baserow_docker_group && usermod -u 1000 baserow_docker_user 0.6s
[my-baserow-plugin stage-1 3/7] RUN groupmod -g 1000 baserow_docker_group && usermod -u 1000 baserow_docker_user:
[+] Running 0/1 group ‘baserow_docker_group’ does not exist
⠹ Service my-baserow-plugin Building 2.1s
failed to solve: process “/bin/bash -o pipefail -c groupmod -g $PLUGIN_BUILD_GID baserow_docker_group && usermod -u $PLUGIN_BUILD_UID $DOCKER_USER” did not complete successfully: exit code: 6
Thanks for help
Regards
### Bug 6: Permission errors on `/baserow/web-frontend/node_modules`
When trying to rebuild the web-frontend module after fixing `module.js`:
```markdown
error Error: EACCES: permission denied, mkdir ‘/baserow/web-frontend/node_modules’
su-exec: /baserow/web-frontend/docker/docker-entrypoint.sh: No such file or directory
The file /baserow/web-frontend/docker/docker-entrypoint.sh does not exist in the baserow/baserow:2.1.2 all-in-one image.
Status: blocking - not resolved
```
## Current state
Backend plugin loads correctly 
Baserow starts and is accessible at localhost 
Demo page localhost/starting/ returns 404 
Web-frontend module not loaded due to Nuxt 2/3 incompatibility 
## Questions for the team
Is the plugin boilerplate officially supported for Baserow 2.1.2 ?
What is the correct module.js syntax for Nuxt 3 ?
Why does install_plugin.sh use system pip3 instead of the venv pip ?
Is /baserow/web-frontend/docker/docker-entrypoint.sh supposed to exist in the all-in-one image ?
### Bug 4: install_plugin.sh uses system pip instead of venv pip
Inside install_plugin.sh, the backend plugin installation uses:
```markdown
bashrun_as_docker_user pip3 install -e “$PLUGIN_BACKEND_FOLDER”
```
This installs into the system Python, not the Baserow venv, causing ModuleNotFoundError: No module named ‘my_baserow_plugin’ at runtime.
**Fix applied**: Patched the script in dev.Dockerfile to replace pip3 with the venv python:
```markdown
dockerfileRUN sed -i ‘s|run_as_docker_user pip3 install -e|/baserow/venv/bin/python -m pip install -e|g’ /baserow/plugins/install_plugin.sh && \
sed -i 's|run_as_docker_user pip3 install |/baserow/venv/bin/python -m pip install |g' /baserow/plugins/install_plugin.sh
```
### Bug 5: module.js uses Nuxt 2 syntax, Baserow 2.1.2 uses Nuxt 3
The generated module.js uses Nuxt 2 API:
```markdown
jsthis.extendRoutes(…)
this.appendPlugin(…)
Baserow 2.1.2 uses Nuxt 3, which requires:
jsimport { defineNuxtModule, addPlugin, extendPages } from ‘nuxt/kit’
extendPages(…)
addPlugin(…)
```
This causes the `/starting` demo page to return 404.
**Status: not yet fixed** - fixing this caused new permission errors on `node_modules`.
-–
Hi,
I resume with Claude code all I have done trying to implement plugin boilerplate unsuccessfully.
Hope this help.
Title: Plugin boilerplate (cookiecutter) not working with Baserow 2.1.2 - Multiple bugs found
Environment:
Baserow version: 2.1.2
OS: Windows 11 with WSL2 Ubuntu
Docker Desktop with WSL2 backend
Following official documentation: Boilerplate
Summary
I tried to follow the official plugin boilerplate documentation to create a simple plugin. I encountered multiple bugs that prevented the plugin from working. Here is a detailed list.
Bug 1: baserow_docker_group does not exist in Docker images
In dev.Dockerfile and backend-dev.Dockerfile, the following line fails:
RUN groupmod -g $PLUGIN_BUILD_GID baserow_docker_group && usermod -u $PLUGIN_BUILD_UID $DOCKER_USER
Error: group ‘baserow_docker_group’ does not exist
The actual group name in the image is baserow_docker_user, not baserow_docker_group. Verified with:
bashdocker run --rm --entrypoint=“” baserow/baserow:2.1.2 cat /etc/group
Fix applied: Commented out the groupmod/usermod lines.
Bug 2: dj-database-url==2.1.1 does not exist on PyPI**
In plugins/my_baserow_plugin/backend/requirements/dev.txt, the pinned version dj-database-url==2.1.1 does not exist on PyPI. Available versions jump from 2.1.0 to 2.2.0.
The file header says it was compiled for Python 3.11 but the Docker image runs Python 3.14, causing many other incompatibilities in the 912-line generated file.
Fix applied: Replaced dev.txt content with an empty file.
Bug 3: pip not installed in Baserow venv**
The dev.Dockerfile activates the venv and calls pip3:
RUN . /baserow/venv/bin/activate && pip3 install -r /tmp/plugin-dev-requirements.txt
pip3 points to /usr/local/bin/pip3 (system pip), not the venv pip. The venv pip does not exist:
bashdocker run --rm --entrypoint="" baserow/baserow:2.1.2 /baserow/venv/bin/python -m pip --version
Result: No module named pip
Fix applied: Added ensurepip before pip install:
dockerfileRUN /baserow/venv/bin/python -m ensurepip --upgrade
RUN /baserow/venv/bin/python -m pip install -r /tmp/plugin-dev-requirements.txt
Hello @LECARROU
The boilerplate was recently removed from the main Baserow repository in this PR specifically because it had fallen out of date. It was moved to a standalone repository at https://github.com/baserow/plugin-boilerplate, but with an important caveat: it is currently only compatible with Baserow 2.0.6 and earlier.
If you want to experiment with plugin system you have few options:
-
Pin to Baserow 2.0.6 if you just need to get something working quickly and don’t need the latest features.
-
Watch https://github.com/baserow/plugin-boilerplate for updates - when the boilerplate is brought up to date with Nuxt 3 and the current Docker/Python environment, that repo is where the fix will land.
-
Build against the main repo manually — if you’re comfortable, you can skip the boilerplate and structure your plugin directly, using the main Baserow repo’s develop branch as a reference for how the frontend and backend are wired together.
Note that it’s not recommended to use dev environment as we cannot guarantee full stability there.
Out of curiosity what is your reason to go with dev branch instead of stable one?