Skip to content

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

Системные требования

  • postgresql 16.1
  • nodejs 18

Настройка окружения

В этом разделе подготовьте все инструменты, нужные для локального запуска и разработки.

  1. Установите СУБД PostgreSQL версии из требований: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
  2. Установите веб-сервер Node.js (+npm) версии из требований: https://nodejs.org/en/download
  3. для MS Windows рекомендуется установщик Windows installer, вверху нужно выбрать версию и ОС - после этого поменяется ссылка на зеленой кнопке Windows installer ниже.
  4. для Linux рекомендуется ставить через nvm.

Для разработки также понадобится:

  1. Установить систему контроля версий Git: https://git-scm.com/downloads/win
  2. Установить среду разработки Visual Studio Code (VSC): https://code.visualstudio.com/Download . Из его расширений полезно установить поддержку TypeScript и eslint.
  3. (необязательно) в качестве дополнительной графической оболочки для гита установить TortoiseGit: https://tortoisegit.org/download/ . Удобен тем, что удачно встраивается в оболочку Проводник системы MS Windows.
  4. (необязательно) для работы с СУБД через графический интерфейс установить pgAdmin: https://www.pgadmin.org/download/

Установка на локальный компьютер

Сервер

Здесь мы подразумеваем, что окружение уже настроено согласно инструкциям из раздела выше.

Сначала настройте серверную часть:

  1. Создайте папку, где будут лежать файлы обеих частей проекта, например D:\projects\cms. Выберите любую удобную для вас папку, где вы не потеряете файлы проекта.
  2. В консоли, находясь в этой директории проекта, клонируйте репозиторий командой git clone <https://gitlab.com/digitalprotopia/cms/cms-server.git>. После этого появится папка D:\projects\cms\cms-server с файлами серверной части.
  3. Перейдите в консоли в эту недавно созданную папку.

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

  4. Выполните команду npm install , чтобы установить все зависимости проекта.
  5. Создайте файл конфигурации на основе примера с помощью команды cp src/config/config.sample.ts src/config/config.ts. Для разработки рекомендуется такое содержимое файла (вместо переменных в {{}} нужно подставить реальные значения: пароль и произвольную строку):
const config: Config = {
  db: {
    connection: "postgres://postgres:{{postgres_pass}}@localhost:5432/cms",
  },
  noConfirmation: true,
  host: "http://localhost:3000",
  jwt: {
    secret_key: "{{random_string}}",
  },
};
  1. Создайте БД cms в Postgresql - любым удобным способом:
  2. командой createdb cms
  3. для Linux: sudo -u postgres createdb cms
  4. Загрузите структуру БД из файла src/db/dump_last.sql: можно командами ниже, а можно через графические инструменты вроде pgAdmin. Например командой psql --username=postgres cms -f src/db/dump_last.sql или psql "postgresql://postgres:{password}@localhost:5432/cms" < src/db/dump_last.sql
  5. Запустите сервер в режиме разработки: npm run dev. При успешном запуске последняя строка в консоли выглядит примерно так: 🚀 Server ready at http://localhost:4000/graphql.

Клиент

Теперь настройте клиентскую часть. Процесс в целом похож на поднятие сервера, лишь с небольшими отличиями:

  1. Перейдите в директорию проекта, в нашем примере это D:\projects\cms.
  2. В консоли, находясь в этой директории проекта, клонируйте репозиторий, выполнив команду git clone <https://gitlab.com/digitalprotopia/cms/cms-web-panel.git>. После этого появится папка D:\projects\cms\cms-web-panel с файлами клиентской части.
  3. Перейдите в недавно созданную папку, и по умолчанию оставайтесь в ней.
  4. Выполните команду npm install , чтобы установить все зависимости проекта.
  5. Создайте файл конфигурации на основе примера с помощью команды cp src/config/config.sample.ts src/config/config.ts. Рекомендуемое содержимое этого файла для разработки:
async function config(): Promise<Config> {
  return {
    server: "http://localhost:4000",
    noConfirmation: true,
    domain: "localhost",
  };
}
  1. Запустите клиентскую часть в режиме разработки: npm run dev. Строки успешного запуска должны выглядеть примерно так: ✓ Starting... ✓ Ready in 7.3s.
  2. Откройте в браузере http://localhost:3001/admin/.
  3. Если страница успешно открылась, сделайте первичную настройку системы:
  4. Зарегистрируйтесь на странице http://localhost:3001/admin/. Первый созданный пользователь получит права доступа уровня Администраторы.
  5. Создайте шаблон для сайта на странице шаблонов: http://localhost:3001/admin/templateGroups.
  6. Создайте сайт в разделе сайтов с использованием шаблона: http://localhost:3001/admin/sites.
  7. В поле Домен сайта введите localhost.
  8. Создайте нужные страницы сайта.

Бот

Для настройки подсистемы ботов выполните действия:

  1. Создайте бота в админке: http://localhost:3001/admin/bots/.
  2. Здесь важно заполнить только поле URL, куда введите GraphQL сервера подсистемы после ее запуска. Т.е. пока временно оставьте его пустым - это нормально.
  3. Также, чтобы бот мог хоть что-то вывести в Телеграм, создайте главную страницу типа static с отмеченной флагом Начальная страница.
  4. Перейдите в директорию проекта, в нашем примере это D:\projects\cms.
  5. В консоли, находясь в этой директории проекта, клонируйте репозиторий, выполнив команду git clone <https://gitlab.com/digitalprotopia/cms/cms-bot.git>. После этого появится папка D:\projects\cms\cms-bot с файлами подсистемы ботов.
  6. Перейдите в недавно созданную папку, и по умолчанию оставайтесь в ней.
  7. Выполните команду npm install, чтобы установить все зависимости проекта.
  8. Создайте файл конфигурации на основе примера с помощью команды cp src/config/config.sample.ts src/config/config.ts. Рекомендуемое содержимое этого файла для разработки (вместо переменных в {{}} введите реальные значения из админки):
const config: Config = {
   telegramToken: '9999999999:AAEzAAAZzAAAz9-AzAzzzAzAzAAzAAAzzAz', // Токен Telegram-бота - из botfather
   chatID: '', // Устарело, не используется timeZone: '', // Часовой пояс, не обязательно
   serverURL: '<http://localhost:4000/graphql>', // Ссылка на graphql-endpoint сервера
   serverToken: '', // Устарело, не используется
   clientURL: '<http://localhost:3001>', // URL веб-сайта, где клиентская часть поднята
   clientId: '{{uuid4}}', // Id приложения-клиента, берется из админки
   clientSecret: '{{uuid4}}', // Секретный ключ приложения-клиента, берется из админки
   botId: '{{uuid4}}' // Id бота, берется из админки }
  1. Запустите подсистему ботов в режиме разработки: npm run dev. Строки успешного запуска должны выглядеть так: “🚀 Server ready at http://localhost:4002/graphql”. Копируйте адрес (URL) из этой строки.
  2. Отредактируйте ранее созданного бота в админке: http://localhost:3001/admin/bots/ . Введите в поле URL скопированный адрес, например: http://localhost:4002/graphql, сохраните.
  3. Для проверки можно перейдите в бота в Телеграм по его адресу и выполните команду запуска /start. При успехе бот выведет начальную страницу, которую мы настроили в разделе Клиент (См. п.8. первичная настройка системы).

Функции доступные в API для виджетов

Раздел будет опубликован в следующей версии документации.

Параметры настройки в конфигурационных файлах

Раздел будет опубликован в следующей версии документации.

Как связать микросервисы друг с другом (протоколы/технологии)

Раздел будет опубликован в следующей версии документации.

Состав репозиториев

Раздел будет опубликован в следующей версии документации.