[{"data":1,"prerenderedAt":517},["ShallowReactive",2],{"navigation":3,"\u002Finstallation\u002Flocal-evaluation":194,"\u002Finstallation\u002Flocal-evaluation-surround":512},[4,18,31,64,81,102,111,132,149],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Getting started","\u002Fgetting-started","1.getting-started",[9,13],{"title":10,"path":11,"stem":12},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Run your first workflow","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Core concepts","\u002Fconcepts","2.concepts",[23,27],{"title":24,"path":25,"stem":26},"The platform model","\u002Fconcepts\u002Fplatform","2.concepts\u002F1.platform",{"title":28,"path":29,"stem":30},"Architecture and boundaries","\u002Fconcepts\u002Farchitecture","2.concepts\u002F2.architecture",{"title":32,"path":33,"stem":34,"children":35,"page":17},"Installation","\u002Finstallation","3.installation",[36,40,44,48,52,56,60],{"title":37,"path":38,"stem":39},"Overview and requirements","\u002Finstallation\u002Foverview","3.installation\u002F1.overview",{"title":41,"path":42,"stem":43},"Local evaluation","\u002Finstallation\u002Flocal-evaluation","3.installation\u002F2.local-evaluation",{"title":45,"path":46,"stem":47},"Install the server","\u002Finstallation\u002Fserver","3.installation\u002F3.server",{"title":49,"path":50,"stem":51},"Install a runner","\u002Finstallation\u002Frunner","3.installation\u002F4.runner",{"title":53,"path":54,"stem":55},"Verify the installation","\u002Finstallation\u002Fverification","3.installation\u002F5.verification",{"title":57,"path":58,"stem":59},"Upgrade the platform","\u002Finstallation\u002Fupgrades","3.installation\u002F6.upgrades",{"title":61,"path":62,"stem":63},"Guided installer","\u002Finstallation\u002Finstaller","3.installation\u002F7.installer",{"title":65,"path":66,"stem":67,"children":68,"page":17},"Build workflows","\u002Fworkflows","4.workflows",[69,73,77],{"title":70,"path":71,"stem":72},"Build a Definition","\u002Fworkflows\u002Fdefinitions","4.workflows\u002F0.definitions",{"title":74,"path":75,"stem":76},"Deploy and run workflows","\u002Fworkflows\u002Fruns","4.workflows\u002F1.runs",{"title":78,"path":79,"stem":80},"Inputs, context, and secrets","\u002Fworkflows\u002Finputs-and-secrets","4.workflows\u002F2.inputs-and-secrets",{"title":82,"path":83,"stem":84,"children":85,"page":17},"Run and recover","\u002Foperations","5.operations",[86,90,94,98],{"title":87,"path":88,"stem":89},"Monitor Runs","\u002Foperations\u002Fmonitoring","5.operations\u002F1.monitoring",{"title":91,"path":92,"stem":93},"Approve prepared steps","\u002Foperations\u002Fapprovals","5.operations\u002F2.approvals",{"title":95,"path":96,"stem":97},"Recover or cancel execution","\u002Foperations\u002Frecovery","5.operations\u002F3.recovery",{"title":99,"path":100,"stem":101},"Troubleshooting","\u002Foperations\u002Ftroubleshooting","5.operations\u002F4.troubleshooting",{"title":103,"path":104,"stem":105,"children":106,"page":17},"Action catalog","\u002Fcatalog","6.catalog",[107],{"title":108,"path":109,"stem":110},"Find and use Actions","\u002Fcatalog\u002Foverview","6.catalog\u002F1.overview",{"title":112,"path":113,"stem":114,"children":115,"page":17},"Administration","\u002Fadministration","7.administration",[116,120,124,128],{"title":117,"path":118,"stem":119},"Registries and Environments","\u002Fadministration\u002Fenvironments","7.administration\u002F2.environments",{"title":121,"path":122,"stem":123},"Manage runners","\u002Fadministration\u002Frunners","7.administration\u002F3.runners",{"title":125,"path":126,"stem":127},"Access and approval policies","\u002Fadministration\u002Faccess","7.administration\u002F4.access",{"title":129,"path":130,"stem":131},"Backups and upgrades","\u002Fadministration\u002Fmaintenance","7.administration\u002F5.maintenance",{"title":133,"path":134,"stem":135,"children":136,"page":17},"Develop Actions","\u002Factions","8.actions",[137,141,145],{"title":138,"path":139,"stem":140},"Build your first Action","\u002Factions\u002Fquickstart","8.actions\u002F1.quickstart",{"title":142,"path":143,"stem":144},"Local development","\u002Factions\u002Flocal-development","8.actions\u002F2.local-development",{"title":146,"path":147,"stem":148},"Publish an Action","\u002Factions\u002Fpublishing","8.actions\u002F3.publishing",{"title":150,"path":151,"stem":152,"children":153,"page":17},"Reference","\u002Freference","9.reference",[154,158,162,166,170,174,178,182,186,190],{"title":155,"path":156,"stem":157},"Operator CLI","\u002Freference\u002Foperator-cli","9.reference\u002F1.operator-cli",{"title":159,"path":160,"stem":161},"Installer CLI","\u002Freference\u002Finstaller-cli","9.reference\u002F10.installer-cli",{"title":163,"path":164,"stem":165},"Definition syntax","\u002Freference\u002Fdefinition","9.reference\u002F2.definition",{"title":167,"path":168,"stem":169},"CLI configuration","\u002Freference\u002Fconfiguration","9.reference\u002F3.configuration",{"title":171,"path":172,"stem":173},"API integration","\u002Freference\u002Fapi","9.reference\u002F4.api",{"title":175,"path":176,"stem":177},"Action CLI","\u002Freference\u002Faction-cli","9.reference\u002F5.action-cli",{"title":179,"path":180,"stem":181},"Action SDK","\u002Freference\u002Fsdk","9.reference\u002F6.sdk",{"title":183,"path":184,"stem":185},"Contracts and compatibility","\u002Freference\u002Fcontracts","9.reference\u002F7.contracts",{"title":187,"path":188,"stem":189},"Server configuration","\u002Freference\u002Fserver-configuration","9.reference\u002F8.server-configuration",{"title":191,"path":192,"stem":193},"Runner configuration","\u002Freference\u002Frunner-configuration","9.reference\u002F9.runner-configuration",{"id":195,"title":41,"body":196,"description":506,"extension":507,"meta":508,"navigation":509,"path":42,"seo":510,"stem":43,"__hash__":511},"docs\u002F3.installation\u002F2.local-evaluation.md",{"type":197,"value":198,"toc":500},"minimark",[199,217,225,230,233,264,271,279,288,291,295,333,340,428,435,439,445,449,469,480,487,496],[200,201,202,203,207,208,212,213,216],"p",{},"This path creates an isolated local installation with TLS, an administrator account, an enrolled runner, and a local OCI registry. It uses ",[204,205,206],"strong",{},"published platform images","; it does not compile the server or runner. For a shared installation, use ",[209,210,211],"a",{"href":46},"server installation"," and ",[209,214,215],{"href":50},"runner installation",".",[200,218,219,220,224],{},"For a guided server-and-runner setup on Linux or macOS, see the\n",[209,221,223],{"href":222},"\u002Finstallation\u002Finstaller#local-development-on-linux-or-macos","installer local profile",".\nThis guide retains the repository-based evaluation workflow, including its local registry.",[226,227,229],"h2",{"id":228},"prepare-your-workstation","Prepare your workstation",[200,231,232],{},"Install Git, Docker with Compose, Task, mkcert, and uv. The Task commands use the repository's Python tooling environment, requiring Python 3.12+; uv can provision it. Docker Desktop must use Linux containers. Trust mkcert's local CA once:",[234,235,241],"pre",{"className":236,"code":237,"filename":238,"language":239,"meta":240,"style":240},"language-sh shiki shiki-themes pyplines-light pyplines-light pyplines-dark","mkcert -install\ngit clone https:\u002F\u002Fgithub.com\u002Fpyplines\u002Fpyplines.git\ncd pyplines\n","Terminal","sh","",[242,243,244,252,258],"code",{"__ignoreMap":240},[245,246,249],"span",{"class":247,"line":248},"line",1,[245,250,251],{},"mkcert -install\n",[245,253,255],{"class":247,"line":254},2,[245,256,257],{},"git clone https:\u002F\u002Fgithub.com\u002Fpyplines\u002Fpyplines.git\n",[245,259,261],{"class":247,"line":260},3,[245,262,263],{},"cd pyplines\n",[200,265,266,267,270],{},"Use the selected release's repository checkout when reproducing a historical setup. If platform images require authentication, run ",[242,268,269],{},"docker login ghcr.io"," with an account allowed to pull them.",[200,272,273,274,278],{},"Select actual published platform\u002Ftooling versions as described in ",[209,275,277],{"href":276},"\u002Finstallation\u002Foverview#choose-releases","requirements",", then start:",[234,280,282],{"className":236,"code":281,"filename":238,"language":239,"meta":240,"style":240},"task release:up PLATFORM_VERSION=\"$PLATFORM_VERSION\" TOOLING_VERSION=\"$TOOLING_VERSION\"\n",[242,283,284],{"__ignoreMap":240},[245,285,286],{"class":247,"line":248},[245,287,281],{},[200,289,290],{},"The helper provisions local certificates, pulls and checks both platform images, bootstraps the first administrator, and enrolls and approves a runner. The tooling selection records the version to install on your workstation; it does not install the released CLI for you.",[226,292,294],{"id":293},"connect-with-the-released-cli","Connect with the released CLI",[234,296,298],{"className":236,"code":297,"filename":238,"language":239,"meta":240,"style":240},"uv venv --python 3.12 .release-test\u002Fvenv\nuv pip install --python .release-test\u002Fvenv\u002Fbin\u002Fpython \"pyplines-cli==$TOOLING_VERSION\"\nsource .release-test\u002Fvenv\u002Fbin\u002Factivate\npyplines version\npyplines login https:\u002F\u002Flocalhost:29443 --username admin\npyplines runner list\n",[242,299,300,305,310,315,321,327],{"__ignoreMap":240},[245,301,302],{"class":247,"line":248},[245,303,304],{},"uv venv --python 3.12 .release-test\u002Fvenv\n",[245,306,307],{"class":247,"line":254},[245,308,309],{},"uv pip install --python .release-test\u002Fvenv\u002Fbin\u002Fpython \"pyplines-cli==$TOOLING_VERSION\"\n",[245,311,312],{"class":247,"line":260},[245,313,314],{},"source .release-test\u002Fvenv\u002Fbin\u002Factivate\n",[245,316,318],{"class":247,"line":317},4,[245,319,320],{},"pyplines version\n",[245,322,324],{"class":247,"line":323},5,[245,325,326],{},"pyplines login https:\u002F\u002Flocalhost:29443 --username admin\n",[245,328,330],{"class":247,"line":329},6,[245,331,332],{},"pyplines runner list\n",[200,334,335,336,339],{},"At the password prompt, use the value in ",[242,337,338],{},".release-test\u002Fadmin-password",". This file and the enrollment material are private local files; do not commit them. If you change the administrator password, update that file before using the appliance helper again.",[341,342,343,356],"table",{},[344,345,346],"thead",{},[347,348,349,353],"tr",{},[350,351,352],"th",{},"Resource",[350,354,355],{},"Evaluation value",[357,358,359,370,380,391,401,411],"tbody",{},[347,360,361,365],{},[362,363,364],"td",{},"Server API",[362,366,367],{},[242,368,369],{},"https:\u002F\u002Flocalhost:29443",[347,371,372,375],{},[362,373,374],{},"Username",[362,376,377],{},[242,378,379],{},"admin",[347,381,382,385],{},[362,383,384],{},"Action registry",[362,386,387,390],{},[242,388,389],{},"localhost:25100",", plain HTTP for isolated local testing",[347,392,393,396],{},[362,394,395],{},"Runner pool",[362,397,398],{},[242,399,400],{},"local",[347,402,403,406],{},[362,404,405],{},"Action network, when needed",[362,407,408],{},[242,409,410],{},"pyplines-release-test-control",[347,412,413,416],{},[362,414,415],{},"Persistent volumes",[362,417,418,421,422,421,425],{},[242,419,420],{},"pyplines-release-test-server",", ",[242,423,424],{},"pyplines-release-test-work",[242,426,427],{},"pyplines-release-test-registry",[200,429,430,431,434],{},"mkcert installs the local CA in system trust. If your client does not use that trust store, configure ",[242,432,433],{},"pyplines config set tls.ca_file \"$PWD\u002F.release-test\u002Fcerts\u002Fca.crt\"",". Do not disable TLS verification.",[226,436,438],{"id":437},"run-a-workflow","Run a workflow",[200,440,441,442,444],{},"Continue with ",[209,443,53],{"href":54},". The local registry starts empty: ask an Action maintainer to publish a known Action, or follow the optional example Action publishing steps there. Platform installation does not populate an official Action catalog.",[226,446,448],{"id":447},"stop-and-restart","Stop and restart",[234,450,452],{"className":236,"code":451,"filename":238,"language":239,"meta":240,"style":240},"task release:logs\ntask release:down\ntask release:up\n",[242,453,454,459,464],{"__ignoreMap":240},[245,455,456],{"class":247,"line":248},[245,457,458],{},"task release:logs\n",[245,460,461],{"class":247,"line":254},[245,462,463],{},"task release:down\n",[245,465,466],{"class":247,"line":260},[245,467,468],{},"task release:up\n",[200,470,471,472,475,476,479],{},"Stop following logs with Ctrl-C. ",[242,473,474],{},"down"," preserves volumes and saved identity. A later ",[242,477,478],{},"up"," reuses the saved versions and credentials. The helper checks for unfinished Runs when the API is reachable; settle them before maintenance.",[200,481,482,483,486],{},"Use ",[242,484,485],{},"task release:reset"," only to erase this disposable evaluation installation. It asks for confirmation, removes its state and volumes, and cannot undo effects an Action already performed outside the installation.",[200,488,489,490,493,494,216],{},"This appliance is separate from ",[242,491,492],{},"task up",", which builds the source-development installation on different ports. For upgrades of a shared installation, follow ",[209,495,57],{"href":58},[497,498,499],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":240,"searchDepth":254,"depth":254,"links":501},[502,503,504,505],{"id":228,"depth":254,"text":229},{"id":293,"depth":254,"text":294},{"id":437,"depth":254,"text":438},{"id":447,"depth":254,"text":448},"Run published server and runner images on one host using the repository's evaluation appliance.","md",{},true,{"title":41,"description":506},"UgJvf8PcqODlKNSPWfzcsuLShu_OWDAw3-dGcTDK7Gg",[513,515],{"title":37,"path":38,"stem":39,"description":514,"children":-1},"Choose a deployment layout and prepare networking, storage, and platform versions.",{"title":45,"path":46,"stem":47,"description":516,"children":-1},"Deploy a persistent Pyplines server with TLS and its first administrator account.",1792213696864]