|
@@ -0,0 +1,173 @@
|
|
|
+ <!DOCTYPE html>
|
|
|
+ <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
|
|
+ <head>
|
|
|
+ <title>Install FocalBoard - Project and Task Management Platform - on Linux</title>
|
|
|
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
|
+ <meta charset="UTF-8">
|
|
|
+ <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">
|
|
|
+ <meta name="author" content="i12bretro">
|
|
|
+ <meta name="description" content="Install FocalBoard - Project and Task Management Platform - on Linux">
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
+ <meta name="revised" content="09/23/2024 04:29:31 AM" />
|
|
|
+ <link rel="icon" type="image/x-icon" href="includes/favicon.ico">
|
|
|
+ <script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
|
|
|
+ <script type="text/javascript" src="includes/js/steps.js"></script>
|
|
|
+ <link href="css/steps.css" rel="stylesheet" type="text/css" />
|
|
|
+ </head>
|
|
|
+ <body>
|
|
|
+ <div id="gridContainer">
|
|
|
+ <div class="topMargin"></div>
|
|
|
+ <div id="listName" class="topMargin">
|
|
|
+ <h1>Install FocalBoard - Project and Task Management Platform - on Linux</h1>
|
|
|
+ </div>
|
|
|
+ <div></div>
|
|
|
+ <div id="content">
|
|
|
+ <h2>What is FocalBoard?</h2>
|
|
|
+
|
|
|
+<blockquote><em>Focalboard is an open source, multilingual, self-hosted project management tool that'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>
|
|
|
+
|
|
|
+<h2>Installation</h2>
|
|
|
+
|
|
|
+<ol>
|
|
|
+ <li>Log into the Linux device</li>
|
|
|
+ <li>Run the following commands in a terminal:
|
|
|
+ <div class="codeBlock"># update software repositories<br />
|
|
|
+ sudo apt update<br />
|
|
|
+ # install any available software updates<br />
|
|
|
+ sudo apt upgrade -y<br />
|
|
|
+ # install nginx and MySQL database<br />
|
|
|
+ sudo apt install nginx mariadb-server mariadb-client -y<br />
|
|
|
+ # configure the MySQL database<br />
|
|
|
+ sudo su<br />
|
|
|
+ mysql_secure_installation</div>
|
|
|
+ </li>
|
|
|
+ <li>Press Enter to login as root</li>
|
|
|
+ <li>Type N and press Enter to not switch to socket authentication</li>
|
|
|
+ <li>Type Y and press Enter to set a root password, type the password twice to confirm</li>
|
|
|
+ <li>Type Y and press Enter to remove anonymous users</li>
|
|
|
+ <li>Type Y and press Enter to disallow root login remotely</li>
|
|
|
+ <li>Type Y and press Enter to remove the test database</li>
|
|
|
+ <li>Type Y and press Enter to reload privilege tables</li>
|
|
|
+ <li>Run the following command to login into MySQL:
|
|
|
+ <div class="codeBlock">mysql -u root -p</div>
|
|
|
+ </li>
|
|
|
+ <li>Authenticate with the root password set earlier</li>
|
|
|
+ <li>Run the following commands to create the database and database user
|
|
|
+ <div class="codeBlock">CREATE DATABASE focalboard DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;<br />
|
|
|
+ GRANT ALL ON focalboard.* TO 'focalboard_rw'@'localhost' IDENTIFIED BY 'Foc@lB0a4d';<br />
|
|
|
+ FLUSH PRIVILEGES;<br />
|
|
|
+ EXIT;<br />
|
|
|
+ exit</div>
|
|
|
+ </li>
|
|
|
+ <li>Continue with the following commands to download and extract FocalBoard to the webroot
|
|
|
+ <div class="codeBlock"># fetch the latest download URL<br />
|
|
|
+ regex='"browser_download_url": "(https:\/\/github.com\/mattermost\/focalboard\/releases\/download\/[^/]*\/focalboard-server-linux-amd64\.tar\.gz)"' && response=$(curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/mattermost/focalboard/releases) && [[ $response =~ $regex ]] && downloadURL="${BASH_REMATCH[1]}"<br />
|
|
|
+ # download latest focalboard version<br />
|
|
|
+ wget -O /tmp/focalboard.tar.gz $downloadURL<br />
|
|
|
+ # extract the downloaded archive<br />
|
|
|
+ sudo tar -xvzf /tmp/focalboard.tar.gz -C /opt<br />
|
|
|
+ # edit focalboard configuration<br />
|
|
|
+ sudo nano /opt/focalboard/config.json</div>
|
|
|
+ </li>
|
|
|
+ <li>Update the dbtype and dbconfig to the following
|
|
|
+ <p>"dbtype": "mysql",<br />
|
|
|
+ "dbconfig": "focalboard_rw:Foc@lB0a4d@tcp(127.0.0.1:3306)/focalboard",</p>
|
|
|
+ </li>
|
|
|
+ <li>Continue with the following commands
|
|
|
+ <div class="codeBlock"># create nginx config file<br />
|
|
|
+ sudo nano /etc/nginx/sites-available/focalboard</div>
|
|
|
+ </li>
|
|
|
+ <li>Paste the following configuration
|
|
|
+ <p>upstream focalboard {<br />
|
|
|
+  server localhost:8000;<br />
|
|
|
+  keepalive 32;<br />
|
|
|
+ }<br />
|
|
|
+ <br />
|
|
|
+ server {<br />
|
|
|
+  listen 80 default_server;<br />
|
|
|
+ <br />
|
|
|
+  server_name focalboard.example.com;<br />
|
|
|
+ <br />
|
|
|
+  location ~ /ws/* {<br />
|
|
|
+   proxy_set_header Upgrade $http_upgrade;<br />
|
|
|
+   proxy_set_header Connection "upgrade";<br />
|
|
|
+   client_max_body_size 50M;<br />
|
|
|
+   proxy_set_header Host $http_host;<br />
|
|
|
+   proxy_set_header X-Real-IP $remote_addr;<br />
|
|
|
+   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br />
|
|
|
+   proxy_set_header X-Forwarded-Proto $scheme;<br />
|
|
|
+   proxy_set_header X-Frame-Options SAMEORIGIN;<br />
|
|
|
+   proxy_buffers 256 16k;<br />
|
|
|
+   proxy_buffer_size 16k;<br />
|
|
|
+   client_body_timeout 60;<br />
|
|
|
+   send_timeout 300;<br />
|
|
|
+   lingering_timeout 5;<br />
|
|
|
+   proxy_connect_timeout 1d;<br />
|
|
|
+   proxy_send_timeout 1d;<br />
|
|
|
+   proxy_read_timeout 1d;<br />
|
|
|
+   proxy_pass http://focalboard;<br />
|
|
|
+  }<br />
|
|
|
+ <br />
|
|
|
+  location / {<br />
|
|
|
+   client_max_body_size 50M;<br />
|
|
|
+   proxy_set_header Connection "";<br />
|
|
|
+   proxy_set_header Host $http_host;<br />
|
|
|
+   proxy_set_header X-Real-IP $remote_addr;<br />
|
|
|
+   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br />
|
|
|
+   proxy_set_header X-Forwarded-Proto $scheme;<br />
|
|
|
+   proxy_set_header X-Frame-Options SAMEORIGIN;<br />
|
|
|
+   proxy_buffers 256 16k;<br />
|
|
|
+   proxy_buffer_size 16k;<br />
|
|
|
+   proxy_read_timeout 600s;<br />
|
|
|
+   proxy_cache_revalidate on;<br />
|
|
|
+   proxy_cache_min_uses 2;<br />
|
|
|
+   proxy_cache_use_stale timeout;<br />
|
|
|
+   proxy_cache_lock on;<br />
|
|
|
+   proxy_http_version 1.1;<br />
|
|
|
+   proxy_pass http://focalboard;<br />
|
|
|
+  }<br />
|
|
|
+ }</p>
|
|
|
+ </li>
|
|
|
+ <li>Press CTRL+O, Enter, CTRL+X to write the changes</li>
|
|
|
+ <li>Continue with the following commands
|
|
|
+ <div class="codeBlock"># remove default nginx site<br />
|
|
|
+ sudo rm /etc/nginx/sites-enabled/default<br />
|
|
|
+ # enable the focalboard site config<br />
|
|
|
+ sudo ln -s /etc/nginx/sites-available/focalboard /etc/nginx/sites-enabled/focalboard<br />
|
|
|
+ # restart nginx service<br />
|
|
|
+ sudo nginx -t && sudo /etc/init.d/nginx reload<br />
|
|
|
+ # create focalboard service<br />
|
|
|
+ sudo nano /lib/systemd/system/focalboard.service</div>
|
|
|
+ </li>
|
|
|
+ <li>Paste the following service configuration
|
|
|
+ <p>[Unit]<br />
|
|
|
+ Description=Focalboard server</p>
|
|
|
+
|
|
|
+ <p>[Service]<br />
|
|
|
+ Type=simple<br />
|
|
|
+ Restart=always<br />
|
|
|
+ RestartSec=5s<br />
|
|
|
+ ExecStart=/opt/focalboard/bin/focalboard-server<br />
|
|
|
+ WorkingDirectory=/opt/focalboard</p>
|
|
|
+
|
|
|
+ <p>[Install]<br />
|
|
|
+ WantedBy=multi-user.target</p>
|
|
|
+ </li>
|
|
|
+ <li>Press CTRL+O, Enter, CTRL+X to write the changes</li>
|
|
|
+ <li>Continue with the following commands
|
|
|
+ <div class="codeBlock"># reload services<br />
|
|
|
+ sudo systemctl daemon-reload<br />
|
|
|
+ # start and enable focalboard service<br />
|
|
|
+ sudo systemctl enable focalboard.service --now</div>
|
|
|
+ </li>
|
|
|
+ <li>Open a web browser and navigate to http://DNSorIP</li>
|
|
|
+ <li>Click the link to create an account</li>
|
|
|
+ <li>Completed the form by entering an email, username and password > Click Register</li>
|
|
|
+ <li>Welcome to FocalBoard</li>
|
|
|
+</ol>
|
|
|
+
|
|
|
+<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>
|
|
|
+ </div>
|
|
|
+ </body>
|
|
|
+ </html>
|
|
|
+
|