<?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 SOW</title><link>https://sow.pgsty.com/docs/start/</link><description>Recent content in Getting Started on SOW</description><generator>Hugo</generator><language>en</language><atom:link href="https://sow.pgsty.com/docs/start/index.xml" rel="self" type="application/rss+xml"/><item><title>Install SOW</title><link>https://sow.pgsty.com/docs/start/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sow.pgsty.com/docs/start/install/</guid><description>&lt;p&gt;SOW ships as a single static executable. Installing it means putting one file somewhere
on your &lt;code&gt;PATH&lt;/code&gt;. There is no package to install, no service to enable, and no state
directory created until you run a command that needs one.&lt;/p&gt;
&lt;h2 id="supported-platforms"&gt;Supported platforms&lt;/h2&gt;
&lt;p&gt;The binary is built with &lt;code&gt;CGO_ENABLED=0&lt;/code&gt;, so it has no libc dependency and runs on any
reasonably modern kernel of the matching OS and CPU family.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;OS&lt;/th&gt;
					&lt;th&gt;&lt;code&gt;amd64&lt;/code&gt;&lt;/th&gt;
					&lt;th&gt;&lt;code&gt;arm64&lt;/code&gt;&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Linux&lt;/td&gt;
					&lt;td&gt;supported&lt;/td&gt;
					&lt;td&gt;supported&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;macOS (Darwin)&lt;/td&gt;
					&lt;td&gt;supported&lt;/td&gt;
					&lt;td&gt;supported&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Windows is not supported. SOW relies on POSIX advisory locks, hardlinks, and atomic
&lt;code&gt;rename&lt;/code&gt;, and it is only tested on local POSIX filesystems — network filesystems such as
NFS do not provide the locking and durability semantics it depends on.&lt;/p&gt;</description></item><item><title>Quick Start</title><link>https://sow.pgsty.com/docs/start/quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sow.pgsty.com/docs/start/quickstart/</guid><description>&lt;p&gt;This page takes about five minutes. You will put some packages in a directory, run one
command, serve the directory over HTTP, and install from it with &lt;code&gt;dnf&lt;/code&gt; or &lt;code&gt;apt&lt;/code&gt;. No
configuration file, no workspace, no database — plain mode writes indexes next to your
packages and nothing else.&lt;/p&gt;
&lt;h2 id="1-collect-the-packages"&gt;1. Collect the packages&lt;/h2&gt;
&lt;p&gt;Any directory containing &lt;code&gt;.rpm&lt;/code&gt; or &lt;code&gt;.deb&lt;/code&gt; files works. The files stay where they are;
SOW never moves or renames them.&lt;/p&gt;</description></item><item><title>Your First Workspace</title><link>https://sow.pgsty.com/docs/start/workspace/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sow.pgsty.com/docs/start/workspace/</guid><description>&lt;p&gt;This page takes about ten minutes and builds a managed repository from nothing: a
workspace, one repository, an RPM distribution and a DEB distribution inside it, packages
added to both, and a look at what landed on disk. Unlike &lt;a href="https://sow.pgsty.com/docs/start/quickstart/"&gt;plain mode&lt;/a&gt;,
a workspace remembers what you asked for — so you add and remove packages by name instead of
by shuffling files around, and SOW rebuilds only what changed.&lt;/p&gt;
&lt;h2 id="1-create-the-workspace"&gt;1. Create the workspace&lt;/h2&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;mkdir -p /srv/sow
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /srv/sow
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sow init .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;initialized /srv/sow: config_created=true repositories_initialized=0 dists_initialized=0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;init&lt;/code&gt; created two things: &lt;code&gt;sow.yml&lt;/code&gt;, which is the single source of truth for what this
workspace contains, and a hidden &lt;code&gt;.sow/&lt;/code&gt; directory holding locks, per-repository SQLite
state, and the operation journal used for crash recovery. You never edit anything under
&lt;code&gt;.sow/&lt;/code&gt; and you never serve it.&lt;/p&gt;</description></item><item><title>Core Concepts</title><link>https://sow.pgsty.com/docs/start/concepts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://sow.pgsty.com/docs/start/concepts/</guid><description>&lt;p&gt;Once you have run &lt;a href="https://sow.pgsty.com/docs/start/quickstart/"&gt;the quick start&lt;/a&gt; and
&lt;a href="https://sow.pgsty.com/docs/start/workspace/"&gt;built a workspace&lt;/a&gt;, a handful of ideas explain everything else
SOW does. This page covers them: the two modes and how to choose, the four layers of the
managed model, and the distinction between what you asked for and what is currently
published.&lt;/p&gt;
&lt;h2 id="two-ways-to-build-a-repository"&gt;Two ways to build a repository&lt;/h2&gt;
&lt;p&gt;SOW has two engines that never touch each other. Plain mode does not read &lt;code&gt;sow.yml&lt;/code&gt;, does
not perform workspace discovery, and does not create a database. Managed mode never treats
a plain directory as a repository. Picking one is the first decision you make.&lt;/p&gt;</description></item></channel></rss>