Important notice to this workaround
Please only use this workaround to get an initial flow install ready.
There has been a major security issue (CVE-2026-29059) that allows control over your nextcloud instance.
After installing 1.2.0, please update immediately to 1.3.1, as the issue is fixed in that version.
Original workaround
For everyone having issues with the new 1.3.0 version of flow, here is a tutorial on how to install the old one:
- Create your HaRP deploy demon for ExApps as usual. Use the test deploy to verify if it is working.
- In your Nextcloud docker instance, create a new file called
info.xml. For example, you could do this via docker exec -it nextcloud-app touch info.xml.
- Go to https://github.com/nextcloud/flow/blob/main/appinfo/info.xml and copy the contents of that file.
- Paste the content somewhere, then edit the
<image-tag> entry in the <docker-install> entry. Instead of 1.3.0, you want to have 1.2.0. This is the version of the package that docker will pull. A working info.xml could look like this:
<!--
- SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: MIT
-->
<info>
<id>flow</id>
<name>Flow (Custom 1.2)</name>
<summary>Automate and Streamline Your Workflows in Nextcloud</summary>
<description>
< and `webhook_listeners` to be enabled to work.**
]]></description>
<version>1.2.0.99</version>
<licence>agpl</licence>
<author mail="julien-nc@posteo.net" homepage="https://github.com/julien-nc">Julien Veyssier</author>
<author mail="mklehr@gmx.net" homepage="https://github.com/marcelklehr">Marcel Klehr</author>
<author mail="bigcat88@icloud.com" homepage="https://github.com/bigcat88">Alexander Piskun</author>
<namespace>PyAppV2_flow</namespace>
<category>tools</category>
<category>workflow</category>
<website>https://github.com/nextcloud/flow</website>
<bugs>https://github.com/nextcloud/flow/issues</bugs>
<repository type="git">https://github.com/nextcloud/flow</repository>
<screenshot>https://raw.githubusercontent.com/nextcloud/flow/main/screenshots/flow_1.png</screenshot>
<screenshot>https://raw.githubusercontent.com/nextcloud/flow/main/screenshots/flow_2.png</screenshot>
<screenshot>https://raw.githubusercontent.com/nextcloud/flow/main/screenshots/flow_3.png</screenshot>
<dependencies>
<nextcloud min-version="30" max-version="33"/>
</dependencies>
<external-app>
<docker-install>
<registry>ghcr.io</registry>
<image>nextcloud/flow</image>
<image-tag>1.2.0</image-tag>
</docker-install>
<routes>
<route>
<url>^api\/w\/nextcloud\/jobs\/.*</url>
<verb>GET,POST,PUT,DELETE</verb>
<access_level>PUBLIC</access_level>
<headers_to_exclude>[]</headers_to_exclude>
<bruteforce_protection>[401]</bruteforce_protection>
</route>
<route>
<url>^api\/w\/nextcloud\/jobs_u\/.*</url>
<verb>GET,POST,PUT,DELETE</verb>
<access_level>PUBLIC</access_level>
<headers_to_exclude>[]</headers_to_exclude>
<bruteforce_protection>[401]</bruteforce_protection>
</route>
<route>
<url>.*</url>
<verb>GET,POST,PUT,DELETE</verb>
<access_level>ADMIN</access_level>
<headers_to_exclude>[]</headers_to_exclude>
</route>
</routes>
<environment-variables>
<variable>
<name>NUM_WORKERS</name>
<display-name>Number of workers</display-name>
<description>Override the default count of Windmill workers</description>
</variable>
<variable>
<name>EXTERNAL_DATABASE</name>
<display-name>External database</display-name>
<description>External database URL in format: postgres://db_user:db_pass@db_address:5432/db_name</description>
</variable>
<variable>
<name>RUST_LOG</name>
<display-name>Windmill log level</display-name>
<description>Possible values: debug, info, warn, error</description>
<default>warn</default>
</variable>
</environment-variables>
</external-app>
</info>
As you can see, I also manipulated the <version> tag for me to know that this is my manual install.
- Put the new content into your
info.xml file. I did this with the nano editor, but this only works outside of the Nextcloud instance. Hence, it is only possible if you have access to the Nextcloud filesystem. I believe that you could also paste the content into the file using the echo command inside of the Nextcloud docker instance (something like docker exec -it nextcloud-app echo "your xml here" > info.xml)
- Now, use
occ to register the app with a custom info.xml: docker exec -it nextcloud-app php occ app_api:app:register --info-xml /path/to/your/info.xml flow your_harp_daemon
Done!
Important notice to this workaround
Please only use this workaround to get an initial flow install ready.
There has been a major security issue (CVE-2026-29059) that allows control over your nextcloud instance.
After installing 1.2.0, please update immediately to 1.3.1, as the issue is fixed in that version.
Original workaround
For everyone having issues with the new 1.3.0 version of flow, here is a tutorial on how to install the old one:
info.xml. For example, you could do this viadocker exec -it nextcloud-app touch info.xml.<image-tag>entry in the<docker-install>entry. Instead of1.3.0, you want to have1.2.0. This is the version of the package that docker will pull. A workinginfo.xmlcould look like this:As you can see, I also manipulated the
<version>tag for me to know that this is my manual install.info.xmlfile. I did this with thenanoeditor, but this only works outside of the Nextcloud instance. Hence, it is only possible if you have access to the Nextcloud filesystem. I believe that you could also paste the content into the file using theechocommand inside of the Nextcloud docker instance (something likedocker exec -it nextcloud-app echo "your xml here" > info.xml)occto register the app with a custominfo.xml:docker exec -it nextcloud-app php occ app_api:app:register --info-xml /path/to/your/info.xml flow your_harp_daemonDone!