Руководство по установке
Системные требования
postgresql 16.1nodejs 18
Настройка окружения
В этом разделе подготовьте все инструменты, нужные для локального запуска и разработки.
- Установите СУБД PostgreSQL версии из требований: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
- Установите веб-сервер Node.js (+npm) версии из требований: https://nodejs.org/en/download
- для MS Windows рекомендуется установщик Windows installer, вверху нужно выбрать версию и ОС - после этого поменяется ссылка на зеленой кнопке Windows installer ниже.
- для Linux рекомендуется ставить через
nvm.
Для разработки также понадобится:
- Установить систему контроля версий Git: https://git-scm.com/downloads/win
- Установить среду разработки Visual Studio Code (VSC): https://code.visualstudio.com/Download . Из его расширений полезно установить поддержку TypeScript и eslint.
- (необязательно) в качестве дополнительной графической оболочки для гита установить TortoiseGit: https://tortoisegit.org/download/ . Удобен тем, что удачно встраивается в оболочку Проводник системы MS Windows.
- (необязательно) для работы с СУБД через графический интерфейс установить pgAdmin: https://www.pgadmin.org/download/
Установка на локальный компьютер
Сервер
Здесь мы подразумеваем, что окружение уже настроено согласно инструкциям из раздела выше.
Сначала настройте серверную часть:
- Создайте папку, где будут лежать файлы обеих частей проекта, например
D:\projects\cms. Выберите любую удобную для вас папку, где вы не потеряете файлы проекта. - В консоли, находясь в этой директории проекта, клонируйте репозиторий командой
git clone <https://gitlab.com/digitalprotopia/cms/cms-server.git>. После этого появится папкаD:\projects\cms\cms-serverс файлами серверной части. - Перейдите в консоли в эту недавно созданную папку.
Важно: все дальнейшие команды выполняйте в этой директории, если не указано иного.
- Выполните команду
npm install, чтобы установить все зависимости проекта. - Создайте файл конфигурации на основе примера с помощью команды
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}}",
},
};
- Создайте БД cms в Postgresql - любым удобным способом:
- командой
createdb cms - для Linux:
sudo -u postgres createdb cms - Загрузите структуру БД из файла
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 - Запустите сервер в режиме разработки:
npm run dev. При успешном запуске последняя строка в консоли выглядит примерно так: 🚀 Server ready at http://localhost:4000/graphql.
Клиент
Теперь настройте клиентскую часть. Процесс в целом похож на поднятие сервера, лишь с небольшими отличиями:
- Перейдите в директорию проекта, в нашем примере это
D:\projects\cms. - В консоли, находясь в этой директории проекта, клонируйте репозиторий, выполнив команду
git clone <https://gitlab.com/digitalprotopia/cms/cms-web-panel.git>. После этого появится папкаD:\projects\cms\cms-web-panelс файлами клиентской части. - Перейдите в недавно созданную папку, и по умолчанию оставайтесь в ней.
- Выполните команду
npm install, чтобы установить все зависимости проекта. - Создайте файл конфигурации на основе примера с помощью команды
cp src/config/config.sample.ts src/config/config.ts. Рекомендуемое содержимое этого файла для разработки:
async function config(): Promise<Config> {
return {
server: "http://localhost:4000",
noConfirmation: true,
domain: "localhost",
};
}
- Запустите клиентскую часть в режиме разработки:
npm run dev. Строки успешного запуска должны выглядеть примерно так:✓ Starting... ✓ Ready in 7.3s. - Откройте в браузере http://localhost:3001/admin/.
- Если страница успешно открылась, сделайте первичную настройку системы:
- Зарегистрируйтесь на странице http://localhost:3001/admin/. Первый созданный пользователь получит права доступа уровня Администраторы.
- Создайте шаблон для сайта на странице шаблонов: http://localhost:3001/admin/templateGroups.
- Создайте сайт в разделе сайтов с использованием шаблона: http://localhost:3001/admin/sites.
- В поле Домен сайта введите
localhost. - Создайте нужные страницы сайта.
Бот
Для настройки подсистемы ботов выполните действия:
- Создайте бота в админке: http://localhost:3001/admin/bots/.
- Здесь важно заполнить только поле URL, куда введите GraphQL сервера подсистемы после ее запуска. Т.е. пока временно оставьте его пустым - это нормально.
- Также, чтобы бот мог хоть что-то вывести в Телеграм, создайте главную страницу типа
staticс отмеченной флагом Начальная страница. - Перейдите в директорию проекта, в нашем примере это
D:\projects\cms. - В консоли, находясь в этой директории проекта, клонируйте репозиторий, выполнив команду
git clone <https://gitlab.com/digitalprotopia/cms/cms-bot.git>. После этого появится папкаD:\projects\cms\cms-botс файлами подсистемы ботов. - Перейдите в недавно созданную папку, и по умолчанию оставайтесь в ней.
- Выполните команду
npm install, чтобы установить все зависимости проекта. - Создайте файл конфигурации на основе примера с помощью команды
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 бота, берется из админки }
- Запустите подсистему ботов в режиме разработки:
npm run dev. Строки успешного запуска должны выглядеть так: “🚀 Server ready at http://localhost:4002/graphql”. Копируйте адрес (URL) из этой строки. - Отредактируйте ранее созданного бота в админке: http://localhost:3001/admin/bots/ . Введите в поле URL скопированный адрес, например: http://localhost:4002/graphql, сохраните.
- Для проверки можно перейдите в бота в Телеграм по его адресу и выполните команду запуска
/start. При успехе бот выведет начальную страницу, которую мы настроили в разделе Клиент (См. п.8. первичная настройка системы).
Функции доступные в API для виджетов
Раздел будет опубликован в следующей версии документации.
Параметры настройки в конфигурационных файлах
Раздел будет опубликован в следующей версии документации.
Как связать микросервисы друг с другом (протоколы/технологии)
Раздел будет опубликован в следующей версии документации.
Состав репозиториев
Раздел будет опубликован в следующей версии документации.