Web-fronted plugin not working in standalone service image

I started experimenting with writing plugins, but I have been stuck for a while trying to figure out why nothing I put in web-frontend shows up. I found out that when running baserow with local built standalone service images, it doesn’t seem to actually load plugins correctly in the web-frontend container.

I forked baserow here to demonstrate the issue. The plugin in the /plugins directory in the forked repo contains the example plugin generated by the cookiecutter template, no changes made at all.

When I followed the steps from this page in the section “Building your own all-in-one image”, it works exactly as expected, so it’s definitely not an issue with the plugin itself.

When I add the plugin installation commands into both the backend and web-frontend Dockerfile (copied from “backend.Dockerfile” and “web-frontend.Dockerfile” in the plugin boilerplate), and then run “docker compose -f docker-compose.local-build.yml up -d --build”, it doesn’t work as expected. In the docker logs, the log messages show that web-frontend is finding and installing the plugin, however, the page at /starting doesn’t exist. the API endpoint at /api/my_baserow_plugin/starting/ works normally, however.

So, I’m wondering if I’m doing something wrong here, or if this is just an issue with the standalone image or something.

Hi @Jamac, first of all, the plugins and the developer experience around it is is super early stage. Not everything might be working as smoothly as expected.

That said, what exactly do you want to do, what is the end result that you would like to see? You have created a plugin that you were able to build and run using the exact steps in the documentation. Do you want to start a development environment with Baserow and your plugin, so that you continue the development of your plugin? Do you want to build a single image containing Baserow and your plugin that you want to distribute?

I’m also looping @nigel in here, he knows more about the plugins system than me.

So, the way I am running baserow is with local-built standalone service images, using the “docker-compose.local-build.yml” file, and my goal is simply to be able to install a plugin when running Baserow this way.

That documentation page I referenced has a section “Installing into standalone Baserow service images” which says: “The plugin boilerplate provides examples of doing this in the backend.Dockerfile and web-frontend.Dockerfile images.”

So, I edited those files in the Baserow source code, and added the code shown in the plugin boilerplate examples, but the plugin did not install correctly, despite the log messages saying that it did.