Skip to content

Создание локальной отладочной копии сайта

Werenter edited this page Jan 15, 2024 · 79 revisions

Требуемое ПО

Операционная система может быть любой, копию сайта можно поднять на 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, опишите что сделали и зачем.