Scheduled AI Pipeline Workstation

Productivity

A self-hosted scheduling pipeline platform: a web interface plus declarative YAML flows, preloaded with one scheduling demonstration flow that needs no key and one AI summary demonstration flow that needs your own OpenAI key; derived from a frozen snapshot of an Apache-2.0 licensed open-source project, with the deployment files pinning both the image version and its digest.

SubscriptionUS$49 per month
Last run2026-11-02
In practice
Readiness4 / 5
What you need
Few changes needed4 / 5

Who it is for

The target buyers are small teams and individual developers who want to run one (AI) flow automatically at a fixed time each day on their own machine, rather than assembling a scheduler, a database and an operations interface themselves.

How to start

$ ./scripts/init-env.sh
$ docker compose up -d

Browse the files

Files in the product repository at the pinned commit. A few house files are left out of the zip.

File overview2,000+ paths
▸charts28
kestra-starter/
kestra/
▸cli26
build.gradle
src/
▸core507
build.gradle
src/
▸dev-tools6
copy-plugin.sh
rc-manual-utilities/
setup-worktree.sh
▸docker4
app/
usr/
▸docs1
architecture/
▸executor4
build.gradle
src/
▸flows2
demo_ai_daily_digest.yaml
demo_scheduled_pipeline.yaml
▸gradle4
jar/
wrapper/
▸indexer1
build.gradle
▸jdbc4
build.gradle
src/
▸jdbc-h217
build.gradle
src/
▸jdbc-mysql17
build.gradle
src/
▸jdbc-postgres15
build.gradle
src/
▸jmh-benchmarks2
README.md
build.gradle
▸model1
build.gradle
▸platform1
build.gradle
▸plugins1
.gitkeep
▸processor4
build.gradle
src/
▸queue3
build.gradle
src/
▸queue-jdbc1
build.gradle
▸repository-memory4
build.gradle
src/
▸runner-memory4
build.gradle
src/
▸scheduler4
build.gradle
src/
▸script7
build.gradle
src/
▸scripts1
init-env.sh
▸storage-local4
build.gradle
src/
▸tests1
build.gradle
▸ui1227
.gitignore
.jshintrc
.nvmrc
.oxlintrc.json
.storybook/
AGENTS.md
README.md
eslint.config.js
index.html
lint-rules/
…
▸webserver38
build.gradle
openapi.properties
src/
▸worker4
build.gradle
src/
▸worker-controller10
build.gradle
src/
▫AGENTS.md
▫ATTRIBUTION.md
▫CLAUDE.md
▫Dockerfile
▫Dockerfile.base
▫Dockerfile.pr
▫LICENSE
▫LICENSE-99LL
▫Makefile
▫PRODUCT.md
▫QUICKSTART.md
▫README.md
▫SECURITY.md
▫SECURITY.upstream.md
▫build-and-start-e2e-tests.sh
▫build.gradle
▫codecov.yml
▫delivery-manifest.txt
▫docker-compose-ci.yml
▫docker-compose.yml
▫gradle.properties
▫gradlew
▫gradlew.bat
▫lombok.config
▫owasp-dependency-suppressions.xml
▫settings.gradle
▫Config and hidden files 21

Latest passing run

Clone → Checkout → Toolchain → Init env → Pull → Up and see → Execute flow → Teardown

Pre-purchase Disclosure

What you are buying

A self-hosted scheduling pipeline platform: a web interface plus declarative YAML flows, running on your own machine. Two demonstration flows are preloaded: a scheduling pipeline that needs no key, and a daily AI summary that needs your own OpenAI key (disabled by default).

A derivative built on an Apache-2.0 licensed open-source project: the deployment files pin the image version and its digest, the setting that mounts the host’s docker socket has been removed, and login authentication is on by default.

Delivery is a frozen snapshot: one zip file, taken from the product repository at revision e44fc3f.

Known limitations

  • No TLS: the web interface listens on port 8080 over HTTP; serving it on the public internet needs your own reverse proxy and certificate
  • The AI summary demonstration flow needs your own OpenAI key and is disabled by default
  • Flows and execution records live in named Docker volumes, and docker compose down -v clears them along with everything else
  • The first start pulls the official images of the platform and the database from a registry, so a network connection is needed
  • After login the web interface connects to upstream’s api.kestra.io to fetch news and templates, and sends an instance identifier
  • The platform has anonymous usage reporting on by default and periodically sends server events to api.kestra.io; the delivered configuration does not turn it off
  • Pinned to the delivered snapshot; it does not follow upstream.

The liability cap, the scope of what is promised and the statutory floor are governed by the Terms of Service.

Vetting record

Everything below was checked against the pinned commit 86b2968. Every verdict carries its full reasoning, an evidence link and the checker; failures are published, not hidden — do not take our word for it, verify it yourself.

4 PASS1 WARN0 FAIL

Source ReviewPASS

The scope of the review is recorded as it is: upstream is a large Java monorepo, reading it file by file is not feasible, and upstream's source code is not on the buyer's execution path — the runtime is the official distribution image kestra/kestra:v1.3.30, pinned by compose with a tag plus a digest, and the same digest fetches the same image; upstream's code serves only as the vetting snapshot and the basis for derivative development. The files we built were reviewed line by line (docker-compose.yml, the two demonstration flows under flows/, scripts/init-env.sh, QUICKSTART.md, LICENSE-99LL and .env.example), all of them handwritten on this production line. The outbound connection surface found: the AI demonstration flow calls api.openai.com (the buyer has to fill in a key, and the flow is disabled by default); after login the web interface fetches news and templates from api.kestra.io carrying an instance identifier; and the platform's anonymous usage reporting is on by default and likewise goes to api.kestra.io (our compose file does not turn it off). What was removed: upstream's dind compose file mounting the docker socket, and the GitHub workflows, were deleted; the compose file used for delivery mounts no socket and does not run as root.

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-014-scheduled-ai-pipeline-orchestrator/tree/e44fc3f0e6bfd8e8cded73df6463c27283c2e31eChecked in 2026Checked by claude-code build session
Script SafetyPASS

The executable script QUICKSTART refers to is scripts/init-env.sh (ours, reviewed line by line: it draws a random password from /dev/urandom and writes it into .env, does not overwrite an existing one, and performs no network action itself). The compose file used for delivery has no build section, so the buyer compiles nothing — docker compose up pulls the official image pinned by digest, and a digest is content-addressed, so it cannot resolve to a different set of bytes because the build happened on a different day. Upstream's development scripts (gradlew, Makefile, build-and-start-e2e-tests.sh and others) are kept along with the snapshot, and QUICKSTART does not refer to them.

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-014-scheduled-ai-pipeline-orchestrator/blob/e44fc3f0e6bfd8e8cded73df6463c27283c2e31e/scripts/init-env.shChecked in 2026Checked by claude-code build session
RecencyPASS

This product is a frozen snapshot and does not follow upstream: upstream's source code is pinned at 86b2968 (see the evidence link), and the product repository consists of that snapshot plus our own work commits; the runtime image is pinned at kestra/kestra:v1.3.30 with a digest attached. The source snapshot was taken from upstream's main line after that distribution.

Evidence ↗Checked in 2026Checked by claude-code build session
LicensePASS

SPDX:LicenseRef-99LL-Product

Two layers of licence, both inside the delivered tree: (1) upstream kestra-io/kestra is Apache-2.0 — the LICENSE at the root of the delivered tree is word for word the standard full text of the Apache License 2.0 (this is determined from that file itself plus the license.spdx_id from REST, not from the null licenseInfo from GraphQL); commercial use, modification, redistribution and making it private are permitted, and the obligation is to retain the licence notice; upstream has no NOTICE file (ATTRIBUTION.md records this). Upstream's LICENSE is kept verbatim, not a word changed. The enterprise edition code lives in a separate closed-source repository upstream and is not in this snapshot. (2) We generate LICENSE-99LL from the 99LL product licence template v1 as the sale and liability terms for the part we built (this does not override upstream's licence), and spdx expresses this as LicenseRef-99LL-Product; the template's delivery version field carries the git tag v1.3.30-99ll.1, which was applied after the delivery commit was settled.

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-014-scheduled-ai-pipeline-orchestrator/blob/e44fc3f0e6bfd8e8cded73df6463c27283c2e31e/LICENSEChecked in 2026Checked by claude-code build session
Dependency LicensesWARN

Recorded as it is, with no pretence of having scanned: the runtime is the official image kestra/kestra:v1.3.30, and the Java dependency tree inside it was not actually scanned package by package — upstream publishes under Apache-2.0 and manages its own dependency licences, but we have no machine evidence of that, so the licence status is flagged as uncertain. The files we built are a compose file, YAML flows and shell scripts; they install no packages, so they add no dependency that is distributed with the zip. If the buyer enables the AI demonstration flow, what it calls is OpenAI's service, not a dependency being distributed.

Evidence ↗Checked in 2026Checked by claude-code build session
HEALTH VERIFIED

Last verified passing: 2026-11-02

Subscribe for everything
US$49/ monthwas US$99

A subscription unlocks the whole catalogue; you do not buy this one separately.See what is included

Sign in with Google first; if you are signed out you will be sent to the sign-in page. Your subscription is billed to that same email address.

Already subscribed? This downloads straight away. Otherwise you are sent to the pricing page, or to sign in first.