Гид по технологиям

Установка GitScrum на Ubuntu 20.04

• 7 min read • DevOps • Обновлено 24 Nov 2025
Установка GitScrum на Ubuntu 20.04 — инструкция
Установка GitScrum на Ubuntu 20.04 — инструкция

Скриншот установки GitScrum

GitScrum — это проект с открытым исходным кодом для управления проектами, основанный на фреймворке Laravel. Он помогает командам использовать Git и Scrum для управления задачами и повышения гибкости. GitScrum поддерживает интеграцию с GitHub, GitLab и Bitbucket. Приложение ориентировано на стартапы, агентства, команды разработки и фрилансеров и включает такие функции, как Product Backlog, User Story, Sprint Backlog, Issues и многое другое.

Определения (одно предложение для быстрого понимания):

  • Laravel: PHP-фреймворк для веб-приложений.
  • Composer: менеджер зависимостей для PHP.
  • MariaDB: форк MySQL, реляционная база данных.
  • GitScrum: Laravel-приложение для управления задачами, интегрируется с Git-платформами.

Что вам понадобится

  • Сервер с Ubuntu 20.04 (доступ root или sudo).
  • Действующий домен, направленный на IP вашего сервера.
  • Установленный root-пароль или учётная запись с sudo-права.
  • Рекомендуется резервная копия перед началом установки.

Быстрый план действий

  1. Обновить систему.
  2. Установить Apache, MariaDB, PHP и расширения.
  3. Настроить PHP (php.ini).
  4. Защитить MariaDB и создать базу данных + пользователя.
  5. Установить Composer.
  6. Клонировать GitScrum и установить зависимости.
  7. Настроить .env и выполнить миграции/посевы.
  8. Настроить виртуальный хост Apache и SSL.
  9. Войти через GitLab/GitHub/Bitbucket и импортировать репозитории.

Обновление системы

Обновите пакеты до последних версий и перезагрузите систему, если потребуется:

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

После обновления при необходимости перезагрузите сервер:

systemctl reboot

Установка Apache, MariaDB и PHP

GitScrum работает в веб-среде и требует веб-сервер, СУБД и набор PHP-расширений. На Ubuntu 20.04 можно установить все компоненты одной командой:

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

Если у вас другая версия PHP, подберите соответствующие пакеты (например, php8.0-*). После установки отредактируйте конфигурацию PHP для Apache:

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

Измените или добавьте следующие параметры (значения можно скорректировать под вашу среду):

memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Europe/Moscow

Сохраните и закройте файл.

Запустите и включите сервисы Apache и MariaDB:

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

Настройка базы данных для GitScrum

Для безопасности сначала выполните скрипт настройки MariaDB:

mysql_secure_installation

Следуйте подсказкам: задайте root-пароль, удалите анонимных пользователей, запретите удалённый вход root и удалите тестовую базу данных.

Затем войдите в MariaDB и создайте базу данных и пользователя для GitScrum (замените password на надёжный пароль):

mysql -u root -p

MariaDB [(none)]> CREATE DATABASE gitscrum;
MariaDB [(none)]> CREATE USER 'gitscrum'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL ON gitscrum.* TO 'gitscrum'@'localhost' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Важно: используйте сильный уникальный пароль для пользователя базы данных и храните его в безопасном месте.

Установка Composer

Composer — менеджер зависимостей для PHP. На Ubuntu его можно установить через apt:

apt-get install composer -y

Проверьте установку:

composer --version

Вы увидите номер версии Composer. Если вы предпочитаете устанавливать последнюю версию напрямую, используйте рекомендуемую установочную команду с getcomposer.org.

Загрузка GitScrum

Перейдите в корень веб-документов Apache и клонируйте проект:

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

Перейдите в каталог проекта и обновите зависимости:

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

Вы увидите сообщение, например:

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

Настройка GitScrum (.env)

Отредактируйте файл .env и укажите параметры подключения к базе данных, URL приложения и данные OAuth для интеграции с GitLab (или другие данные для GitHub/Bitbucket). Откройте файл:

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

Пример ключевых переменных (замените значения на свои):

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=gitscrum
DB_USERNAME=gitscrum
DB_PASSWORD=password
APP_URL=http://gitscrum.example.com
GITLAB_KEY=your_gitlab_app_id_here
GITLAB_SECRET=your_gitlab_app_secret_here
GITLAB_INSTANCE_URI=https://gitlab.com/

Примечание: не храните реальные секреты в публичных местах. При использовании в продакшене рассмотрите контейнеры секретов или зашифрованные хранилища.

После сохранения выполните миграции и посев начальных данных:

php artisan migrate
php artisan db:seed

Ожидаемый вывод будет включать строки наподобие:

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

Установите владельца файлов и права доступа:

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

Конфигурация Apache для GitScrum

Создайте виртуальный хост Apache:

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

Добавьте следующее содержимое (замените ServerName и при необходимости ServerAdmin):


     ServerAdmin [email protected]
     DocumentRoot /var/www/html/laravel-gitscrum/public/
     ServerName gitscrum.example.com
     ErrorLog /var/log/apache2/gitscrum-error.log
     CustomLog /var/log/apache2/gitscrum-access.log combined
 
     
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     

Проверьте конфигурацию Apache:

apachectl configtest

Ожидаемый вывод:

Syntax OK

Активируйте сайт и модуль rewrite, затем перезапустите Apache:

a2ensite gitscrum.conf
a2enmod rewrite
systemctl restart apache2

Проверьте статус сервиса:

systemctl status apache2

Доступ к веб-интерфейсу GitScrum и интеграция с GitLab

Откройте браузер и перейдите по адресу, указанному в APP_URL, например:

http://gitscrum.example.com

На странице входа нажмите кнопку GitLab (или соответствующую Git-платформу). При первой интеграции нужно зарегистрировать приложение в GitLab и получить Application ID и Secret: https://gitlab.com/profile/applications

При создании приложения укажите Redirect URI в формате:

http://gitscrum.example.com/login/gitlab/callback

После авторизации вы сможете импортировать репозитории в GitScrum и начать работу.

Вход через GitLab

Создание приложения в GitLab

Настройка прав приложения

ID и Secret приложения

Интерфейс GitScrum

Авторизация GitLab

Разрешение доступа приложения

Импорт репозиториев

Рекомендация по включению HTTPS (Let’s Encrypt)

Для продакшн-сервера обязательно включите HTTPS. Самый простой способ — использовать Certbot от EFF:

  1. Установите certbot и плагин для Apache:
apt-get install certbot python3-certbot-apache -y
  1. Выполните автоматическую настройку сертификата для вашего домена:
certbot --apache -d gitscrum.example.com

Следуйте подсказкам certbot. Он автоматически обновит виртуальный хост и настроит перенаправление HTTP->HTTPS.

Брандмауэр (UFW)

Разрешите минимально необходимые порты:

ufw allow 22/tcp   # SSH
ufw allow 80/tcp   # HTTP
ufw allow 443/tcp  # HTTPS
ufw enable

Резервное копирование и откат

Регулярно делайте резервные копии базы данных и файлов приложения.

Бэкап базы данных:

mysqldump -u root -p gitscrum > /root/gitscrum_backup.sql

Восстановление базы данных:

mysql -u root -p gitscrum < /root/gitscrum_backup.sql

Резервная копия файлов проекта:

tar -czvf /root/gitscrum_files_backup.tar.gz /var/www/html/laravel-gitscrum

Для быстрого отката следует иметь автоматизированный план: бэкап БД + файлов, возможность переключить DNS/виртуальный хост на предыдущую версию или на зеркальный сервер.

Отладка и распространённые проблемы

  1. HTTP 500 после деплоя

    • Проверьте логи Apache (/var/log/apache2/gitscrum-error.log) и Laravel (/var/www/html/laravel-gitscrum/storage/logs/).
    • Убедитесь, что права и владелец файлов — www-data.
    • Выполните php artisan config:cache и php artisan route:cache заново.
  2. Ошибки миграции

    • Проверьте доступ к базе данных в .env.
    • Убедитесь, что пользователь базы данных имеет права на создание таблиц.
  3. Проблемы с Composer

    • Увеличьте memory_limit в php.ini если composer падает при установке зависимостей.
    • Запустите composer install –no-dev –optimize-autoloader для продакшн.
  4. Ошибки OAuth при входе через GitLab

    • Проверьте совпадение Redirect URI в настройках приложения GitLab и APP_URL в .env.
    • Убедитесь, что ключ и секрет скопированы корректно.

Безопасность и жёсткие настройки

  • Всегда используйте HTTPS в продакшн.
  • Не храните secrets в репозитории.
  • Ограничьте доступ к серверам SSH по ключам и используйте fail2ban.
  • Отключите вход root по SSH или ограничьте его через AllowUsers.
  • Регулярно обновляйте пакеты и следите за уязвимостями зависимостей composer.

Критерии приёмки

  • Веб-интерфейс доступен по HTTPS и корректно отображает страницу входа.
  • Вход через GitLab проходит и репозитории успешно импортируются.
  • База данных содержит таблицы после php artisan migrate.
  • Логи не содержат критических ошибок при нормальном использовании.

Резюме для разных ролей (чек-листы)

DevOps:

  • Сервер обновлён и доступен по SSH.
  • Apache/MariaDB/PHP установлены и запущены.
  • Сертификат HTTPS настроен.
  • Настроены резервные копии и мониторинг.

Разработчик:

  • GitScrum развёрнут и доступен через браузер.
  • Интеграция с GitLab настроена и репозитории импортируются.
  • Установлены все PHP-зависимости через Composer.

Продакт-менеджер / Scrum-мастер:

  • Можно создать продукт/проект и добавить backlog.
  • Можно импортировать issues из репозитория.
  • Пользовательский доступ и роли настроены корректно.

Мини-методология развертывания (короткая)

  1. Подготовка: домен, DNS, бэкап существующих данных.
  2. Установка LAMP и зависимостей.
  3. Развёртывание приложения и первичная настройка .env.
  4. Миграции и посев данных.
  5. Настройка SSL и брандмауэра.
  6. Smoke-тесты: логин, импорт репозиториев, создание карточки.
  7. Перевод в продуктив с мониторингом.

Тест-кейсы и приёмочные проверки

  • TC1: Пользователь может зайти через GitLab и создать проект.
  • TC2: Импорт репозитория добавляет ветки и issues в интерфейс.
  • TC3: Нагрузка — страница доски открывается за разумное время (провести нагрузочное тестирование на вашей инфраструктуре).
  • TC4: Резервное копирование и восстановление базы данных работает без ошибок.

Дополнительные советы и когда это не подходит

Когда не использовать GitScrum:

  • Если вам нужна очень простая доска Kanban без интеграции с Git, возможно, подойдёт лёгкое SaaS-решение.
  • Если вы храните чувствительные данные и не готовы обеспечить соответствие требованиям безопасности и защиты данных — рассмотрите управляемые решения с поддержкой SOC/GDPR.

Альтернативы:

  • Taiga, Wekan, Redmine — сравнимые open-source-инструменты для трекинга задач.

Если возникли вопросы по конкретным шагам (например, ошибки при composer update, проблемы с миграциями или SSL), пришлите вывод ошибок и я помогу с диагностикой.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро