website/docs/articles/config/index.html

175 lines
8.8 KiB
HTML

<html>
<head>
<title>Conductor: Development Stack Launcher</title>
<script src="/js/jquery-3.3.1.min.js"></script>
<script src="/js/semantic.min.js"></script>
<script src="/js/popup.min.js"></script>
<link href="/css/semantic.min.css" type="text/css" rel="stylesheet" />
<link href="/css/syntax.css" type="text/css" rel="stylesheet" />
<link href="/css/popup.min.css" type="text/css" rel="stylesheet" />
<link href="/css/styles.css" type="text/css" rel="stylesheet" />
</head>
<body>
<div class="ui menu fixed borderless">
<a class="header item" href="/">
CONDUCTOR
</a>
<a class="item" href="/articles">
DOCUMENATION
</a>
<div class="ui right secondary menu">
<a class="icon item" href="http://github.com/5Sigma/celerity"><i class="ui github icon"></i></a>
</div>
</div>
<div class="ui grid container">
<div class="two wide column"></div>
<div class="twelve wide column">
<div class="ui divider hidden"></div>
<div class="ui top attached menu borderless">
<div class="ui button icon item" id="toc-button">
<i class="icon chevron down"></i>
</div>
<div class="ui item">
<div class="ui breadcrumb small">
<a class="section" href="/"><i class="ui icon home"></i></a>
<div class="divider"> / </div>
<a class="section" href="http://conductor.5sigma.io/articles/">Articles</a>
<div class="divider"> / </div>
<div class="active section">Configuration File Reference</div>
</div>
</div>
<div class="ui flowing popup bottom left transition hidden">
<nav id="TableOfContents">
<ul>
<li><a href="#manually-specifying-the-configuration-file">Manually specifying the configuration file</a></li>
<li><a href="#component-configuration">Component configuration</a>
<ul>
<li><a href="#example-component-configuration">Example component configuration:</a></li>
<li><a href="#command-block-reference">Command block reference</a></li>
</ul>
</li>
</ul>
</nav>
</div>
<div class="menu right">
<div id="reading-time" class="item">
2m
</div>
<div id="version-popup" class="ui popup inverted transition hidden">
<span style="white-space:nowrap;">
This article will take 2 minutes to
read.
</span>
</div>
<div id="version" class="item">
0.2.1
</div>
<div id="version-popup" class="ui popup inverted transition hidden">
<span style="white-space:nowrap;">
This guide was written for version 0.2.1
</span>
</div>
</div>
</div>
<article class="ui segment attached bottom">
<h1 id="configuration-file">Configuration file</h1>
<p>Conductor will look in the current directory or any parent directory for configuration file named <code>conductor.yaml</code>.
In general you can place this configuration directory in or above any place you might want to run the stack.</p>
<h2 id="manually-specifying-the-configuration-file">Manually specifying the configuration file</h2>
<p>If the configuration file is located outside the current directory structure you can specify it with the -c flag.</p>
<div class="highlight"><pre class="chroma"><code class="language-sh" data-lang="sh">conductor -c /path/to/config/conductor.yaml
</code></pre></div><h2 id="component-configuration">Component configuration</h2>
<p>Components are indvidual applications that are run as part of the stack. All, some, or one of the compoennts can be launched.</p>
<h3 id="example-component-configuration">Example component configuration:</h3>
<div class="highlight"><pre class="chroma"><code class="language-yaml" data-lang="yaml">- <span class="k">name</span><span class="p">:</span><span class="w"> </span>api<span class="w">
</span><span class="w"> </span><span class="k">color</span><span class="p">:</span><span class="w"> </span>Red<span class="w">
</span><span class="w"> </span><span class="k">path</span><span class="p">:</span><span class="w"> </span>backend/api-gateway<span class="w">
</span><span class="w"> </span><span class="k">tags</span><span class="p">:</span><span class="w"> </span><span class="w">
</span><span class="w"> </span>- api<span class="w">
</span><span class="w"> </span>- web<span class="w">
</span><span class="w"> </span><span class="k">env</span><span class="p">:</span><span class="w">
</span><span class="w"></span><span class="w"> </span><span class="k">COLORS</span><span class="p">:</span><span class="w"> </span><span class="m">1</span><span class="w">
</span><span class="w"> </span><span class="k">NPM_ENV</span><span class="p">:</span><span class="w"> </span>debug<span class="w">
</span><span class="w"> </span><span class="k">start</span><span class="p">:</span><span class="w">
</span><span class="w"></span><span class="w"> </span>- <span class="k">command</span><span class="p">:</span><span class="w"> </span>npm<span class="w">
</span><span class="w"> </span><span class="k">args</span><span class="p">:</span><span class="w">
</span><span class="w"></span><span class="w"> </span>- start<span class="w">
</span><span class="w"> </span><span class="k">init</span><span class="p">:</span><span class="w">
</span><span class="w"></span><span class="w"> </span>- <span class="k">command</span><span class="p">:</span><span class="w"> </span>npm<span class="w">
</span><span class="w"> </span><span class="k">args</span><span class="p">:</span><span class="w">
</span><span class="w"></span><span class="w"> </span>- install<span class="w">
</span><span class="w"> </span><span class="k">repo</span><span class="p">:</span><span class="w">
</span><span class="w"></span><span class="w"> </span>https<span class="p">:</span>//github.com/me/my-project.git<span class="w">
</span></code></pre></div><ul>
<li><strong>name</strong> - The name for the component. This name is used in the log output and can also be specified as a sub-command to run the
component itself.</li>
<li><strong>path</strong> - The working path relative to the configuration file. If not specified the path is assuemd to be a subfolder with the component name.</li>
<li><strong>env</strong> - A set of environment variables that are set before any commands are run.</li>
<li><strong>color</strong> - The component will use this color in the log output. Valid color values are: Yellow, Blue, Green, Red, and Purple.</li>
<li><strong>tags</strong> - A comma seperated list of tags to identify the component. These can be used to execute groups of components using the &ndash;tags flag.</li>
<li><strong>start</strong> - A command block that is executed when the component is ran</li>
<li><strong>init</strong> - A command block that is ran when the component is initialized</li>
<li><strong>repo</strong> - The repository url for the component. When running init all components are cloned into subfolders if they have repositories specified and their init commands are ran.</li>
<li><strong>retry</strong> - Specifies whether the command should be rerun if it exits. This is true by default. Setting this to false will cause the command to be executed. This does not apply to init commands.</li>
<li><strong>delay</strong> - A delay in seconds to wait before executing this command. This is useful if it needs to wait for another component to spin up.</li>
</ul>
<h3 id="command-block-reference">Command block reference</h3>
<ul>
<li><strong>command</strong> - the name of the command to run</li>
<li><strong>args</strong> - A list of arguments to pass to the command</li>
<li><strong>env</strong> - A list of environment variables to set specific to this command</li>
<li><strong>dir</strong> - An optional working directory override if the command should be ran somewhere other than the component path</li>
</ul>
</article>
<div class="ui segment attached compacted right aligned">
last modified Wednesday, July 29, 2020
</div>
<div class="ui hidden divider"></div>
<div class="ui two column grid">
<div class="row">
<div class="column"> </div>
<div class="column right aligned">
<div class="ui message">
<a href="http://conductor.5sigma.io/articles/getting-started/" class="ui small header">
Getting Started
</a>
<div class="text">A quick setup guide to get a server running</div>
</div>
</div>
</div>
</div>
</div>
<div class="two wide column"></div>
</div>
<div class="ui divider"></div>
<div class="ui center aligned segment basic">
Conductor is maintained by
<a href="http://5sigma.io">5Sigma</a>.
Source code is available at
<a href="http://github.com/5Sigma/conductor">Github</a>.
</div>
<script>
$('#toc-button').popup({
inline: true,
on: 'click'
});
$('#version').popup({
inline: true,
});
$('#reading-time').popup({
inline: true,
});
</script>
</body>
</html>