<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Getting started on Orchard</title><link>https://orchard.pthm.dev/docs/getting-started/</link><description>Recent content in Getting started on Orchard</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://orchard.pthm.dev/docs/getting-started/index.xml" rel="self" type="application/rss+xml"/><item><title>Installation</title><link>https://orchard.pthm.dev/docs/getting-started/installation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://orchard.pthm.dev/docs/getting-started/installation/</guid><description>&lt;h1 id="installation"&gt;Installation&lt;a class="anchor" href="#installation"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Orchard ships as a single Go binary. There is no daemon, no server, and no database
of its own — it reads HCL files and talks to the systems you configure.&lt;/p&gt;
&lt;h2 id="install-from-source"&gt;Install from source&lt;a class="anchor" href="#install-from-source"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;go install github.com/pthm/orchard@latest&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This installs &lt;code&gt;orchard&lt;/code&gt; into &lt;code&gt;$GOBIN&lt;/code&gt; (defaulting to &lt;code&gt;$HOME/go/bin&lt;/code&gt;). Make sure that
directory is on your &lt;code&gt;PATH&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Verify the install:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;orchard --help&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You should see the top-level command with &lt;code&gt;run&lt;/code&gt;, &lt;code&gt;plan&lt;/code&gt;, and &lt;code&gt;list&lt;/code&gt; subcommands.&lt;/p&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;a class="anchor" href="#requirements"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Go 1.22 or newer&lt;/strong&gt; if installing from source.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A target system to drive.&lt;/strong&gt; Orchard itself is just an orchestrator — you need
something for it to talk to. For the built-in providers that means a reachable
PostgreSQL database (for &lt;code&gt;builtin/postgres&lt;/code&gt;), an HTTP endpoint (for &lt;code&gt;builtin/http&lt;/code&gt;),
or a shell environment (for &lt;code&gt;builtin/exec&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prebuilt-binaries"&gt;Prebuilt binaries&lt;a class="anchor" href="#prebuilt-binaries"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Prebuilt binaries are not yet published. Until then, &lt;code&gt;go install&lt;/code&gt; is the supported
path.&lt;/p&gt;</description></item><item><title>Setup</title><link>https://orchard.pthm.dev/docs/getting-started/setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://orchard.pthm.dev/docs/getting-started/setup/</guid><description>&lt;h1 id="setup"&gt;Setup&lt;a class="anchor" href="#setup"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Orchard is configuration-free: there is no global config file, no workspace init, and
no state directory. A project is just a directory of &lt;code&gt;.hcl&lt;/code&gt; files.&lt;/p&gt;
&lt;h2 id="recommended-layout"&gt;Recommended layout&lt;a class="anchor" href="#recommended-layout"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;my-project/
├── scenarios/
│ ├── dev.hcl
│ ├── demo.hcl
│ └── integration.hcl
└── components/
 ├── merchant.hcl
 └── order.hcl&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;scenarios/&lt;/code&gt;&lt;/strong&gt; — one file per runnable scenario. Scenario files are what you
pass to &lt;code&gt;orchard run&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;components/&lt;/code&gt;&lt;/strong&gt; — reusable building blocks. Components are referenced from
scenarios with &lt;code&gt;source = &amp;quot;../components/&amp;lt;name&amp;gt;.hcl&amp;quot;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This layout is a convention, not a requirement. Orchard doesn&amp;rsquo;t care where files
live; &lt;code&gt;source&lt;/code&gt; paths are resolved relative to the file that references them.&lt;/p&gt;</description></item><item><title>First scenario</title><link>https://orchard.pthm.dev/docs/getting-started/first-scenario/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://orchard.pthm.dev/docs/getting-started/first-scenario/</guid><description>&lt;h1 id="your-first-scenario"&gt;Your first scenario&lt;a class="anchor" href="#your-first-scenario"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;This page walks through writing and running a small scenario that inserts a merchant
row and a product row into Postgres, wiring the merchant&amp;rsquo;s generated ID into the
product insert.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="anchor" href="#prerequisites"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You&amp;rsquo;ll need a PostgreSQL database you can write to and two tables:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;CREATE&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;TABLE&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;merchants&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;id&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#6639ba"&gt;SERIAL&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;PRIMARY&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;KEY&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;name&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#6639ba"&gt;TEXT&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;NOT&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;NULL&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;region&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#6639ba"&gt;TEXT&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;NOT&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;NULL&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#cf222e"&gt;CREATE&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;TABLE&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;products&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;id&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#6639ba"&gt;SERIAL&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;PRIMARY&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;KEY&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;merchant_id&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#6639ba"&gt;INT&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;NOT&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;NULL&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;REFERENCES&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;merchants&lt;span style="color:#1f2328"&gt;(&lt;/span&gt;id&lt;span style="color:#1f2328"&gt;),&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;name&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#6639ba"&gt;TEXT&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;NOT&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;NULL&lt;/span&gt;&lt;span style="color:#1f2328"&gt;,&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;price&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#6639ba"&gt;NUMERIC&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;NOT&lt;/span&gt;&lt;span style="color:#fff"&gt; &lt;/span&gt;&lt;span style="color:#cf222e"&gt;NULL&lt;/span&gt;&lt;span style="color:#fff"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#1f2328"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="write-the-scenario"&gt;Write the scenario&lt;a class="anchor" href="#write-the-scenario"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Create &lt;code&gt;scenarios/hello.hcl&lt;/code&gt;:&lt;/p&gt;</description></item></channel></rss>