Steps to Setup GitScrum on Ubuntu 20.04 LTS

GitScrum is a free & open source project management tool. GitScrum helps to teams to use Git version control system and the Scrum framework to support for day-to-day task management.

There are some steps to setup GitScrum on ubuntu:

Step 1: Update the System.

apt-get update

Step 2: Install Apache2.

apt-get install apache2

  • Start & Enable the Apache2.

systemctl start apache2
systemctl enable apache2

  • Here is the command output.

root@ip-172-31-30-203:/home/ubuntu# systemctl start apache2
root@ip-172-31-30-203:/home/ubuntu# systemctl enable apache2
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2

Step 3: Install PHP.

  • Install the software & add the php repository.

apt-get install software-properties-common
add-apt-repository ppa:ondrej/php

  • Update the packages.

apt update

  • Install Php7.2 & modules.

apt install php7.2 php7.2-bcmath php7.2-cgi php7.2-cli php7.2-common php-curl php7.2-dba php7.2-enchant php7.2-fpm php7.2-gd php7.2-imap php7.2-intl php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-opcache php-imagick php-memcache php7.2-soap php7.2-tidy php7.2-xml php7.2-zip libapache2-mod-php7.2 xvfb libfontconfig wkhtmltopdf

  • Check Php version.

php -v

  • Here is the command output.

root@ip-172-31-30-203:/home/ubuntu# php -v
PHP 7.2.34-28+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Nov 19 2021 06:36:58) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.34-28+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

Step 4: Install Mysql Server.

apt install mysql-server

  • Here is the command output.

root@ip-172-31-30-203:/home/ubuntu# apt install mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl
libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libmecab2 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils
mysql-client-8.0 mysql-client-core-8.0 mysql-server-8.0 mysql-server-core-8.0
Suggested packages:
libdata-dump-perl libipc-sharedcache-perl libwww-perl mailx tinyca
The following NEW packages will be installed:
libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-7 libevent-pthreads-2.1-7 libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl
libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes-perl libmecab2 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils
mysql-client-8.0 mysql-client-core-8.0 mysql-server mysql-server-8.0 mysql-server-core-8.0
0 upgraded, 24 newly installed, 0 to remove and 37 not upgraded.
Need to get 31.9 MB of archives.
After this operation, 263 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

  • Start & Enable the mysql service.

systemctl start mysql
systemctl enable mysql

  • Here is the command output.

root@ip-172-31-30-203:/home/ubuntu# systemctl start mysql
root@ip-172-31-30-203:/home/ubuntu# systemctl enable mysql
Synchronizing state of mysql.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mysql

  • Login on mysql console.

mysql -u root -p

  • Press Enter.
  • Here is the command output.

root@ip-172-31-30-203:/home/ubuntu# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.27-0ubuntu0.20.04.1 (Ubuntu)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

  • Create the database,user & set the password.

CREATE DATABASE gitscrum;
CREATE USER 'gitscrumuser'@'localhost' IDENTIFIED BY 'Password';
GRANT ALL ON gitscrum.* TO 'gitscrumuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

  • Here is the command output.

mysql> CREATE DATABASE gitscrum;
Query OK, 1 row affected (0.01 sec)
mysql> CREATE USER 'gitscrumuser'@'localhost' IDENTIFIED BY 'Password';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL ON gitscrum.* TO 'gitscrumuser'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql> EXIT;
Bye

Step 5: Install Composer.

apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

  • Here is the command output.

root@ip-172-31-30-203:/home/ubuntu# curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer
Downloading...
Composer (version 2.2.3) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Step 6: Install GitScrum on Ubuntu 20.04 LTS.

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

  • Here is the command output.

root@ip-172-31-30-203:/home/ubuntu# cd /var/www/html
root@ip-172-31-30-203:/var/www/html# git clone https://github.com/GitScrum-Community/laravel-gitscrum.git
Cloning into 'laravel-gitscrum'...
remote: Enumerating objects: 8019, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 8019 (delta 5), reused 3 (delta 0), pack-reused 8006
Receiving objects: 100% (8019/8019), 14.08 MiB | 19.64 MiB/s, done.
Resolving deltas: 100% (4266/4266), done.

  • Change the directory to laravel-gitscrum & update the GitScrum packages.

cd laravel-gitscrum
composer update

  • Here is the command output.

root@ip-172-31-30-203:/var/www/html# cd laravel-gitscrum
root@ip-172-31-30-203:/var/www/html/laravel-gitscrum# composer update
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]? yes
Composer is operating significantly slower than normal because you do not have the PHP curl extension enabled.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 11 installs, 65 updates, 1 removal
- Removing symfony/polyfill-util (v1.9.0)
- Upgrading doctrine/cache (v1.8.0 => 2.1.1)
- Upgrading doctrine/dbal (v2.8.0 => 2.13.7)
- Locking doctrine/deprecations (v0.5.3)
- Upgrading doctrine/event-manager (v1.0.0 => 1.1.1)
- Upgrading doctrine/inflector (v1.3.0 => 1.4.4)
- Upgrading doctrine/instantiator (1.1.0 => 1.4.0)
- Downloading symfony/dom-crawler (v3.2.3)
- Downloading namshi/jose (7.2.3)
- Downloading tymon/jwt-auth (0.5.12)
- Installing kylekatarnls/update-helper (1.2.1): Extracting archive
kylekatarnls/update-helper contains a Composer plugin which is currently not in your allow-plugins config. See https://getcomposer.org/allow-plugins

  • Type y.

Do you trust "kylekatarnls/update-helper" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?] y
- Installing doctrine/event-manager (1.1.1): Extracting archive
- Installing doctrine/deprecations (v0.5.3): Extracting archive
> @php artisan package:discover
Discovered Package: laravel/socialite
Discovered Package: nesbot/carbon
Discovered Package: renatomarinho/laravel-page-speed
Discovered Package: socialiteproviders/manager
Discovered Package: spatie/laravel-fractal
Package manifest generated successfully.
45 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

  • Run the following command.

composer run-script post-root-package-install

  • Here is the command output.

root@ip-172-31-30-203:/var/www/html/laravel-gitscrum# composer run-script post-root-package-install
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]? yes
> @php -r "file_exists('.env') || copy('.env.example', '.env');"

Step 7: Configure the gitscrum.

  • Open the following file.

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

  • Add the database details.

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=gitscrum
DB_USERNAME=gitscrumuser
DB_PASSWORD=Password

  • Save & Exit.
  • Provide the following permissions.

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

Step 8: Configure the Apache2.

  • Create a config file.

touch /etc/apache2/sites-available/gitscrum.conf
ln -s /etc/apache2/sites-available/gitscrum.conf /etc/apache2/sites-enabled/gitscrum.conf

  • Open the config file.

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

  • Add the following lines:

<VirtualHost *:80>
ServerAdmin admin@localhost
DocumentRoot /var/www/html/laravel-gitscrum/public/
ServerName example.com
ServerAlias www.example.com
<Directory /var/www/html/laravel-gitscrum/public/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log common
</VirtualHost>

  • Enable the site.

a2ensite gitscrum.conf

  • Disable the default config file.

a2dissite 000-default.conf

  • Enable the rewrite mode.

a2enmod rewrite

  • Restart the apache2.

systemctl restart apache2

Step 9: Open GitScrum Web Interface.

http://Server-ip

  • Here is the output.

Leave a Reply