1
0
Fork 0
llama-bot-docs/docs/bot/setting-up.html

17 lines
No EOL
19 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html class="docs-version-current" lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-beta.15">
<title data-react-helmet="true">Setting up | Llama Bot Documentation</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://docs.llama.developomp.com/docs/bot/setting-up"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_version" content="current"><meta data-react-helmet="true" name="docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:title" content="Setting up | Llama Bot Documentation"><meta data-react-helmet="true" name="description" content="This documentation uses the dev branch (javascript) instead of the master branch (python)."><meta data-react-helmet="true" property="og:description" content="This documentation uses the dev branch (javascript) instead of the master branch (python)."><link data-react-helmet="true" rel="icon" href="/img/logo.png"><link data-react-helmet="true" rel="canonical" href="https://docs.llama.developomp.com/docs/bot/setting-up"><link data-react-helmet="true" rel="alternate" href="https://docs.llama.developomp.com/docs/bot/setting-up" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://docs.llama.developomp.com/docs/bot/setting-up" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.c1c17b9a.css">
<link rel="preload" href="/assets/js/runtime~main.3cd2c3e4.js" as="script">
<link rel="preload" href="/assets/js/main.b812c6db.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/docs/overview"><div class="navbar__logo"><img src="/img/logo.png" alt="Llama Bot Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/logo.png" alt="Llama Bot Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title">Llama Bot Docs</b></a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/llama-bot/llama-bot-docs" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link"><span>GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a><div class="toggle_Pssr toggle_TdHA toggleDisabled_jDku"><div class="toggleTrack_SSoT" role="button" tabindex="-1"><div class="toggleTrackCheck_XobZ"><span class="toggleIcon_eZtF">🌜</span></div><div class="toggleTrackX_YkSC"><span class="toggleIcon_eZtF">🌞</span></div><div class="toggleTrackThumb_uRm4"></div></div><input type="checkbox" class="toggleScreenReader_JnkT" aria-label="Switch between dark and light mode"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docs-wrapper docs-doc-page"><div class="docPage_P2Lg"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><aside class="theme-doc-sidebar-container docSidebarContainer_rKC_"><div class="sidebar_CW9Y"><nav class="menu thin-scrollbar menu_SkdO"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/overview">Overview</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist hasHref_VCh3" href="/docs/usage/overview">Usage</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active hasHref_VCh3" aria-current="page" href="/docs/bot/overview">Bot</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/bot/overview">Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/bot/setting-up">Setting up</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist hasHref_VCh3" href="/docs/web-interface/overview">Web Interface</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist hasHref_VCh3" href="/docs/docs/overview">Docs</a></div></li></ul></nav></div></aside><main class="docMainContainer_TCnq"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><div class="tocCollapsible_jdIR theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_Fzxq">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Setting up</h1><div class="admonition admonition-info alert alert--info"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</h5></div><div class="admonition-content"><p>This documentation uses the <a href="https://github.com/llama-bot/llama-bot/tree/dev" target="_blank" rel="noopener noreferrer">dev branch</a> (javascript) instead of the master branch (python).</p></div></div><p>In this documentation, you will learn how to set up the <a href="https://github.com/llama-bot/llama-bot" target="_blank" rel="noopener noreferrer">llama discord bot</a>.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="steps">Steps<a class="hash-link" href="#steps" title="Direct link to heading"></a></h2><h3 class="anchor anchorWithStickyNavbar_mojV" id="pre-requirements">Pre-requirements<a class="hash-link" href="#pre-requirements" title="Direct link to heading"></a></h3><ul><li>Node.js 16.6.0+</li><li><a href="https://yarnpkg.com" target="_blank" rel="noopener noreferrer">yarn</a></li><li>A Discord account</li><li>A Google Firebase account</li><li><del>A sacrifice to be given to the llama gods</del> (no longer needed)</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="discord">Discord<a class="hash-link" href="#discord" title="Direct link to heading"></a></h3><ol><li>Create a new application from the <a href="https://discord.com/developers/applications" target="_blank" rel="noopener noreferrer">Discord Developer Portal</a>. Select one if you already have it.</li><li>Go to the <code>Bot</code> tab and convert your application to a discord bot. Be cautious since this operation is <strong>NOT REVERSIBLE</strong>.</li><li>Copy the bot token. This will be used during the <a href="#server">Server</a> setup.</li></ol><h3 class="anchor anchorWithStickyNavbar_mojV" id="firebase">Firebase<a class="hash-link" href="#firebase" title="Direct link to heading"></a></h3><ol><li><p>Create a firebase project.</p><p><a href="https://console.firebase.google.com" target="_blank" rel="noopener noreferrer">https://console.firebase.google.com</a></p></li><li><p>Enable firestore database (usage of production mode is highly recommended).</p></li><li><p><a href="https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk" target="_blank" rel="noopener noreferrer">Generate and download</a> the service account key. This will be used during the <a href="#server">Server</a> setup.</p></li></ol><h3 class="anchor anchorWithStickyNavbar_mojV" id="server">Server<a class="hash-link" href="#server" title="Direct link to heading"></a></h3><div class="admonition admonition-info alert alert--info"><div class="admonition-heading"><h5><span class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</h5></div><div class="admonition-content"><p>Assumes UNIX-like environment (Linux, BSD, Mac, etc.)</p></div></div><ol><li><p>Clone the llama bot <a href="https://github.com/llama-bot/llama-bot" target="_blank" rel="noopener noreferrer">repository</a> and open it.</p><div class="codeBlockContainer_I0IT language-bash theme-code-block"><div class="codeBlockContent_wNvx bash"><pre tabindex="0" class="prism-code language-bash codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone https://github.com/llama-bot/llama-bot.git</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><div class="codeBlockContainer_I0IT language-bash theme-code-block"><div class="codeBlockContent_wNvx bash"><pre tabindex="0" class="prism-code language-bash codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">cd</span><span class="token plain"> llama-bot</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div></li><li><p>Install dependencies.</p><div class="codeBlockContainer_I0IT language-bash theme-code-block"><div class="codeBlockContent_wNvx bash"><pre tabindex="0" class="prism-code language-bash codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">yarn</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div></li><li><p>Create <code>.env</code> file in the project root and put the discord bot token generated during the <a href="#discord">Discord</a> setup.</p><div class="codeBlockContainer_I0IT language-text theme-code-block"><div style="color:#393A34;background-color:#f6f8fa" class="codeBlockTitle_BvAR">.env</div><div class="codeBlockContent_wNvx text"><pre tabindex="0" class="prism-code language-text codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token plain">TOKEN=PUT_YOUR_DISCORD_BOT_TOKEN_HERE</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">TESTING=true # set it to false on production</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">PREFIX_PROD=PUT_PRODUCTION_DEFAULT_PREFIX_HERE</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">PREFIX_DEV=PUT_DEVELOPMENT_DEFAULT_PREFIX_HERE</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">OWNER_IDS=ID1,ID2,ID3,...</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div></li><li><p>Create <code>secret</code> directory in the <code>src</code> directory, rename the firebase admin key generated during the <a href="#firebase">Firebase</a> setup to <code>firebase-adminsdk.json</code>, and put it in the <code>secret</code> directory.</p></li><li><p>Build the bot.</p><div class="codeBlockContainer_I0IT language-bash theme-code-block"><div class="codeBlockContent_wNvx bash"><pre tabindex="0" class="prism-code language-bash codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">yarn</span><span class="token plain"> build</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div></li><li><p>Install pm2 globally.</p><div class="codeBlockContainer_I0IT language-bash theme-code-block"><div class="codeBlockContent_wNvx bash"><pre tabindex="0" class="prism-code language-bash codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">yarn</span><span class="token plain"> global </span><span class="token function" style="color:#d73a49">add</span><span class="token plain"> pm2</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div></li><li><p>Start the bot.</p><div class="codeBlockContainer_I0IT language-bash theme-code-block"><div class="codeBlockContent_wNvx bash"><pre tabindex="0" class="prism-code language-bash codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token plain">pm2 start build/index.js --watch --name </span><span class="token string" style="color:#e3116c">&quot;Llama Bot&quot;</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><table><thead><tr><th>Option</th><th>Explanation</th></tr></thead><tbody><tr><td><code>--watch</code></td><td>Auto restart bot if bot files have been changed</td></tr><tr><td><code>--name &quot;Llama Bot&quot;</code></td><td>Set the name of the process so it can be easily recognized</td></tr></tbody></table></li><li><p>Make the process automatically start on boot.</p><div class="codeBlockContainer_I0IT language-bash theme-code-block"><div class="codeBlockContent_wNvx bash"><pre tabindex="0" class="prism-code language-bash codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token plain">pm2 startup</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div></li></ol><h2 class="anchor anchorWithStickyNavbar_mojV" id="more-info">More info<a class="hash-link" href="#more-info" title="Direct link to heading"></a></h2><ul><li><a href="https://discord.com/developers/docs" target="_blank" rel="noopener noreferrer">discord developers documentation</a></li><li>discord API&#x27;s javascript implementation <a href="https://discord.js.org/#/docs" target="_blank" rel="noopener noreferrer">documentation</a>, <a href="https://discordjs.guide" target="_blank" rel="noopener noreferrer">guide</a>, and bot <a href="https://sapphiredev.github.io/framework" target="_blank" rel="noopener noreferrer">framework documentation</a></li><li><a href="https://firebase.google.com/docs" target="_blank" rel="noopener noreferrer">firebase admin sdk documentation</a></li><li><a href="https://pm2.keymetrics.io/docs/usage/quick-start" target="_blank" rel="noopener noreferrer">pm2 documentation</a></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/llama-bot/llama-bot-docs/edit/master/docs/3-bot/2-setting-up.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><div class="pagination-nav__item"><a class="pagination-nav__link" href="/docs/bot/overview"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Overview</div></a></div><div class="pagination-nav__item pagination-nav__item--next"><a class="pagination-nav__link" href="/docs/web-interface/overview"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Overview</div></a></div></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#steps" class="table-of-contents__link toc-highlight">Steps</a><ul><li><a href="#pre-requirements" class="table-of-contents__link toc-highlight">Pre-requirements</a></li><li><a href="#discord" class="table-of-contents__link toc-highlight">Discord</a></li><li><a href="#firebase" class="table-of-contents__link toc-highlight">Firebase</a></li><li><a href="#server" class="table-of-contents__link toc-highlight">Server</a></li></ul></li><li><a href="#more-info" class="table-of-contents__link toc-highlight">More info</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="footer__bottom text--center"><div class="footer__copyright">Created by <b>developomp</b>. Built with <a href="https://github.com/facebook/docusaurus">Docusaurus</a>.</div></div></div></footer></div>
<script src="/assets/js/runtime~main.3cd2c3e4.js"></script>
<script src="/assets/js/main.b812c6db.js"></script>
</body>
</html>