0960.html 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <!DOCTYPE html>
  2. <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>Install FocalBoard - Project and Task Management Platform - on Linux</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. <meta charset="UTF-8">
  7. <meta name="keywords" content="Browser Based,Home Lab,Home Lab Ideas,Install Guide,Web Based,Web Based Tools,Debian,Kanban,Linux,Self-Hosted,Task Management,Todo,Ubuntu,Visual Task Manager,Visual Task Organization,Project Management,Focalboard,Kanban Board,How To,Tutorial,i12bretro">
  8. <meta name="author" content="i12bretro">
  9. <meta name="description" content="Install FocalBoard - Project and Task Management Platform - on Linux">
  10. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  11. <meta name="revised" content="09/23/2024 04:29:31 AM" />
  12. <link rel="icon" type="image/x-icon" href="includes/favicon.ico">
  13. <script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
  14. <script type="text/javascript" src="includes/js/steps.js"></script>
  15. <link href="css/steps.css" rel="stylesheet" type="text/css" />
  16. </head>
  17. <body>
  18. <div id="gridContainer">
  19. <div class="topMargin"></div>
  20. <div id="listName" class="topMargin">
  21. <h1>Install FocalBoard - Project and Task Management Platform - on Linux</h1>
  22. </div>
  23. <div></div>
  24. <div id="content">
  25. <h2>What is FocalBoard?</h2>
  26. <blockquote><em>Focalboard is an open source, multilingual, self-hosted project management tool that&#39;s an alternative to Trello, Notion, and Asana. It helps define, organize, track and manage work across individuals and teams. -<a href="https://github.com/mattermost/focalboard" target="_blank">https://github.com/mattermost/focalboard</a></em></blockquote>
  27. <h2>Installation</h2>
  28. <ol>
  29. <li>Log into the Linux device</li>
  30. <li>Run the following commands in a terminal:
  31. <div class="codeBlock"># update software repositories<br />
  32. sudo apt update<br />
  33. # install any available software updates<br />
  34. sudo apt upgrade -y<br />
  35. # install nginx and MySQL database<br />
  36. sudo apt install nginx mariadb-server mariadb-client -y<br />
  37. # configure the MySQL database<br />
  38. sudo su<br />
  39. mysql_secure_installation</div>
  40. </li>
  41. <li>Press Enter to login as root</li>
  42. <li>Type N and press Enter to not switch to socket authentication</li>
  43. <li>Type Y and press Enter to set a root password, type the password twice to confirm</li>
  44. <li>Type Y and press Enter to remove anonymous users</li>
  45. <li>Type Y and press Enter to disallow root login remotely</li>
  46. <li>Type Y and press Enter to remove the test database</li>
  47. <li>Type Y and press Enter to reload privilege tables</li>
  48. <li>Run the following command to login into MySQL:
  49. <div class="codeBlock">mysql -u root -p</div>
  50. </li>
  51. <li>Authenticate with the root password set earlier</li>
  52. <li>Run the following commands to create the database and database user
  53. <div class="codeBlock">CREATE DATABASE focalboard DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;<br />
  54. GRANT ALL ON focalboard.* TO &#39;focalboard_rw&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;Foc@lB0a4d&#39;;<br />
  55. FLUSH PRIVILEGES;<br />
  56. EXIT;<br />
  57. exit</div>
  58. </li>
  59. <li>Continue with the following commands to download and extract FocalBoard to the webroot
  60. <div class="codeBlock"># fetch the latest download URL<br />
  61. regex=&#39;&quot;browser_download_url&quot;: &quot;(https:\/\/github.com\/mattermost\/focalboard\/releases\/download\/[^/]*\/focalboard-server-linux-amd64\.tar\.gz)&quot;&#39; &amp;&amp; response=$(curl -H &quot;Accept: application/vnd.github.v3+json&quot; https://api.github.com/repos/mattermost/focalboard/releases) &amp;&amp; [[ $response =~ $regex ]] &amp;&amp; downloadURL=&quot;${BASH_REMATCH[1]}&quot;<br />
  62. # download latest focalboard version<br />
  63. wget -O /tmp/focalboard.tar.gz $downloadURL<br />
  64. # extract the downloaded archive<br />
  65. sudo tar -xvzf /tmp/focalboard.tar.gz -C /opt<br />
  66. # edit focalboard configuration<br />
  67. sudo nano /opt/focalboard/config.json</div>
  68. </li>
  69. <li>Update the dbtype and dbconfig to the following
  70. <p>&quot;dbtype&quot;: &quot;mysql&quot;,<br />
  71. &quot;dbconfig&quot;: &quot;focalboard_rw:Foc@lB0a4d@tcp(127.0.0.1:3306)/focalboard&quot;,</p>
  72. </li>
  73. <li>Continue with the following commands
  74. <div class="codeBlock"># create nginx config file<br />
  75. sudo nano /etc/nginx/sites-available/focalboard</div>
  76. </li>
  77. <li>Paste the following configuration
  78. <p>upstream focalboard {<br />
  79. &emsp;server localhost:8000;<br />
  80. &emsp;keepalive 32;<br />
  81. }<br />
  82. <br />
  83. server {<br />
  84. &emsp;listen 80 default_server;<br />
  85. <br />
  86. &emsp;server_name focalboard.example.com;<br />
  87. <br />
  88. &emsp;location ~ /ws/* {<br />
  89. &emsp;&emsp;proxy_set_header Upgrade $http_upgrade;<br />
  90. &emsp;&emsp;proxy_set_header Connection &quot;upgrade&quot;;<br />
  91. &emsp;&emsp;client_max_body_size 50M;<br />
  92. &emsp;&emsp;proxy_set_header Host $http_host;<br />
  93. &emsp;&emsp;proxy_set_header X-Real-IP $remote_addr;<br />
  94. &emsp;&emsp;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br />
  95. &emsp;&emsp;proxy_set_header X-Forwarded-Proto $scheme;<br />
  96. &emsp;&emsp;proxy_set_header X-Frame-Options SAMEORIGIN;<br />
  97. &emsp;&emsp;proxy_buffers 256 16k;<br />
  98. &emsp;&emsp;proxy_buffer_size 16k;<br />
  99. &emsp;&emsp;client_body_timeout 60;<br />
  100. &emsp;&emsp;send_timeout 300;<br />
  101. &emsp;&emsp;lingering_timeout 5;<br />
  102. &emsp;&emsp;proxy_connect_timeout 1d;<br />
  103. &emsp;&emsp;proxy_send_timeout 1d;<br />
  104. &emsp;&emsp;proxy_read_timeout 1d;<br />
  105. &emsp;&emsp;proxy_pass http://focalboard;<br />
  106. &emsp;}<br />
  107. <br />
  108. &emsp;location / {<br />
  109. &emsp;&emsp;client_max_body_size 50M;<br />
  110. &emsp;&emsp;proxy_set_header Connection &quot;&quot;;<br />
  111. &emsp;&emsp;proxy_set_header Host $http_host;<br />
  112. &emsp;&emsp;proxy_set_header X-Real-IP $remote_addr;<br />
  113. &emsp;&emsp;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br />
  114. &emsp;&emsp;proxy_set_header X-Forwarded-Proto $scheme;<br />
  115. &emsp;&emsp;proxy_set_header X-Frame-Options SAMEORIGIN;<br />
  116. &emsp;&emsp;proxy_buffers 256 16k;<br />
  117. &emsp;&emsp;proxy_buffer_size 16k;<br />
  118. &emsp;&emsp;proxy_read_timeout 600s;<br />
  119. &emsp;&emsp;proxy_cache_revalidate on;<br />
  120. &emsp;&emsp;proxy_cache_min_uses 2;<br />
  121. &emsp;&emsp;proxy_cache_use_stale timeout;<br />
  122. &emsp;&emsp;proxy_cache_lock on;<br />
  123. &emsp;&emsp;proxy_http_version 1.1;<br />
  124. &emsp;&emsp;proxy_pass http://focalboard;<br />
  125. &emsp;}<br />
  126. }</p>
  127. </li>
  128. <li>Press CTRL+O, Enter, CTRL+X to write the changes</li>
  129. <li>Continue with the following commands
  130. <div class="codeBlock"># remove default nginx site<br />
  131. sudo rm /etc/nginx/sites-enabled/default<br />
  132. # enable the focalboard site config<br />
  133. sudo ln -s /etc/nginx/sites-available/focalboard /etc/nginx/sites-enabled/focalboard<br />
  134. # restart nginx service<br />
  135. sudo nginx -t &amp;&amp; sudo /etc/init.d/nginx reload<br />
  136. # create focalboard service<br />
  137. sudo nano /lib/systemd/system/focalboard.service</div>
  138. </li>
  139. <li>Paste the following service configuration
  140. <p>[Unit]<br />
  141. Description=Focalboard server</p>
  142. <p>[Service]<br />
  143. Type=simple<br />
  144. Restart=always<br />
  145. RestartSec=5s<br />
  146. ExecStart=/opt/focalboard/bin/focalboard-server<br />
  147. WorkingDirectory=/opt/focalboard</p>
  148. <p>[Install]<br />
  149. WantedBy=multi-user.target</p>
  150. </li>
  151. <li>Press CTRL+O, Enter, CTRL+X to write the changes</li>
  152. <li>Continue with the following commands
  153. <div class="codeBlock"># reload services<br />
  154. sudo systemctl daemon-reload<br />
  155. # start and enable focalboard service<br />
  156. sudo systemctl enable focalboard.service --now</div>
  157. </li>
  158. <li>Open a web browser and navigate to http://DNSorIP</li>
  159. <li>Click the link to create an account</li>
  160. <li>Completed the form by entering an email, username and password &gt; Click Register</li>
  161. <li>Welcome to FocalBoard</li>
  162. </ol>
  163. <p>Source: <a href="https://www.focalboard.com/download/personal-edition/ubuntu/" target="_blank">https://www.focalboard.com/download/personal-edition/ubuntu/</a></p> </div>
  164. </div>
  165. </body>
  166. </html>