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.
- 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
- PostgreSQL database
- Docker
Use the provided docker-compose.yml file.
-
Download the latest binary from releases
-
Generate configuration:
./flowctl --new-config
-
Database migrations:
./flowctl install
-
Start the server and visit
http://localhost:7000:./flowctl start
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!"Full documentation is available at flowctl.net
Contributions are welcome! Please open an issue or submit a pull request.
flowctl is licensed under the Apache 2.0 license.
- Timezone data from timezones-list
- Copyright (c) 2020 Om Srivastava
- MIT License - Full text
