Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

cvhariharan/flowctl

Open more actions menu

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

Morty Proxy This is a proxified and sanitized view of the page, visit original site.