Files
caprover/docs/run-locally.html
T
Kasra Bigdeli 738b185118 Deploy website
Deploy website version based on 64b75d0967
2018-06-24 00:52:06 -07:00

58 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Run Locally · CaptainDuckDuck</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta property="og:title" content="Run Locally · CaptainDuckDuck"/><meta property="og:type" content="website"/><meta property="og:url" content="https://www.captainduckduck.com/index.html"/><meta property="og:description" content="&lt;br/&gt;"/><meta property="og:image" content="https://www.captainduckduck.com/img/captainduckduck.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://www.captainduckduck.com/img/captainduckduck.png"/><link rel="shortcut icon" href="/img/favicon.ico"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible doc separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><img class="logo" src="/img/captainduckduck.png" alt="CaptainDuckDuck"/><h2 class="headerTitleWithLogo">CaptainDuckDuck</h2></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class="siteNavGroupActive"><a href="/docs/get-started.html" target="_self">Docs</a></li><li class=""><a href="https://github.com/githubsaturn/captainduckduck" target="_self">GitHub</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i></i><span>Do More</span></h2></div><div class="navGroups"><div class="navGroup navGroupActive"><h3>Basics</h3><ul><li class="navListItem"><a class="navItem" href="/docs/get-started.html">Getting Started</a></li><li class="navListItem"><a class="navItem" href="/docs/captain-definition-file.html">Captain Definition File</a></li><li class="navListItem"><a class="navItem" href="/docs/deployment-methods.html">Deployment Methods</a></li><li class="navListItem"><a class="navItem" href="/docs/app-configuration.html">App Configuration</a></li><li class="navListItem"><a class="navItem" href="/docs/complete-webapp-tutorial.html">Complete Webapp Tutorial</a></li></ul></div><div class="navGroup navGroupActive"><h3>Do More</h3><ul><li class="navListItem"><a class="navItem" href="/docs/enabling-https.html">Enabling HTTPS</a></li><li class="navListItem"><a class="navItem" href="/docs/one-click-apps.html">One-Click Apps</a></li><li class="navListItem"><a class="navItem" href="/docs/resource-monitoring.html">Resource Monitoring</a></li><li class="navListItem"><a class="navItem" href="/docs/nginx-customization.html">NGINX Config</a></li><li class="navListItem"><a class="navItem" href="/docs/app-scaling-and-cluster.html">App Scaling &amp; Cluster</a></li><li class="navListItem"><a class="navItem" href="/docs/pre-deploy-script.html">Pre-deploy Script</a></li><li class="navListItem"><a class="navItem" href="/docs/cli-commands.html">CLI Commands</a></li><li class="navListItem navListItemActive"><a class="navItem navItemActive" href="/docs/run-locally.html">Run Locally</a></li></ul></div><div class="navGroup navGroupActive"><h3>Help</h3><ul><li class="navListItem"><a class="navItem" href="/docs/server-purchase.html">Server Purchase</a></li><li class="navListItem"><a class="navItem" href="/docs/disk-cleanup.html">Disk Clean-Up</a></li><li class="navListItem"><a class="navItem" href="/docs/firewall.html">Firewall &amp; Port Forwarding</a></li><li class="navListItem"><a class="navItem" href="/docs/troubleshooting.html">Troubleshooting</a></li></ul></div></div></section></div><script>
var toggler = document.getElementById('navToggler');
var nav = document.getElementById('docsNav');
toggler.onclick = function() {
nav.classList.toggle('docsSliderActive');
};
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1>Run Locally</h1></header><article><div><span><p><br/>
Note that this is an advanced process. Some of the concepts used in this section are not easy for the beginners. In order to run CaptainDuckDuck on your local machine (just for testing and development) you need:</p>
<ul>
<li>Docker installed on your machine.</li>
<li>A local DNS server on your machine. You need to point <code>*.captain.x</code> to <code>127.0.0.1</code> or <code>192.168.1.2</code> (your local ip). <strong>NOTE</strong> that <code>etc/hosts</code> won't be enough as Captain needs a wildcard entry and <code>etc/hosts</code> does not allow wildcards, i.e. <code>*.something</code>.
<ul>
<li>On ubuntu 16, <code>dnsmasq</code> (a local DNS server) is built-in. So, it's as simple of editing this file: <code>/etc/NetworkManager/dnsmasq.d/dnsmasq-localhost.conf</code> (create if does not exist) And add this line to it: <code>address=/captain.x/192.168.1.2</code> where <code>192.168.1.2</code> is your local IP address. To make sure you have <code>dnsmasq</code>, you can run <code>which dnsmasq</code> on your terminal, if it's available, path of it will be printed on the terminal, otherwise, there won't be anything printed on your terminal</li>
</ul></li>
</ul>
<p>To verify you have both prerequisites mentioned above:</p>
<ul>
<li>Run <code>docker version</code> and make sure your version is at least the version mentioned in the <a href="/docs/get-started.html#c-install-docker-on-server-at-least-version-1706x">docs</a></li>
<li>Run <code>nslookup askjdfklasjflk.captain.x</code> and make sure it resolves to <code>127.0.0.1</code> or your local ip (something like <code>192.168.1.2</code>):</li>
</ul>
<pre><code class="hljs"><span class="hljs-selector-tag">Server</span>: 127<span class="hljs-selector-class">.0</span><span class="hljs-selector-class">.1</span><span class="hljs-selector-class">.1</span>
<span class="hljs-selector-tag">Address</span>: 127<span class="hljs-selector-class">.0</span><span class="hljs-selector-class">.1</span><span class="hljs-selector-class">.1</span><span class="hljs-selector-id">#53</span>
<span class="hljs-selector-tag">Name</span>: <span class="hljs-selector-tag">askjdfklasjflk</span><span class="hljs-selector-class">.captain</span><span class="hljs-selector-class">.x</span>
<span class="hljs-selector-tag">Address</span>: 192<span class="hljs-selector-class">.168</span><span class="hljs-selector-class">.1</span><span class="hljs-selector-class">.2</span>
</code></pre>
<p>Once you confirmed that you have the prereqs ready, you can go ahead and install Captain on your machine, similar to what you do on server. Make sure you run as a user with sufficient permission, i.e. <code>sudo</code> on linux based systems. Just follow the steps outlined here: <a href="get-started#step-1-captain-installation">Captain Installation</a></p>
<p><strong>EXCEPT</strong>
Do not run <code>captainduckduck serversetup</code>. Instead, go to <a href="http://localhost:3000">http://localhost:3000</a> and manually set root domain to <code>captain.x</code>. DO NOT enable/force HTTPS. Obviously, you cannot enable HTTPS on your local domain (captain.x).</p>
<p>Once you set your root domain as <code>captain.x</code>, use <code>captainduckduck login</code> and enter <code>captain.captain.x</code> as your captain URL and captain42 as your password.</p>
<p><strong>NON-LINUX USERS</strong>
You need to add <code>/captain</code> to shared paths.
To do so, click on the Docker icon -&gt; Setting -&gt; File Sharing and add <code>/captain</code></p>
<p>You are set!</p>
<h2><a class="anchor" aria-hidden="true" id="troubleshooting"></a><a href="#troubleshooting" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Troubleshooting:</h2>
<p>As mentioned above, running a local machine is an advanced task and might fail due to different reasons, depending on error your solution is different. For example, if you get the following error:</p>
<pre><code class="hljs">Captain Starting ...
Installing Captain Service ...
December <span class="hljs-number">18</span>th <span class="hljs-number">2017</span>, <span class="hljs-number">11</span>:<span class="hljs-number">51</span>:<span class="hljs-number">11.295</span> pm Starting swarm <span class="hljs-keyword">at</span> <span class="hljs-number">34.232</span>.<span class="hljs-number">18.13</span>:<span class="hljs-number">2377</span>
Installation failed.
{ Error: (HTTP code <span class="hljs-number">400</span>) bad parameter - must specify a listening address because the address to advertise <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> recognized as a system address, <span class="hljs-keyword">and</span> a system<span class="hljs-symbol">'s</span> IP address to <span class="hljs-keyword">use</span> could <span class="hljs-keyword">not</span> be uniquely identified
<span class="hljs-keyword">at</span> /usr/src/app/node_modules/docker-modem/lib/modem.js:<span class="hljs-number">254</span>:<span class="hljs-number">17</span>
<span class="hljs-keyword">at</span> process._tickCallback (internal/process/next_tick.js:<span class="hljs-number">180</span>:<span class="hljs-number">9</span>)
reason: <span class="hljs-symbol">'bad</span> parameter',
statusCode: <span class="hljs-number">400</span>,
json:
{ message: <span class="hljs-symbol">'must</span> specify a listening address because the address to advertise <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> recognized as a system address, <span class="hljs-keyword">and</span> a system\<span class="hljs-symbol">'s</span> IP address to <span class="hljs-keyword">use</span> could <span class="hljs-keyword">not</span> be uniquely identified' } }
</code></pre>
<p>You can try this:</p>
<pre><code class="hljs">docker <span class="hljs-keyword">run</span> -<span class="hljs-keyword">e</span> <span class="hljs-string">"MAIN_NODE_IP_ADDRESS=192.168.1.2"</span> -v /<span class="hljs-keyword">var</span>/<span class="hljs-keyword">run</span>/docker.sock:/<span class="hljs-keyword">var</span>/<span class="hljs-keyword">run</span>/docker.sock dockersaturn/captainduckduck
</code></pre>
<p>and replace <code>192.168.1.2</code> with your own local IP.</p>
</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="cli-commands.html">← CLI Commands</a><a class="docs-next button" href="server-purchase.html">Server &amp; Public IP address →</a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#troubleshooting">Troubleshooting:</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><a href="/" class="nav-home"><img src="/img/captainduckduck.png" alt="CaptainDuckDuck" width="66" height="58"/></a><div><h5>Docs</h5><a href="/docs/en/get-started.html">Getting Started</a></div><div><h5>Community</h5><a href="https://twitter.com/search?vertical=default&amp;q=captainduckduck&amp;src=typd" target="_blank" rel="noreferrer noopener">Twitter</a></div><div><h5>More</h5><a href="https://github.com/githubsaturn/captainduckduck" target="_blank">GitHub</a><a class="github-button" href="https://github.com/githubsaturn/captainduckduck" data-icon="octicon-star" data-count-href="/githubsaturn/captainduckduck/stargazers" data-show-count="true" data-count-aria-label="# stargazers on GitHub" aria-label="Star this project on GitHub">Star</a></div></section><section class="copyright">Copyright © 2018 githubsaturn</section><script async="" src="https://www.googletagmanager.com/gtag/js?id=UA-121064489-1"></script><script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-121064489-1');
</script></footer></div></body></html>