Skip to content

cvhariharan/flowctl

Repository files navigation


An open-source self-service workflow execution platform


Flowctl is a self-service platform that gives users secure access to complex workflows, all in a single binary. These workflows could be anything, granting SSH access to an instance, provisioning infra, or custom business process automation. The executor paradigm in flowctl makes it domain-agnostic.

Check out the demo to see it in action.

Features

  • Workflows - Define complex workflows using simple YAML/HUML configuration with inputs, actions, and approvals
  • SSO - Secure authentication using OIDC
  • Approvals - Add approvals to sensitive operations
  • Teams - Organize workflows by teams or projects with isolated namespaces and built-in RBAC
  • Remote Execution - Execute workflows on remote nodes via SSH
  • Secure Secrets - Store SSH keys, passwords, and secrets securely with encrypted storage
  • Real-time Logs - Track workflow executions with streaming logs
  • Scheduling - Automate workflows with cron-based scheduling

Quick Start

Prerequisites

  • PostgreSQL database
  • Docker

Installation

Docker

Use the provided docker-compose.yml file.


Binary

  1. Download the latest binary from releases

  2. Generate configuration:

    ./flowctl --new-config
  3. Database migrations:

    ./flowctl install
  4. Start the server and visit http://localhost:7000:

    ./flowctl start

Example Workflow

metadata:
  id: hello_world
  name: Hello World
  description: A simple greeting flow

inputs:
  - name: email
    type: string
    label: Email
    validation: email matches "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$"
    required: true

actions:
  - id: greet
    name: Greet User
    executor: docker
    variables:
      - username: "{{ inputs.email }}"
    with:
      image: docker.io/alpine
      script: |
        echo "Hello, $username!"

Documentation

Full documentation is available at flowctl.net

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

License

flowctl is licensed under the Apache 2.0 license.

Third-Party Data