<?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 ainfra</title><link>https://projectious-work.github.io/ainfra/v0.1/docs/getting-started/</link><description>Recent content in Getting started on ainfra</description><generator>Hugo</generator><language>en</language><atom:link href="https://projectious-work.github.io/ainfra/v0.1/docs/getting-started/index.xml" rel="self" type="application/rss+xml"/><item><title>Installation</title><link>https://projectious-work.github.io/ainfra/v0.1/docs/getting-started/installation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/ainfra/v0.1/docs/getting-started/installation/</guid><description>&lt;p&gt;The supported installer downloads only from the canonical GitHub release,
verifies the release checksum before extraction, and installs to
&lt;code&gt;$HOME/.local/bin&lt;/code&gt; by default. It never invokes &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl --proto &lt;span class="s1"&gt;&amp;#39;=https&amp;#39;&lt;/span&gt; --tlsv1.2 --fail --location &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --proto-redir &lt;span class="s1"&gt;&amp;#39;=https&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; https://github.com/projectious-work/ainfra/releases/latest/download/install.sh &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -o /tmp/ainfra-install.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sh /tmp/ainfra-install.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Review a downloaded installer before running it when that is required by your
local security policy.&lt;/p&gt;
&lt;p&gt;To install a specific stable version:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;AINFRA_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;0.1.0 sh /tmp/ainfra-install.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To select another unprivileged destination:&lt;/p&gt;</description></item><item><title>Quickstart</title><link>https://projectious-work.github.io/ainfra/v0.1/docs/getting-started/quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://projectious-work.github.io/ainfra/v0.1/docs/getting-started/quickstart/</guid><description>&lt;p&gt;This guide takes you from an installed binary to a reviewed disposable-
infrastructure plan. Applying the plan creates billable Hetzner resources, so
the final apply and destroy commands remain explicit.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A verified &lt;code&gt;ainfra&lt;/code&gt; release from the &lt;a href="https://projectious-work.github.io/ainfra/v0.1/docs/getting-started/installation/"&gt;installation guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OpenTofu&lt;/li&gt;
&lt;li&gt;Ansible&lt;/li&gt;
&lt;li&gt;A Hetzner Cloud project token for live operations&lt;/li&gt;
&lt;li&gt;An existing SSH public key&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="install-and-validate"&gt;Install and validate&lt;/h2&gt;
&lt;p&gt;Check local readiness without changing infrastructure:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ainfra --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="initialize-a-disposable-project"&gt;Initialize a disposable project&lt;/h2&gt;
&lt;p&gt;Create a separate project and initialize it:&lt;/p&gt;</description></item></channel></rss>