-
Notifications
You must be signed in to change notification settings - Fork 109
Создание локальной отладочной копии сайта
Операционная система может быть любой, копию сайта можно поднять на Linux/BSD/etc или MacOS X.
- Java Development Kit. Основной сайт сейчас работает на OpenJDK 17 (сайт работает на Temurin)
- PostgreSQL 16 + пакет postgresql-contrib.
- Apache Maven 3.x.
Исходные тексты хранятся в git. Вытащить их можно, например, так:
$ git clone git://github.com/maxcom/lorsource.git
Предварительно PostgreSQL должен быть настроен на парольную аутентификацию пользователей, пришедших на localhost по TCP (настройки находятся в pg_hba.conf, который у меня лежит в /var/lib/pgsql/data, тип аутентификации password или md5). Например:
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host all all 127.0.0.1 255.255.255.255 md5
Создаём БД для сайта:
$ createdb --encoding=UTF8 lor
Создаём пользователей :
$ createuser -s -d -r maxcom # superuser
$ createuser -S -D -R linuxweb
$ createuser -S -D -R jamwiki # без этого пользователя liquibase будет ругаться
$ psql -c "alter user linuxweb password 'linuxweb'" template1
$ psql -c "alter user maxcom password 'maxcom'" template1
Переходим в корень дерева исходников (lorsource) и загружаем тестовые данные в БД:
$ psql -f sql/demo.db lor
Запускаем миграцию БД на последнюю версию (автоматически запускается перед запуском интеграционных тестов)
$ mvn liquibase:update
Рассчитываем статистику для оптимизатора запросов PostgreSQL:
$ vacuumdb --analyze lor
В тестовой базе пароли всех пользователей – “passwd”
В корне дерева исходников сайта (lorsource) запускаем для сборки проекта:
$ mvn package
также может потребоваться указать лимиты памяти для Java-машины. Обычно это нужно делать, если у вас менее 8Gb оперативной памяти
$ export MAVEN_OPTS="-Xmx1024m"
Для запуска тестового сервера на порту 8080:
$ mvn package jetty:run
Заходим браузером по адресу http://127.0.0.1:8080 и радуемся.
Запуск интеграционных тестов (используют локальную БД). Часть тестов используют Docker.
$ mvn verify
Поднимите OpenSearch 2.x на дефолтном порту.
Для индексации необходимо залогиниться администратором (maxcom:passwd) и запустить http://localhost:8080/admin/search-reindex.
Проверьте, что все ваши изменения компилируются и проходят интеграционные тесты:
$ mvn clean verify
создайте pull request, опишите что сделали и зачем.