laptopwiki:guides:discord:stickybot

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
laptopwiki:guides:discord:stickybot [29/06/2024 15:17] – created - external edit 127.0.0.1laptopwiki:guides:discord:stickybot [18/07/2024 21:11] (current) – [Run stickybot in the background] dustojnikhummer
Line 4: Line 4:
 {{:laptopwiki:guides:discord:stickybot_example.png?700}}\\ {{:laptopwiki:guides:discord:stickybot_example.png?700}}\\
 Built by: [[https://discord.gg/HSdMQtaPEa|Spooker#0378]]\\ Built by: [[https://discord.gg/HSdMQtaPEa|Spooker#0378]]\\
-If you have any issues with this guide or feedback please contact [[https://discord.gg/HSdMQtaPEa|dustojnikhummerCZ#6262]] \\+If you have any issues with this guide or feedback please contact [[https://discord.gg/HSdMQtaPEa|dustojnikhummerCZ#6262]]\\
 \\ \\
 This guide assumes you are working without a GUI, most likely connected over SSH. If you are working with a Linux Desktop environment some of these steps can be done that way, like unzipping the archive. This guide assumes you are working without a GUI, most likely connected over SSH. If you are working with a Linux Desktop environment some of these steps can be done that way, like unzipping the archive.
Line 10: Line 10:
 ===== Requirements ===== ===== Requirements =====
  
-  * A Linux webhost (in the case of this guide Debian/Ubuntu Server) \\ +  * A Linux webhost 
-  * npm (sudo apt install npm)\\ +  * npm 
-  * npm dotenv (npm install dotenv) \\ +  * npm dotenv (npm install dotenv) 
-  * nodejs  \\ +  * nodejs 
-  * wget  \\ +  * wget 
-  * unzip  \\ +  * unzip 
-  * Discord developer account \\+  * Discord developer account
   * Linux Terminal   * Linux Terminal
-  * Basic knowledge of nano/micro text editors \\+  * Basic knowledge of nano/micro text editors
  
 ===== Download ===== ===== Download =====
  
-Download here: [[https://cdn.laptopwiki.eu/public/bots/stickybot.zip|CDN]] \\+Download here: [[https://cdn.laptopwiki.eu/public/laptopwiki/stickybot.zip|CDN]]
  
-Unzip the archive and copy its contents to your Linux server. +Unzip the archive and copy its contents to your Linux server. Alternatively, run:
-Alternatively, run:+
 <code> <code>
-wget https://cdn.laptopwiki.eu/internal/bots/sticky-message.zip+ 
 +wget https://cdn.laptopwiki.eu/public/laptopwiki/sticky-message.zip
  
 </code> </code>
Line 33: Line 33:
 Then unzip the archive with: Then unzip the archive with:
  
-<code>unzip ./sticky-message.zip -d ./sticky-message+<code> 
 +unzip ./sticky-message.zip -d ./sticky-message
  
 </code> </code>
Line 39: Line 40:
 If you want to move the folder somewhere else (or what to rename the folder) make sure to move the entire folder, not all of its contents. Linux's mv ./* does not move files hidden files (file starting with a .) and you might forget your .env file (which is very important). \\  \\ For example, you can move/rename the folder with the following command: If you want to move the folder somewhere else (or what to rename the folder) make sure to move the entire folder, not all of its contents. Linux's mv ./* does not move files hidden files (file starting with a .) and you might forget your .env file (which is very important). \\  \\ For example, you can move/rename the folder with the following command:
  
-<code>mv ./sticky-message ./imaginifer+<code> 
 +mv ./sticky-message ./imaginifer
  
 </code> </code>
Line 45: Line 47:
 ===== Bot Setup - Discord ===== ===== Bot Setup - Discord =====
  
-  - Open the [[https://discord.com/developers/applications|Discord Developer Portal]] \\ +  - Open the [[https://discord.com/developers/applications|Discord Developer Portal]] 
-  - In the top right create a New Application and give it a name.  \\ +  - In the top right create a New Application and give it a name. 
-  - In the left panel select the Bot section. On the right click Add Bot.  \\ +  - In the left panel select the Bot section. On the right click Add Bot. 
-  - Click the Reset Token button. Copy that token and do not lose it. Also make sure nobody else has that token.  \\ +  - Click the Reset Token button. Copy that token and do not lose it. Also make sure nobody else has that token. 
-  - In the left panel select OAuth2-URL Generator and select the bot scope. Below that a permission list will appear. \\ +  - In the left panel select OAuth2-URL Generator and select the bot scope. Below that a permission list will appear. 
-  - Select the permissions you want. Read Message History, Manage Messages, Send Messages at least. Add more if you want.  \\+  - Select the permissions you want. Read Message History, Manage Messages, Send Messages at least. Add more if you want.
  
 {{:laptopwiki:guides:discord:stickybot_setup_scopes.png?300}} {{:laptopwiki:guides:discord:stickybot_setup_scopes.png?300}}
  
-  * Below that will be a generated invite link for your bot. Use that link to invite the bot to the server you want to use it in. \\+  * Below that will be a generated invite link for your bot. Use that link to invite the bot to the server you want to use it in.
  
-{{:laptopwiki:guides:discord:stickybot_server_invite.png?200}} \\+{{:laptopwiki:guides:discord:stickybot_server_invite.png?200}}
  
   * Now you should see your bot in your server. You might need to invite it to some channels manually.   * Now you should see your bot in your server. You might need to invite it to some channels manually.
  
-{{:laptopwiki:guides:discord:stickybot_bot_offline.png?200}} \\+{{:laptopwiki:guides:discord:stickybot_bot_offline.png?200}}
  
 ===== Bot Setup - Host ===== ===== Bot Setup - Host =====
  
-In the bot folder should be an .env file. +In the bot folder should be an .env file. If there isn't, create it:
-If there isn't, create it:+
 <code> <code>
 +
 touch .env touch .env
  
Line 73: Line 75:
 Open it in Nano text editor: Open it in Nano text editor:
  
-<code>nano .env+<code> 
 +nano .env
  
 </code> </code>
Line 79: Line 82:
 The file should contain the following content (DO NOT USE CTRL+V in nano, type it manually): The file should contain the following content (DO NOT USE CTRL+V in nano, type it manually):
  
-<code>DISCORD_BOT_TOKEN=+<code> 
 +DISCORD_BOT_TOKEN=
  
 </code> </code>
Line 85: Line 89:
 Now add the token you generated in a previous section on this line, so it looks like the following example: Now add the token you generated in a previous section on this line, so it looks like the following example:
  
-<code>DISCORD_BOT_TOKEN=MTAxMjYzMjA3NzM2RESTOFTHETOKEN+<code> 
 +DISCORD_BOT_TOKEN=MTAxMjYzMjA3NzM2RESTOFTHETOKEN
  
 </code> </code>
  
-Press Ctrl+O and Enter to save changes and Ctrl+X to exit Nano.  \\+Press Ctrl+O and Enter to save changes and Ctrl+X to exit Nano.
  
 ===== Installation ===== ===== Installation =====
  
-Enter the bot folder <code> cd /path/to/unpackaged/ </code> +Enter the bot folder
-Now install dependencies for the bot: +
  
 +<code>
 + cd /path/to/unpackaged/
  
-<code>npm install</code>+</code>
  
-You will most likely get a message talking about vulnerabilities. +Now install dependencies for the bot:
-You can fix that with:+
  
-<code>npm audit fix+Fedora/AlmaLinux or other RHEL derivatives 
 +<code>sudo dnf install npm</code> 
 + 
 +Debian/Ubuntu or other Debian derivatives 
 +<code>sudo apt install npm</code> 
 + 
 +Install NPM dependencies 
 +<code> 
 +npm install 
 +</code> 
 + 
 +You will most likely get a message talking about vulnerabilities. You can fix that with: 
 + 
 +<code> 
 +npm audit fix
 npm fund npm fund
  
 </code> </code>
 +Install dotenv
 +<code>npm install dotenv</code>
  
 Now run the bot with: Now run the bot with:
  
-<code>npm start+<code> 
 +npm start
  
 </code> </code>
Line 115: Line 137:
 If you get the following error, it probably means your bot token is incorrect: If you get the following error, it probably means your bot token is incorrect:
  
-<code>(node:133979) UnhandledPromiseRejectionWarning: ReferenceError: c is not defined+<code> 
 +(node:133979) UnhandledPromiseRejectionWarning: ReferenceError: c is not defined
     at /path/to/stickybot/src/main.js:10:15     at /path/to/stickybot/src/main.js:10:15
     at processTicksAndRejections (internal/process/task_queues.js:97:5)     at processTicksAndRejections (internal/process/task_queues.js:97:5)
Line 122: Line 145:
 </code> </code>
  
-Check your .env file and make sure the correct token is in the file. \\  \\ **Now you should see your bot online in your server and ready to send messages!**   \\ {{:laptopwiki:guides:discord:stickybot_bot_online.png?200}}+Check your .env file and make sure the correct token is in the file. \\  \\ **Now you should see your bot online in your server and ready to send messages!** \\ {{:laptopwiki:guides:discord:stickybot_bot_online.png?200}}
  
 ===== Messages.json ===== ===== Messages.json =====
Line 128: Line 151:
 In the bot folder is a file messages.json. The bot takes messages from this file and prints them into a Discord message. These messages can be edited while the bot is running. \\  \\ Copy the following template to your messages.json: In the bot folder is a file messages.json. The bot takes messages from this file and prints them into a Discord message. These messages can be edited while the bot is running. \\  \\ Copy the following template to your messages.json:
  
-<code>{+<code> 
 +{
     "928291939244195882": "This is a text field",     "928291939244195882": "This is a text field",
     "comment": "Test channel"     "comment": "Test channel"
Line 135: Line 159:
 </code> </code>
  
-The number on the first line is the channel ID. You can get it by activating developer mode in the Discord Client, right clicking on a channel and selecting Copy ID.  \\ You can find that toggle in Discord Settings - Advanced - Developer Mode+The number on the first line is the channel ID. You can get it by activating developer mode in the Discord Client, right clicking on a channel and selecting Copy ID. \\ You can find that toggle in Discord Settings - Advanced - Developer Mode
  
 After the channel ID comes the text. This can have basic formatting like bold and code block: After the channel ID comes the text. This can have basic formatting like bold and code block:
  
-<code>{+<code> 
 +{
     "928291939244195882": "`This is a text field`",     "928291939244195882": "`This is a text field`",
     "comment": "Test channel"     "comment": "Test channel"
Line 146: Line 171:
 </code> </code>
  
-{{:laptopwiki:guides:discord:stickybot_codeblock.png?200}} \\  \\ The comment line is just for you to say what channel belongs that message to.  \\  \\ If you want to add another message to a different channel just replicate this syntax, but add a , at the end of a line:+{{:laptopwiki:guides:discord:stickybot_codeblock.png?200}} \\  \\ The comment line is just for you to say what channel belongs that message to. \\  \\ If you want to add another message to a different channel just replicate this syntax, but add a , at the end of a line:
  
-<code>{+<code> 
 +{
     "928291939244195882": "`This is a text field`",     "928291939244195882": "`This is a text field`",
     "comment": "Test channel",     "comment": "Test channel",
Line 159: Line 185:
 Do not add , to the very last line, that won't work. Do not add , to the very last line, that won't work.
  
-===== Run stickybot in the background =====+===== Run stickybot in the background manually =====
  
-Unless you want to keep the SSH connection active all the time to keep the bot running you will need to run it in the background. To do that we will use a Linux terminal application called [[https://www.gnu.org/software/screen/|Screen]]  \\   \\  To install it run:+Unless you want to keep the SSH connection active all the time to keep the bot running you will need to run it in the background. To do that we will use a Linux terminal application called [[https://www.gnu.org/software/screen/|Screen]] \\ 
 + \\ 
 +To install it run:
 <code> <code>
 +
 sudo apt install screen sudo apt install screen
  
Line 169: Line 198:
 Then create a session with: Then create a session with:
  
-<code>screen -S stickybot+<code> 
 +screen -S stickybot
  
 </code> </code>
Line 175: Line 205:
 Now you are in a Screen session. Now you can start the bot: Now you are in a Screen session. Now you can start the bot:
  
-<code>npm start+<code> 
 +npm start
  
 </code> </code>
  
-To properly exit it press CTRL+A and then D. +To properly exit it press CTRL+A and then D. To get back into the session (or Attach it) use:
-To get back into the session (or Attach it) use:+
  
-<code>screen -r session-name+<code> 
 +screen -r session-name
  
 </code> </code>
Line 190: Line 221:
 Create a session: Create a session:
  
-<code>screen -S stickybot+<code> 
 +screen -S stickybot
  
 </code> </code>
Line 196: Line 228:
 List all sessions: List all sessions:
  
-<code>screen -ls+<code> 
 +screen -ls
  
 </code> </code>
Line 202: Line 235:
 Kill a particular session : Kill a particular session :
  
-<code>screen -XS sessionid/name quit+<code> 
 +screen -XS sessionid/name quit
  
 </code> </code>
Line 208: Line 242:
 Kill all Screen sessions: Kill all Screen sessions:
  
-<code>pkill screen+<code> 
 +pkill screen
  
 </code> </code>
  
 ===== Running Stickybot as a systemd service ===== ===== Running Stickybot as a systemd service =====
-[[:laptopwiki:guides:os:linux:npmsystemdservice| Running "npm start" App As a Systemd Service]]+ 
 +[[:laptopwiki:guides:os:linux:npmsystemdservice|]]
  
 — //[[:laptopwiki:staff:index|dustojnikhummer]] 2022/12/30 08:01// — //[[:laptopwiki:staff:index|dustojnikhummer]] 2022/12/30 08:01//
  
  
  • laptopwiki/guides/discord/stickybot.1719667048.txt.gz
  • Last modified: 29/06/2024 15:17
  • by 127.0.0.1