<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Deploying Your Dumb Ideas with Dokku</title> <meta name="description" content="The slides for a talk about deploying by Dave Smith-Hayes"> <meta name="author" content="Dave Smith-Hayes"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="dist/reset.css"> <link rel="stylesheet" href="dist/reveal.css"> <link rel="stylesheet" href="dist/theme/black.css" id="theme"> <!-- Theme used for syntax highlighting of code --> <link rel="stylesheet" href="plugin/highlight/monokai.css"> </head> <body> <div class="reveal"> <div class="slides"> <!-- Introduction --> <section> <h1>Deploying</h1> <h3 class="fragment">Your Dumb Ideas</h3> <h3 class="fragment">With Dokku</h3> </section> <section> <h1>Who am I?</h1> </section> <section> <h1>Dave Smith-Hayes</h1> <ul> <li class="fragment">Developer</li> <li class="fragment">Father</li> <li class="fragment">JavaScript Enjoyer</li> <li class="fragment">Web Software Deployer</li> </ul> </section> <section> <h1>What is deploying?</h1> </section> <section> <p>Releasing software to be used.</p> </section> <section> <h3>How it works for Web</h3> <ul> <li class="fragment">Have a DNS record point to an IP</li> <li class="fragment">Have a webserver runnning at that IP</li> <li class="fragment">Have that webserver proxy requests to the application</li> <ul> </section> <section> <h1>My history of deploying</h1> </section> <section> <ul> <li class="fragment">cPanel File Manager</li> <li class="fragment">FTP to Shared Hosting</li> <li class="fragment"><code>$ git pull</code></li> <li class="fragment">Jenkins & Ansible build VM Images</li> <li class="fragment">Packer & Terraform build Continers</li> </ul> </section> <section> <h2>Doing it Yourself</h2> <ul> <li>Do not use AWS, its too expensive</li> <li>Your small project is not worth the cost</li> <li>Use a small VPS from DigitalOcean or Linode</li> <li>Get a public IP address and root access</li> </ul> </section> <section> <h3>Blue/Green Deployment</h3> </section> <!-- Dokku --> <section> <h2>What Dokku Does</h2> <ul> <li>Creates a <code>dokku</code> user on your system</li> <li>Installs all the services for running Dokku <ul> <li>Docker</li> <li>NGiNX</li> </ul> </li> </ul> </section> <section> <h3>Create an application.</h3> <pre> $ dokku apps:create chat.freedoom.party -----> Creating chat.freedoom.party... -----> Creating new app virtual host file... </pre> <!-- Deployment Example --> </div> </div> <!-- JavaScript for the Slide Deck to Run --> <script src="dist/reveal.js"></script> <script src="plugin/notes/notes.js"></script> <script src="plugin/markdown/markdown.js"></script> <script src="plugin/highlight/highlight.js"></script> <script> // More info about initialization & config: // - https://revealjs.com/initialization/ // - https://revealjs.com/config/ Reveal.initialize({ hash: true, // Learn about plugins: https://revealjs.com/plugins/ plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ] }); </script> </body> </html>