Рубрики
Uncategorized

Руководство по установке TRAC

Установите программное обеспечение для управления проектом TRAC с Debian 9. Помечено TRAC, Linux, Git, Devops.

Поскольку в любом случае я уже документировал процесс, почему бы не сделать мой первый пост с Dev. Для руководства по установке программного обеспечения.

TRAC является моей любимой средой управления проектами

TRAC был в течение длительного времени. Я использовал его перед существованием Git. Это было стабильным и надежно все это время. В отличие от всех больших раздутых инструментов в эти дни, такие как GitLab и Jira, TRAC работает довольно хорошо на самых дешевых виртуальных серверах, которые вы можете арендовать.

Особенности включают в себя:

  • Система билетов
  • Отслеживание вехи
  • Отслеживание времени
  • Интеграция Git с просмотром репозитория
  • Вики
  • Автоматизированные уведомления
  • Интеграция CI
  • Низкие системы требований

Об этом руководстве

Большинство гидов или прохождения такого рода очень простой. Они пытаются доставить вас туда с возможной возможной суммой информации. Мой подход к гидам выступает против этой философии. Усовершенствованные пользователи могут выбрать пропустить дополнительную информацию, такой как конфигурация брандмауэра, а также настройка экспедиции по электронной почте.

Предполагается, что приведенные команды оболочки будут запущены с помощью Sudo или в качестве корня.

Подготовьте свой сервер

Создать цифровую капельку океана с помощью Debian 9

Создание сервера с цифровым океаном довольно прост. TRAC может удобно бегать на капельке 5/мес. Используйте мою реферальную ссылку и получите $ 10 бесплатного кредита.

Это руководство было написано с использованием цифрового океана. Вы можете столкнуться с очень незначительными различиями во время установки в другой среду. Однако это руководство все равно добраться туда. Если нет, пожалуйста, дайте мне знать.

Настройте DNS для вашего TRAC Server

Очевидный кандидат — trac.yourdomain.com. Это использует этот пример доменного имени. Обновите DNS, чтобы ваше новое имя домена указывает на ваш сервер.

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

ТЕКСТ @ aall

Обновите сервер

aptitude -y update
aptitude -y upgrade

Настройте имя хоста и доменное имя на вашем сервере

Переопределить цифровой океан Автоконъект доменного имени

sed -i 's/^manage_etc_hosts: true$/manage_etc_hosts: False/' /etc/cloud/cloud.cfg

Установите систему имя хоста

cat << EOF > /etc/hostname
trac
EOF

Редактировать /etc/hosts Чтобы установить системное доменное имя

Найти эти строки

127.0.1.1 example.com droplet
127.0.1.1 localhost

Обновление для вашего доменного имени TRAC

127.0.1.1 trac.yourdomain.com trac
127.0.0.1 localhost

Не Используйте просто использовать корневой домен, yourdomain.com. У вас должна быть добавление поддомена, например, trac.yourdomain.com. В противном случае у вас будут проблемы с позже в Руководстве, что позволяет TRAC отправлять уведомления по электронной почте

На данный момент перезагрузите свой сервер и подтвердите свое доменное имя и имя хоста оставаться правильным после перезагрузки. Используйте команды оболочки имя хоста и имя домена Отказ

Настройте брандмауэр

Установить и включить брандгелл

aptitude -y install firewalld
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --zone=public --add-interface=eth0
firewall-cmd --zone=public --add-interface=eth0 --permanent

Защита СШ.

Многие люди посоветуют вам прыгать через обручи для защиты SSH на вашем сервере Linux. Если вам действительно не нужны SSH, доступен для всего мира (вы не используете мой простой подход. Незаберите SSH в вашем брандмауэре, за исключением доверенных IP-адресов. Поскольку весь интернет не может говорить с вашим портом SSH, нет необходимости в разработке настроек и блокировки брандмауэров, таких как Fail4ban.

Повторите следующие команды для каждого доверенного IP-адреса

# Repeat these commands for every trusted IP address
firewall-cmd --zone=trusted --add-source=1.2.3.4
firewall-cmd --zone=trusted --add-source=1.2.3.4 --permanent

Если вы не можете подключиться к SSH, потому что ваш текущий IP-адрес не был добавлен в доверенный список, это не проблема. Просто посетите вашу серверную панель на панели DigitalCean.com. Выберите пункт меню доступа. Вы увидите большую синюю кнопку, которая говорит, что запустить консоль. Это дает вам раковину доступ к вашему серверу через Интернет. Выдайте вышеуказанную команду, чтобы предоставить себе доступ с вашего нового IP-адреса.

Отключить SSH до публичного Интернета

firewall-cmd --zone=public --remove-service=ssh
firewall-cmd --zone=public --remove-service=ssh --permanent

Разрешить веб-сайты, размещенные на вашем сервере через брандмауэр

firewall-cmd --zone=public --add-service=http
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https
firewall-cmd --zone=public --add-service=https --permanent

Получите бесплатный сертификат SSL бесплатно от Enterpry

Вы хотите, чтобы все взаимодействия с TRAC и GIT были безопасными. Для этого убедитесь HTTPS для всего вашего веб-трафика. Вам понадобится сертификат безопасности для этого.

Ваши записи DNS должны быть на месте для этого шага

В зависимости от вашего реестра домена, и как вы управляете своими записями DNS, он может занять несколько минут до часов до того, как ваши новые имена DNS появляются каждому в Интернете. Если вы не можете пинговать свое доменное имя ( Ping Trac.yourdomain.com ) Вам нужно будет подождать некоторое время до завершения этого шага.

Используйте CERTBOT, чтобы запросить сертификат SSL

Установить Certbot.

aptitude -y install certbot

Остановите свой веб-сервер, если он работает. Certbot докажет, что вы владеете этим доменным именем, пройдя свой собственный временный веб-сервер. Есть и другие способы использования CERTBOT. Посмотрите на Letsencrypt.org, если вы заинтересованы.

systemctl stop apache2

Запросить сертификат SSL.

certbot certonly --standalone -n --agree-tos \
    -m youremail@yourdomain.com \
    -d trac.yourdomain.com

Мы настроим сервер, чтобы использовать этот сертификат позже. Сертификат можно найти по адресу: /etc/lesensrypt/Live/trac.mydomain.com/*.pem.

Настройте локальный почтовый сервер, поэтому TRAC может отправить электронные письма

Установить exim.

aptitude -y install exim4

Обновите файл exim Config для содержения этих директив: /etc/exim4/update-exim4.conf.conf.

dc_eximconfig_configtype='internet'
dc_eximconfig_other_hostnames='trac.yourdomain.com'

Не указывайте yourydomain.com как dc_eximconfig_other_hostnames или mail to @ yourdomain.com, никогда не будут доставлены. Кроме того, если вывод имя домена Команда yourdomain.com вместо trac.yourdomain.com, почта на @ yourdomain.com никогда не будет доставлена. Это происходит, потому что Exim постарается доставить почту локально, а не через Интернет.

Это хорошая идея, чтобы создать псевдоним корневой электронной почты на вашем сервере, поэтому вы получаете уведомления с вашего сервера

cat << EOF >> /etc/aliases
root: youremail@yourdomain.com
EOF

Перезапустите EXIM, чтобы применить измененную конфигурацию

systemctl restart exim4

Убедитесь, что Exim правильно решает отправить почту через Интернет.

exim -bt yourname@yourdomain.com
exim -bt yourname
exim -bt root

Отправить тестовую электронную почту

echo "Test email" | mail -s "testing new server" yourname@yourdomain.com

Смотрите свои журналы, если есть проблема

tail -f /var/log/exim4/* &
tail -f /var/log/maillog &
journalctl -f &

Установите программное обеспечение и зависимости

Установите программное обеспечение через пакеты Debian.

aptitude -y install \
  apache2 \
  exim4 \
  git \
  libapache2-mod-wsgi \
  libmariadb-dev-compat \
  mariadb-server \
  python \
  python-pip

На данный момент TRAC не устанавливается правильно для меня, используя только пакеты Debian. Вы будете использовать виртуальную среду Python для установки последней версии TRAC и связанных библиотек

Создать проект домой

mkdir -p /var/www/trac

Порождать виртуальную среду

pip install virtualenv
virtualenv /var/www/trac/virtualenv

Активируйте виртуальную среду

source /var/www/trac/virtualenv/bin/activate

Установить TRAC и зависимости

pip install trac
pip install docutils
pip install babel
pip install pygments
pip install MySQL-python
pip install TracAccountManager

Настройка Mariadb.

Включить Мариадб

systemctl enable mariadb
systemctl start mariadb

Запустите следующую команду и ответьте на вопросы. Вы установите свой пароль администратора базы данных здесь.

mysql_secure_installation

Создайте базу данных для TRAC, со следующими операторами SQL в приглашении базы данных. Конечно, замените trac_db_password с реальным паролем.

mysql -u root -p

> CREATE DATABASE trac DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
> GRANT ALL ON trac.* TO trac_db@localhost IDENTIFIED BY 'TRAC_DB_PASSWORD';
> FLUSH PRIVILEGES;

# Press CTRL-D to exit database shell

Создать голый репозиторий Git

mkdir -p /var/www/trac/git
git init --bare /var/www/trac/git/myproject.git

Установка TRAC

Инициализировать проект TRAC

# Initalize a trac project
trac-admin \
  /var/www/trac/project \
  initenv project \
  mysql://trac_db:TRAC_DB_PASSWORD@localhost/trac \
  git /var/www/trac/git/myproject.git

Обновление Trac.ini.

Сделайте следующие изменения в файл конфигурации проекта TRAC /var/www/trac/project/conf/Trac.ini.

Добавьте следующие разделы

[components]
tracopt.versioncontrol.git* = enabled
tracopt.versioncontrol.git.git_fs.csetpropertyrenderer = enabled
tracopt.versioncontrol.git.git_fs.gitconnector = enabled
tracopt.versioncontrol.git.git_fs.gitwebprojectsrepositoryprovider = enabled
acct_mgr.admin.* = enabled
acct_mgr.api.* = enabled
acct_mgr.db.sessionstore = disabled
acct_mgr.htfile.htdigeststore = disabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.http.* = disabled
acct_mgr.notification.* = enabled
acct_mgr.pwhash.* = disabled
acctmgr.register.* = enabled
acct_mgr.svnserve.svnservepasswordstore = disabled
acct_mgr.web_ui.* = enabled
acct_mgr.web_ui.LoginModule = enabled
acct_mgr.web_ui.resetpwstore = disabled
acct_mgr.guard.accountguard = enabled
trac.web.auth.LoginModule = disabled

[account-manager]
password_store = HtPasswdStore
htpasswd_hash_type = md5
htpasswd_file = /var/www/trac/users.htpasswd
allow_delete_account = false
login_attempt_max_count = 5
user_lock_time = 60
user_lock_max_time = 0
user_lock_time_progression = 2



[git]
shortrev_len = 40

Отредактируйте раздел логотипа

[header_logo]
alt = Yet Another Trac Project
height = -1
link = /
src = /chrome/common/trac_banner.png
width = -1

Отредактируйте размер вложения пределы

[attachment]
max_size = 8388608
max_zip_size = 8388608
render_unsafe_content = disabled

Редактировать настройки журнала, чтобы войти через syslog

[logging]
# log_file = trac.log
# log_format = 
log_level = WARNING
log_type = syslog

Отредактируйте настройки вашего проекта

[project]
admin = youremail@yourdomain.com
admin_trac_url = trac.yourdomain.com
descr = Name For Your Project

Отредактируйте настройки почты для использования системы SendMail для доставки электронной почты. Примечание, вы также можете проинструктировать TRAC ретрансляцию через SMTP, если вы предпочитаете.

[notification]
email_sender = SendmailEmailSender
smtp_from = trac@yourdomain.com
smtp_reply_to = trac@yourdomain.com

Создайте пустой файл паролей

touch /var/www/trac/users.htpasswd

Генерировать статические файлы, Питона кэш

Чтобы уменьшить накладные расходы в TRAC, экстракт и храните статические файлы, которые можно подавать непосредственно от Apache.

mkdir -p /var/www/trac/static
trac-admin /var/www/trac/project deploy /var/www/trac/static

Разрешить кэш кода Python

mkdir -p /var/www/trac/python_egg_cache

Настройте Apache для обслуживания TRAC через WSGI

Включить модули Apache

a2enmod ssl
a2enmod wsgi
a2enmod cgi

Установите владение файлами TRAC в пользователь системы Apache

chown www-data:www-data -R /var/www/trac

Отредактируйте файл конфигурации Apache. Если ваш сервер собирается разместить несколько веб-сайтов, вы можете создать новый файл CONF, а не редактирование одного по умолчанию. /etc/apache2/sites-Available/000-default.conf.


  # Catch all non-ssl requests and redirect them to ssl
  ServerName trac.yourdomain.com
  Redirect permanent / https://trac.yourdomain.com/



  ServerName trac.yourdomain.com

  
    Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
  

  CustomLog /var/log/httpd/yourdomain.com_trac.access.log combined
  ErrorLog  /var/log/httpd/yourdomain.com_trac.error.log

  SetEnv PYTHON_EGG_CACHE /var/www/trac/python_egg_cache

  Alias /chrome /var/www/trac/static/htdocs
  
    
      Require all granted
    
  

  WSGIDaemonProcess tracweb python-home=/var/www/trac/virtualenv
  WSGIProcessGroup tracweb
  WSGIApplicationGroup %{GLOBAL}
  WSGIScriptAlias / /var/www/trac/static/cgi-bin/trac.wsgi
  
      
          Require all granted
      
  

  SSLEngine on
  SSLCertificateFile    /etc/letsencrypt/live/www.yourdomain.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/www.yourdomain.com/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/live/www.yourdomain.com/fullchain.pem

Проверьте настройку вашей Apache для ошибок

source /etc/apache2/envvars
apache2 -t

Следите за выходом ваших журналов, чтобы обнаружить любые проблемы

journalctl -f &
tail -f /var/log/apache2/*

Запустите веб-сервер Apache

systemctl restart apache2

Войдите и настройте TRAC

Плагин аутентификации

Откройте trac.yourdomain.com в вашем браузере. Если вы все сделали правильно, вы должны увидеть вводную страницу Wiki. Нажмите на ссылку для входа, чтобы быть доставлена в начальную настройку аутентификации

Шаг 1: Выберите следующие параметры:

  • Преобразовать имена входа в строчные буквы на регистрации и логин — проверено
  • Ограничить отправку файлов cookie в подключения HTTPS — Проверено
  • Фронт аутентификации: используйте форму входа в HTML
  • Интеграция ссылок на соответствующие действия в форме входа — Проверено
  • Разрешить пользователю запомнить через сеансы: проверено

Шаги 2 по 5: Нет изменений по умолчанию

Шаг 6, выберите начальное имя входа и пароль

Анонимные разрешения пользователя

По умолчанию посетители сайта могут видеть в основном все. В меню администратора вы можете настроить разрешения для анонимных пользователей.

Начало работы с вашим репозиторием Git

С вашей рабочей станции, а не сервер, клонировать репозиторий

git clone https://trac.yourdomain.com/git/myproject.git

Создайте файл readme.md, примите к Git и нажмите на сервер

cd myproject

cat << EOF > README.md
# My Project
I am just getting started with my project!
EOF

git add README.md
git commit -a -m "Add Readme File"
git push

Посетите TRAC в вашем браузере. Вы должны увидеть изменения кода, отраженные в временной шкале, и просмотрите параметры меню исходных меню.

Журналы файлов — это ваши друзья, когда что-то верно не так на вашем сервере. Вы можете посмотреть все соответствующие журналы в режиме реального времени, чтобы увидеть, какие ошибки предоставляются с чем-то, не работают.

# Linux system logs
journalctl -f &

# E-Mail logs
tail -f /var/log/maillog &
tail -f /var/log/exim4/* &

# Web server logs
tail -f /var/log/apache2/* &

Пожалуйста, дайте мне знать, если вы обнаружите ошибки в этом руководстве, который необходимо исправить.

Оригинал: «https://dev.to/mitchjacksontech/trac-install-guide-588e»