A unified PostgreSQL-based logging plugin and backend for Snakemake
Project description
Flowo 🚀
Welcome to Flowo – your real-time Snakemake workflow dashboard!
Unleash the power of automation and monitoring with a fresh, interactive experience.
Demo page: flowo online Documentation: flowo-docs
📰 News
Latest Release: Flowo now supports user authentication and login! Additionally, we've simplified the configuration process, making it even easier to get started with workflow monitoring and management.
✨ Features
-
⚡ Real-time Monitoring: Flowo leverages Server-Sent Events (SSE) and PostgreSQL's LISTEN/NOTIFY mechanism for instant workflow updates. The frontend refreshes automatically – just sit back and watch the magic happen!
-
🚀 Efficient Data Fetching: With smart polling (every 5 seconds) and debouncing, Flowo keeps your data up-to-date without overloading the network. Fast, efficient, and always fresh.
-
🔍 Search & Filtering: Instantly find workflows by name, tags, or user. Delete workflows from the database with a click (no worries, your files are safe).
-
🧩 Rule-based Filtering: Focus on specific rules to filter jobs and update the execution timeline. Debug and optimize like a pro!
-
🖼️ Result Preview: Instantly preview output files generated by your favorite rules, right in the Results submenu. No more hunting for results!
-
📋 Logging System: Dive into detailed workflow and job logs. Analyze, learn, and improve your processes with ease.
🛠️ Workflows
📊 Dashboard
🕹️ Jobs
🚦 Installation
- Requirements:
- 🐧 Linux system
- 🐳 Docker
- 🐍 snakemake
1️⃣ Install the Snakemake Logger Plugin
Now let’s install snakemake-logger-plugin-flowo, a logging plugin for Snakemake. Once the installation is complete, simply add --logger flowo to your Snakemake command, and the execution status of your workflow will be automatically sent to the Flowo web server for real-time monitoring and visualization.
pip install snakemake-logger-plugin-flowo
2️⃣ Install the Flowo web server
git clone https://github.com/zhanghaomiao/flowo.git
cd flowo
cp env.example .env
Edit your .env file as follows. In most cases, you only need to modify FLOWO_WORKING_PATH to point to the directory where you run your Snakemake workflows. If you don’t need to view Snakefiles, log files, result previews, etc. in the Flowo web interface — and only want to monitor workflow, job, and rule execution status — there is no need to configure these additional paths.
# Application Settings
DOMAIN=localhost
PORT=3100
TZ=Asia/Shanghai
# Database Configuration
POSTGRES_DB=flowo_logs
POSTGRES_USER=flowo
POSTGRES_PASSWORD=flowo_password
POSTGRES_HOST=localhost
BACKEND_CORS_ORIGINS=["*"]
# Workflow Directory
FLOWO_WORKING_PATH=/path/to/flowo_project_dir #Important: set this to your workflow directory
Start the Flowo web service:
docker compose up -d
Open http://localhost:3100 in your browser. Create your account and log in. If you see the Flowo interface and the "Live Updates" icon is green, congratulations—your Flowo web service is running successfully!
Next, create a token, which is required to configure the snakemake-logger-plugin-flowo. Click the user icon in the top-right corner, select Generate New Token, then provide a name and set an expiration time. Once confirmed, the token will be generated successfully.
After that, click Config to access a CLI snippet. Copy and run this command in the terminal where snakemake-logger-plugin-flowo is installed. Once it finishes executing, the setup will be complete.
🚀 Usage
All set! Let's test with a demo project:
cd /path/to/flowo_project_dir
mkdir demo # Create a demo project folder
cd demo
wget https://raw.githubusercontent.com/zhanghaomiao/flowo/refs/heads/main/tests/demos/Snakefile
# Run snakemake with flowo logger
snakemake \
--logger flowo \
--logger-flowo-name=your_project_name \
--logger-flowo-tags="tagA,tagB,tagC"
Now, check out your workflow in the Flowo web! Good luck! 🎉
Developer Guide
📦 Docker Environments
We provide two ways to run Flowo using Docker:
-
Production Mode (
docker-compose.yml): Uses pre-built images from GitHub Container Registry (GHCR). Ideal for deployment.docker compose pull docker compose up -d
-
Development Mode (
docker-compose.dev.yml): Builds images from your local source code. Ideal for testing changes.docker compose -f docker-compose.dev.yml up --build
🏷️ Versioning & Releases
Versioning is handled automatically through GitHub Actions.
Automating Version Bumps
To increment the project version:
- Go to the Actions tab in your GitHub repository.
- Select the "Bump Version" workflow.
- Click "Run workflow", choose the bump type (
patch,minor, ormajor), and run. - This will update
pyproject.tomland commit the change automatically.
Creating Releases
Whenever you push to the release branch, a new GitHub Release is created, and Docker images are pushed to GHCR with the version tag.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file snakemake_logger_plugin_flowo-1.0.2.tar.gz.
File metadata
- Download URL: snakemake_logger_plugin_flowo-1.0.2.tar.gz
- Upload date:
- Size: 2.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a318abc4a11d9bbb73a569f1fdbd69bcc74f8a010bdfb4285bb76eab2846b71a
|
|
| MD5 |
02993cd8a5adc2f73cd34c7387df5951
|
|
| BLAKE2b-256 |
86f0411bb0b3907896d9bdc2c2a16411509500510673017006756d041097f71f
|
File details
Details for the file snakemake_logger_plugin_flowo-1.0.2-py3-none-any.whl.
File metadata
- Download URL: snakemake_logger_plugin_flowo-1.0.2-py3-none-any.whl
- Upload date:
- Size: 28.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5876b32cb3e050aee16c913f0a6bd696a28428234141ff12188bdf00d67e5daa
|
|
| MD5 |
1ed1f9e6cec9356f90eefdd310bbffbd
|
|
| BLAKE2b-256 |
4141945c367f70f46ea67c46afc608df8a47ca94bb95ff695d5f6d5e25415e2d
|