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

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-права.
- Рекомендуется резервная копия перед началом установки.
Быстрый план действий
- Обновить систему.
- Установить Apache, MariaDB, PHP и расширения.
- Настроить PHP (php.ini).
- Защитить MariaDB и создать базу данных + пользователя.
- Установить Composer.
- Клонировать GitScrum и установить зависимости.
- Настроить .env и выполнить миграции/посевы.
- Настроить виртуальный хост Apache и SSL.
- Войти через 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, например:
На странице входа нажмите кнопку GitLab (или соответствующую Git-платформу). При первой интеграции нужно зарегистрировать приложение в GitLab и получить Application ID и Secret: https://gitlab.com/profile/applications
При создании приложения укажите Redirect URI в формате:
http://gitscrum.example.com/login/gitlab/callback
После авторизации вы сможете импортировать репозитории в GitScrum и начать работу.








Рекомендация по включению HTTPS (Let’s Encrypt)
Для продакшн-сервера обязательно включите HTTPS. Самый простой способ — использовать Certbot от EFF:
- Установите certbot и плагин для Apache:
apt-get install certbot python3-certbot-apache -y- Выполните автоматическую настройку сертификата для вашего домена:
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/виртуальный хост на предыдущую версию или на зеркальный сервер.
Отладка и распространённые проблемы
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 заново.
Ошибки миграции
- Проверьте доступ к базе данных в .env.
- Убедитесь, что пользователь базы данных имеет права на создание таблиц.
Проблемы с Composer
- Увеличьте memory_limit в php.ini если composer падает при установке зависимостей.
- Запустите composer install –no-dev –optimize-autoloader для продакшн.
Ошибки 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 из репозитория.
- Пользовательский доступ и роли настроены корректно.
Мини-методология развертывания (короткая)
- Подготовка: домен, DNS, бэкап существующих данных.
- Установка LAMP и зависимостей.
- Развёртывание приложения и первичная настройка .env.
- Миграции и посев данных.
- Настройка SSL и брандмауэра.
- Smoke-тесты: логин, импорт репозиториев, создание карточки.
- Перевод в продуктив с мониторингом.
Тест-кейсы и приёмочные проверки
- TC1: Пользователь может зайти через GitLab и создать проект.
- TC2: Импорт репозитория добавляет ветки и issues в интерфейс.
- TC3: Нагрузка — страница доски открывается за разумное время (провести нагрузочное тестирование на вашей инфраструктуре).
- TC4: Резервное копирование и восстановление базы данных работает без ошибок.
Дополнительные советы и когда это не подходит
Когда не использовать GitScrum:
- Если вам нужна очень простая доска Kanban без интеграции с Git, возможно, подойдёт лёгкое SaaS-решение.
- Если вы храните чувствительные данные и не готовы обеспечить соответствие требованиям безопасности и защиты данных — рассмотрите управляемые решения с поддержкой SOC/GDPR.
Альтернативы:
- Taiga, Wekan, Redmine — сравнимые open-source-инструменты для трекинга задач.
Если возникли вопросы по конкретным шагам (например, ошибки при composer update, проблемы с миграциями или SSL), пришлите вывод ошибок и я помогу с диагностикой.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента