Допустим Phabricator установлен как я описывал в статье:
Установка Phabricator в Ubuntu
Теперь приступим к настройке.
Слева в меню выберем «Auth», нажмем «Add Provider» и выберем «Username/Password», чтобы добавить авторизацию по логину/паролю.
После этого, по рекомендациям безопасности запретим изменять методы авторизации:
cd /home/phd/phabricator/ ./bin/auth lock
В профиле пользователя установим пароль. Если после установки вы случайно закрыли Phabricator и не успели указать пароль, то можно залогиниться выполнив команду ниже, аналогичным способом можно восстанавливать пароль пользователям:
./bin/auth recover admin
Создадим директории для репозиториев, больших файлов и укажем владельца:
mkdir -p /var/repo/ mkdir -p /var/files/ chown -R phd:phd /var/repo/ chown -R phd:phd /var/files/ chown -R phd:phd /home/phd/
Создадим скрипт автозапуска:
nano /etc/systemd/system/phd.service
Добавим в него:
[Unit] Description=Phabricator Daemons After=network.target,mysql.service Requires=network.target,mysql.service [Service] Type=forking User=phd ExecStart=/home/phd/phabricator/bin/phd start ExecStop=/home/phd/phabricator/bin/phd stop Restart=always RestartSec=10 StartLimitInterval=0 StartLimitBurst=0 [Install] WantedBy=multi-user.target
Если иногда нужно останавливать phd процесс, то в скрипте изменим Restart=always на Restart=on-failure и выполним:
systemctl daemon-reload
Активируем скрипт:
systemctl enable phd --now
Укажем необходимые параметры:
./bin/config set repository.default-local-path /var/repo/ ./bin/config set storage.local-disk.path /var/files/ ./bin/config set phd.user phd ./bin/config set phabricator.timezone Europe/Kiev ./bin/config set policy.allow-public false
Укажем домен на котором работает Phabricator:
./bin/config set phabricator.base-uri 'https://git.ixnfo.com/'
При необходимости можно посмотреть значение любого параметра, например так:
./bin/config get phd.user
При необходимости можно включить детальные логи (замечу что они очень быстро будут расти в размере и могут заполнить дисковую систему):
./bin/config set phd.trace true ./bin/config set phd.verbose true ./bin/config set phd.trace false ./bin/config set phd.verbose false
Пример ручной остановки и запуска phd:
./bin/phd start ./bin/phd restart sudo -En -u 'phd' -- /home/phd/phabricator/bin/phd start
Проверить запущен ли процесс можно так:
ps aux | grep phd systemctl status phd
Также я создал символическую ссылку на git-http-backend:
ln -s /usr/lib/git-core/git-http-backend /usr/bin/git-http-backend
Создадим первый репозиторий используя Diffusion и в профиле своего пользователя создадим «VCS Password» (он необходим для подключений к репозиториям по https).
Если подключаться к репозиторию с неверным паролем, то отобразится ошибка:
abort: HTTP Error 403: Invalid credentials.
Также укажем в php.ini рекомендуемые параметры:
file_uploads = On allow_url_fopen = On short_open_tag = On memory_limit = 512M upload_max_filesize = 128M post_max_size = 128M max_execution_time = 360 date.timezone = Europe/Kiev opcache.validate_timestamps=0
Можно указать их в конфигурации Apache2, или в файле .htaccess, например:
<IfModule mod_php7.c> file_uploads = On allow_url_fopen = On short_open_tag = On memory_limit = 512M upload_max_filesize = 1024M post_max_size = 1024M max_execution_time = 3600 date.timezone = Europe/Kiev opcache.validate_timestamps=0 </IfModule>
Также я указал в /etc/mysql/mysql.conf.d/mysqld.cnf некоторые рекомендуемые параметры:
local_infile=0 innodb_buffer_pool_size=2G innodb_buffer_pool_instances=2 sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,STRICT_ALL_TABLES
Также необходимо настроить почтовые параметры, для теста я просто установил Postfix:
Установка и настройка Postfix
Создал файл mailers.json с содержимым:
[ { "key": "sendmail", "type": "sendmail" } ]
И выполнил команду:
./bin/config set --stdin cluster.mailers < mailers.json
После этого письма уже могут отправляться с сервера, но желательно настроить почтовый сервер или указать сторонний.
Пример отправки тестового сообщения на email пользователя и просмотр его статуса:
./bin/mail send-test ./bin/mail send-test --to admin < README.md ./bin/mail list-outbound ./bin/mail show-outbound ./bin/mail show-outbound --id 1 ./bin/mail help
Можно установить Pygments:
sudo apt-get install python-pygments ./bin/config set pygments.enabled true
Разрешим подключения к репозиториям по http:
./bin/config set diffusion.allow-http-auth true
И чтобы всегда использовалось https:
./bin/config set security.require-https true
Если необходимо запретить поисковым сайтам индексировать сайт, то создадим файл /home/phd/phabricator/webroot/robots.txt со следующим содержимым:
User-agent: * Disallow: /
Настроим логи (по умолчанию логи пишутся в /var/tmp/phd/log):
mkdir /var/log/phabricator/ touch /var/log/phabricator/access.log touch /var/log/phabricator/ssh.log touch /var/log/phabricator/daemons.log chown phd:phd /var/log/phabricator/daemons.log chown vcs-user:vcs-user /var/log/phabricator/ssh.log chown www-data:www-data /var/log/phabricator/access.log ./bin/config set log.access.path /var/log/phabricator/access.log ./bin/config set log.ssh.path /var/log/phabricator/ssh.log ./bin/config set phd.log-directory /var/log/phabricator
Можно настроить recaptcha:
recaptcha.enabled true recaptcha.private-key ... recaptcha.public-key ...
Добавим в конце файла /etc/sudoers:
git ALL=(phd) SETENV: NOPASSWD: /usr/bin/git-upload-pack, /usr/bin/git-receive-pack, /usr/bin/hg, /usr/local/bin/hg, /usr/bin/svnserve www-data ALL=(phd) SETENV: NOPASSWD: /usr/bin/git-upload-pack, /usr/lib/git-core/git-http-backend, /usr/bin/hg, /usr/local/bin/hg
Пример ручного выполнения команд:
su phd printf 'listkeys\nnamespace 10\n' | /usr/local/bin/hg -R /var/repo/1/ serve --stdio
Смотрите также мои статьи:
Настройка SSH для Phabricator
Установка Phabricator в Ubuntu
Резервное копирование Phabricator
Отличная статья. Все четко расписано. Помогла с некоторыми моментами.
Может Вы сталкивались с такой проблемой. Есть exchange 2013, настроена отправка без авторизации и она работает. Но проблема в том, что есть письма от phabricator, которые он шлет сам себе, на адрес вида noreply@. Эти письма забивают очередь на почтовом сервере. Может знаете в какую сторону копать.
Заранее спасибо.