Linux

How to Install the GitScrum Agile Project Management Tool on Ubuntu 20.04 LTS

How to Install the GitScrum Agile Project Management Tool on Ubuntu 20.04 LTS

GitScrum is an open source project management tool based on the Laravel framework and is designed to help the development team to use Git and Scrum for more agile task management. This can be integrated with Github or Gitlab or Bitbucket. This is designed for startups, sales, marketing agents, developers and freelancers to manage their projects easily. It offers very useful features including, Product Backlog, User Story, Sprint Backlog, Problems and more.

In this tutorial, we will explain how to install GitScrum on an Ubuntu 20.04 server.

Precondition

  • Server running Ubuntu 20.04.
  • A valid domain name is indicated by your VPS.
  • The root password is set up on your server.

Start

First, you need to update your system package to the latest version. You can update it with the following command:

apt-get update -y
apt-get upgrade -y

After your system is updated, restart to apply changes.

Install Apache, MariaDB and PHP

GitScrum runs on a web server, uses MariaDB / MySQL for the backend database and is based on the Laravel framework. So you need to install the Apache, MariaDB, PHP and PHP extensions that are needed on your system. You can install everything by running the following command:

apt-get install apache2 mariadb-server libapache2-mod-php7.4 php7.4 php7.4-cli php7.4-mysql php7.4-zip php7.4-json php7.4-gd php7.4-mbstring php7.4-curl php7.4-xml php-pear php7.4-bcmath php7.4-common git openssl unzip -y

After all packages are installed, edit the php.ini file and change with the desired values:

nano /etc/php/7.4/apache2/php.ini

Change the following lines:

memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Save and close the file when you are finished. Then, start the Apache and MariaDB services, and enable them to start on the system reboot with the following command:

systemctl start apache2
systemctl start mariadb
systemctl enable apache2
systemctl enable mariadb

After completion, you can continue to the next step.

Configure Database for GitScrum

First, you must secure the MariaDB installation and set the MariaDB root password. You can do this by running the following script:

mysql_secure_installation

This script will set the MariaDB root password, delete anonymous users, disable remote root login and delete the test database as shown below:

Enter current password for root (enter for none):
OK, successfully used password, moving on...
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

After MariaDB is secured, enter the MariaDB shell with the following command:

mysql -u root -p

Provide your MariaDB root password when prompted then create a database and user for GitScrum with the following command:

MariaDB [(none)]> CREATE DATABASE gitscrum;
MariaDB [(none)]> CREATE USER 'gitscrum'@'localhost' IDENTIFIED BY 'password';

Next, grant all the privileges to the gitscrum with the following command:

MariaDB [(none)]> GRANT ALL ON gitscrum.* TO 'gitscrum'@'localhost' WITH GRANT OPTION;

Next, flush the privileges and exit from the MariaDB shell with the following command:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Once your database is configured, you can proceed to the next step.

Install Composer

Next, you will need to install Composer in your system. Composer is a dependency manager for PHP and used to install PHP dependencies required for your project.

You can install the Composer with the following command:

apt-get install composer -y

Once installed, you can verify the installed version of Composer with the following command:

composer --version
Composer 1.10.1 2020-03-13 20:34:27

Once you are finished, you can proceed to the next step.

Download GitScrum

First, change the directory to the Apache web root directory and download the latest version of GitScrum from the Git repository with the following command:

cd /var/www/html
git clone https://github.com/GitScrum-Community/laravel-gitscrum.git

Once the download is completed, change the directory to laravel-gitscrum and update the GitScrum packages with the following command:

cd laravel-gitscrum
composer update
composer run-script post-root-package-install

You should see the following output:

> @php -r "file_exists('.env') || copy('.env.example', '.env');"

Once you are finished, you can proceed to the next step.

Configure GitScrum

In order to integrate GitScrum with GitLab, you will need to sign in to GitLab and create an app.

You can create it by visiting the URL https://gitlab.com/profile/applications. You should see the GitLab login screen:

1(3)

Provide your GitLab username and password, and click the Enter button. You will see the following screen:

2(4)

3(3)

Give the name of your application, redirect the URL, select the scope and click the Save app button. You should see your application ID and Secret on the following screen.

4(3)

Next, you need to specify your application ID and Secret in the .env file.

nano /var/www/html/laravel-gitscrum/.env

Define your database details, app URL, GitLab ID and Secret as shown below:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=gitscrum
DB_USERNAME=gitscrum
DB_PASSWORD=password
APP_URL=http://gitscrum.linuxbuz.com
GITLAB_KEY=19ed6d8500710c32049e703c537e0c2251f41bdaedb6ca3f9d3276a0ea2fe484
GITLAB_SECRET=efe24736031571d59a5994d860f561c69d7c3bb46ab4a4fdae6406972df21565
GITLAB_INSTANCE_URI=https://gitlab.com/

Save and close the file when you are finished. Then, migrate the database with the following command:

php artisan migrate
php artisan db:seed

You should see the following output:

Seeding: ConfigIssueEffortsTableSeeder
Seeding: ConfigPrioritiesTableSeeder
Seeding: IssueTypesTableSeeder
Seeding: ConfigStatusesTableSeeder

Next, change the ownership and permission of the laravel-gitscrum with the following command:

chown -R www-data:www-data /var/www/html/laravel-gitscrum
chmod -R 775 /var/www/html/laravel-gitscrum

Once you are finished, you can proceed to the next step.

Configure Apache for GitScrum

Next, you will need to create an Apache virtual host configuration file for GitScrum. You can create it with the following command:

nano /etc/apache2/sites-available/gitscrum.conf

Add the following lines:

<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/laravel-gitscrum/public/
     ServerName gitscrum.linuxbuz.com
     ErrorLog /var/log/apache2/gitscrum-error.log
     CustomLog /var/log/apache2/gitscrum-access.log combined
 
     <Directory /var/www/html/laravel-gitscrum/public/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     </Directory>

</VirtualHost>

Save and close the file when you are finished. Then, verify Apache for any configuration error with the following command:

apachectl configtest

If everything is fine, you should see the following output:

Syntax OK

Next, enable the GitScrum virtual host with the following comamnd:

a2ensite gitscrum.conf

Next, enable the Apache rewrite module and restart the Apache service to apply the changes:

a2enmod rewrite
systemctl restart apache2

You can also verify the Apache service status using the following command:

systemctl status apache2

You should get the following output:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-07-03 07:42:29 UTC; 4min 35s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 16070 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
   Main PID: 13697 (apache2)
      Tasks: 6 (limit: 2353)
     Memory: 23.5M
     CGroup: /system.slice/apache2.service
             ??13697 /usr/sbin/apache2 -k start
             ??16074 /usr/sbin/apache2 -k start
             ??16075 /usr/sbin/apache2 -k start
             ??16076 /usr/sbin/apache2 -k start
             ??16077 /usr/sbin/apache2 -k start
             ??16078 /usr/sbin/apache2 -k start

July 03 07:42:29 ubuntu20 systemd[1]: Starting The Apache HTTP Server...

At this point, Apache web server is configured to serve GitScrum. You can now proceed to the next step.

Access the GitScrum Web Interface

Now, open your web browser and type the URL http://gitscrum.linuxbuz.com. You will be redirected to the following page:

5(2)

Click the GitLab button to enter with GitLab. You will see the following screen:

6(2)

Provide your GitLab username, password and click the Enter button. You will see the following screen:

7(2)

Now, click the Authorize button for GitScrum Authorization to use your account. You will see the following screen:

8(2)

Now, you can import your repository into GitScrum and start working.

Conclusion

Congratulations! You have successfully installed GitScrum and integrated it with GitLab on the Ubuntu 20.04 server. You can now use GitScrum in a development environment and start using Git with Scrum for task management. For more information, visit the official GitScrum documentation. Feel free to ask me if you have questions.

Related posts

How to get started with Kali Linux in 2020

Linux

How to Install Apache on Ubuntu 20.04

Linux

How to Activate Snap Package Manager on Linux Mint 20

Linux

How to Install Apache ActiveMQ on Debian 10

Linux

How to make Namespaces in Kubernetes

Linux

How to Install Nginx with PHP and MySQL (LEMP Stack) on Ubuntu 20.04 LTS

Linux

How to Install Ubuntu on a Raspberry Pi

Linux

How to install Linux Kernel 5.7 on Ubuntu

Linux

How to Install MySQL on Ubuntu 20.04

Linux