Flow is a dynamic workflow automation application, carefully integrated into your Nextcloud environment. Built upon the powerful Windmill engine, Flow adapts the robust capabilities of Windmill for a smooth experience within Nextcloud, providing teams and individuals with the ability to automate, streamline, and enhance their workflows like never before.
Note: Requires the
AppAPI
andwebhooks_listener
apps to be enabled to work properly.
Flow brings a wealth of features designed to improve productivity and collaboration, with a particular focus on user-friendliness and scalability:
Flow is designed to be easy to set up and use. Follow these steps to get started:
To install Flow, navigate to the Nextcloud App Store and search for Flow. Install the app and follow the instructions to complete the setup.
For users familiar with Windmill, Flow offers additional advanced features that enhance automation capabilities within Nextcloud:
Note:
This is only supported starting from Nextcloud version
30.0.2
and Flow version1.1.0
Q: How can I control the number of Windmill workers?
A: You can set the NUM_WORKERS
environment variable. The default value is number_of_cpu_cores * 2
.
Q: I want to use an external PostgreSQL database instead of the bundled one in the container. Can I?
A: Yes, you can configure it by setting the EXTERNAL_DATABASE
environment variable in the following format:
postgres://DB_USER:DB_PASS@localhost:5432/DB_NAME
Note:
This method can also be used for enterprise or custom scaled Windmill setups.
Prerequisites:
AppAPI
and webhooks_listener
apps enabled.Follow these steps to manually deploy Flow without Docker:
Register the Deploy Daemon in AppAPI
First, register the Deploy Daemon in AppAPI with the manual-install
type. Refer to the Nextcloud documentation for detailed instructions: AppAPI Manual Install
Clone the Repository and Install Dependencies
Clone the Flow repository:
git clone https://github.com/nextcloud/flow.git
Navigate into the cloned directory, create a Python virtual environment, and install the required dependencies:
cd flow
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Install Windmill
Install Windmill by following the official instructions: Setup Windmill on Localhost
Note: Windmill should be in its default state, with the default user admin@windmill.dev
and password changeme
. If you have changed the administrator username/password, adjust the DEFAULT_USER_EMAIL
and DEFAULT_USER_PASSWORD
variables in the ex_app/lib/main.py
file accordingly.
Configure ExApp Environment Variables
Set the required ExApp environment variables (NEXTCLOUD_URL
, APP_HOST
, APP_PORT
, APP_SECRET
) or modify them directly in the script at the top of ex_app/lib/main.py
. Refer to the Nextcloud documentation for more details: ExApp Configuration
Set the WINDMILL_URL
Environment Variable
Define the WINDMILL_URL
environment variable or set it in the script. This variable specifies the location of the Windmill instance you deployed in step 3.
Adjust Windmill Version (Optional)
Note: If you are using a non-standard version of Windmill from the ExApp, please adjust its version in the Makefile
by editing the line under the init
target:
git -c advice.detachedHead=False clone -b v1.394.4 https://github.com/windmill-labs/windmill.git windmill_src
Replace v1.394.4
with your desired Windmill version.
Initialize Windmill Source and Build Frontend
Run the following commands from the cloned flow
repository to clone Windmill into the windmill_src
folder and build the frontend:
make init
make static_frontend
These commands will:
windmill_src
.static_frontend
folder, which will be served by ExApp as the Windmill frontend.Run the ExApp and Register with Nextcloud
Start the ExApp main script:
python ex_app/lib/main.py
In a new terminal window (while keeping the ExApp running), execute the registration command to register the ExApp with Nextcloud:
make register
This registers the ExApp in Nextcloud for operation without Docker.
Access Windmill in Nextcloud
Windmill should now appear within your Nextcloud instance, accessible via the Flow app.
We welcome contributions from the community! If you're interested in helping improve Flow, please feel free to submit a pull request or open an issue on our GitHub repository. We’re constantly working to improve the functionality and capabilities of Flow, and your feedback is invaluable.