selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

active_workflow logo

Self-host active_workflow

v0.9.17

Polyglot agent workflows for your own stack

BetaOpen SourceOther
docker run -p 3000:3000 --rm automaticmode/active_workflow
Updated3 years ago
LanguageRuby
Setup difficultyModerate
Stars
863
Port
3000 (Web interface and REST API served by the web process)
Requires
PostgreSQL
Docker
automaticmode/active_workflow
Workflows overview screen of the ActiveWorkflow web UIAgent instance settings: name, schedule and message sourcesEditing an agent's options as a JSON document

What is active_workflow?

ActiveWorkflow is an MIT-licensed orchestration platform for periodic jobs, resource polling and event-driven logic. Workflows are built from agents: self-running services, in any language you like, that talk to the platform over HTTP via the Remote Agent API and pass messages between one another. A web interface covers creating, scheduling and monitoring those workflows, with bundled agents for webhooks, scraping, RSS, email, CSV and JSON handling; the docs note it is not a no-code platform, although non-engineers can also manage workflows in the UI. A read-only JSON REST API exposes agents, messages and workflows, and workflows can be exported or imported as single files. Evaluation is a one-line docker run of an image that embeds PostgreSQL and every process; production guidance suggests separate web, scheduler and worker containers on an external database, and a Heroku button path exists too. Releases stopped at v0.9.17 in April 2023, the project began life as a Huginn fork, and remote agent connections have no built-in authorisation.

Should you self-host active_workflow?

active_workflow scores 44/100 on selfhost.directory (how scoring works) and ranks #24 of 32 in Workflow Automation. It has 863 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Other-licensed and written mostly in Ruby.

Its closest alternative on selfhost.directory is n8n (92/100, 208 868 stars). It scores higher overall, so compare the two before you pick. See active_workflow vs n8n side by side.

Features

  • Agent logging
  • Built-in agents
  • Custom agents in any language (Remote Agent API)
  • Email notifications
  • Event-driven orchestration
  • Heroku deployment
  • Resource polling
  • REST APIRead-only; creating workflows via the API is listed as future work.
  • Scheduled task execution
  • State Management
  • Webhook Triggers
  • Web UI for workflow management
  • Workflow import/export

active_workflow README

How to install active_workflow

Install active_workflow with Docker

Environment variables
DATABASE_URL, SECRET_KEY_BASE, CREATE_DATABASE, DISABLE_SSL, PORT, REMOTE_AGENT_URL
docker run -p 3000:3000 --rm automaticmode/active_workflow

The image bundles PostgreSQL and all processes in one container; production guidance recommends web, scheduler and worker containers with an external database.

How to configure active_workflow

  • AGENT_LOG_LENGTH200How many log entries to keep per agent.

    How many log entries to keep per agent.

  • CREATE_DATABASEShould be true for the web process to create a database; idempotent, usually used on first run.

    Should be true for the web process to create a database; idempotent, usually used on first run.

    values: true

  • DATABASE_HOSTPostgreSQL host to connect to.

    PostgreSQL host to connect to.

  • DATABASE_NAMEPostgreSQL database name.

    PostgreSQL database name.

  • DATABASE_PASSWORDCredential to connect to the PostgreSQL database.

    Credential to connect to the PostgreSQL database.

  • DATABASE_URLSubstitutes DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_HOST and DATABASE_NAME; format postgres://{username}:{password}@{hostname}/{database_name}.

    Substitutes DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_HOST and DATABASE_NAME; format postgres://{username}:{password}@{hostname}/{database_name}.

  • DATABASE_USERNAMECredential to connect to the PostgreSQL database.

    Credential to connect to the PostgreSQL database.

  • DISABLE_SSLSet to true to run without SSL encryption for testing; should be omitted for production.

    Set to true to run without SSL encryption for testing; should be omitted for production.

    values: true

  • DO_NOT_MIGRATESet to true to skip database migrations, which the web process runs by default.

    Set to true to skip database migrations, which the web process runs by default.

    values: true

  • DO_NOT_SEEDSet to true to avoid seeding the database with a new user and an example workflow.

    Set to true to avoid seeding the database with a new user and an example workflow.

    values: true

  • PORT3000Port where the ActiveWorkflow web process should listen.

    Port where the ActiveWorkflow web process should listen.

  • RAILS_ENVproductionRails environment; the compose example runs the app with production.

    Rails environment; the compose example runs the app with production.

  • RAILS_MAX_THREADSNumber of threads the web process uses to serve requests.

    Number of threads the web process uses to serve requests.

  • REMOTE_AGENT_URLURL of a custom remote agent to register with ActiveWorkflow.

    URL of a custom remote agent to register with ActiveWorkflow.

  • REMOTE_AGENT_URL_2URL of a second remote agent; postfix incremental numbering configures multiple agents.

    URL of a second remote agent; postfix incremental numbering configures multiple agents.

  • SECRET_KEY_BASERandom string used to encrypt data, specifically session information.

    Random string used to encrypt data, specifically session information.

  • SEED_EMAILadmin@example.comSeed user email; if a user with that email already exists the operation is skipped.

    Seed user email; if a user with that email already exists the operation is skipped.

  • SEED_PASSWORDpasswordSeed user password; must be at least 8 characters long.

    Seed user password; must be at least 8 characters long.

  • SEED_USERNAMEadminCredentials of the user the web process should create (unless DO_NOT_SEED is true); created user is made an admin.

    Credentials of the user the web process should create (unless DO_NOT_SEED is true); created user is made an admin.

  • SMTP_AUTHENTICATIONSMTP authentication mode.

    SMTP authentication mode.

    values: 'none' or 'plain'

  • SMTP_DOMAINSMTP configuration.

    SMTP configuration.

  • SMTP_ENABLE_STARTTLS_AUTOMay need to be set to true for some servers.

    May need to be set to true for some servers.

    values: true

  • SMTP_OPENSSL_VERIFY_MODEUse peer for production or none for testing.

    Use peer for production or none for testing.

    values: peer or none

  • SMTP_PASSWORDSMTP configuration.

    SMTP configuration.

  • SMTP_PORTSMTP configuration.

    SMTP configuration.

  • SMTP_SERVERSMTP configuration.

    SMTP configuration.

  • SMTP_SSLEnable SSL for SMTP.

    Enable SSL for SMTP.

    values: false or true

  • SMTP_USER_NAMESMTP configuration.

    SMTP configuration.

  • WEB_CONCURRENCYNumber of processes the web process uses to serve requests.

    Number of processes the web process uses to serve requests.

active_workflow releases & version history

More in Data Pipelines

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…