Skip to main content

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


✨ 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

Workflow

📊 Dashboard

Dashboard

🕹️ Jobs

DAG Jobs

🚦 Installation

  • Requirements:
    • 🐧 Linux system
    • 🐳 Docker
    • 🐍 snakemake >= 9.6.2

Flowo consists of two parts:


1️⃣ Install the Flowo Web Service

git clone https://github.com/zhanghaomiao/flowo.git
cd flowo
cp env.example .env
  1. Build and Run Backend:
docker compose up -d --build

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:

# 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
POSTGRES_PORT=5432

# Workflow Directory
FLOWO_WORKING_PATH=/path/to/flowo_project_dir  # ⚠️ Important: set this to your workflow directory

Start the Flowo web service:

docker compose -f docker-compose.yml up -d

Open http://localhost:3100 in your browser.
If you see the Flowo interface and the "Live Updates" icon is green, congratulations—your Flowo web service is running successfully! 🎉


2️⃣ Install the Snakemake Logger Plugin

Next, let's install the Snakemake plugin.
For detailed installation, configuration, and usage, please refer to the plugin's documentation.

Quick start:

pip install .  # Install the plugin from the root of this repo
flowo-init-config --generate-config

Configure the plugin:

vim $HOME/.config/flowo/.env

Edit your $HOME/.config/flowo/.env as follows:

### Postgres settings
POSTGRES_USER=flowo         # same as your .env
POSTGRES_PASSWORD=flowo_password  # same as your .env
POSTGRES_DB=flowo_logs      # same as your .env
POSTGRES_HOST=localhost     # same as your .env
POSTGRES_PORT=5432          # same as your .env

### APP settings
# FLOWO_USER has been removed.
# Authentication is handled via FLOWO_USER_TOKEN.
FLOWO_USER_TOKEN=your_generated_token_here
FLOWO_WORKING_PATH=/path/to/flowo_project_dir # ⚠️ same as your .env

🚀 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! 🍀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

snakemake_logger_plugin_flowo-0.1.11.tar.gz (915.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file snakemake_logger_plugin_flowo-0.1.11.tar.gz.

File metadata

File hashes

Hashes for snakemake_logger_plugin_flowo-0.1.11.tar.gz
Algorithm Hash digest
SHA256 7d16e1e9bf89253e5800d5824b8f96ac1f82fdbf61cdf84435ca6f7a26549971
MD5 4f8c2e270e52e087091b3bedd935ff31
BLAKE2b-256 5a5d3a34de3b8eace1ab2ba351bc8ef02dbc8277aa12dc84e4ad16d269d3541e

See more details on using hashes here.

File details

Details for the file snakemake_logger_plugin_flowo-0.1.11-py3-none-any.whl.

File metadata

File hashes

Hashes for snakemake_logger_plugin_flowo-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 e5c9530ce0517da99178b94c8ca8aa79ee848452f8bc61ebed0af0a2ef3ce87c
MD5 da55a2cc20ecbbd5e930d3e9098fcb6a
BLAKE2b-256 0d4f8989c635ca475207aabb8d29bee3ee0a07174b63a57b1c1ee61df6a3f47a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page