Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Обзор образа

Требования

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

  • Операционная система: Linux x86/x64, Windows x86/x64.
  • База данных: PostgreSQL 9.0+, SQL Server 2008 R2+, Oracle 11g+.
  • iOS SDK: iOS 8.0+.
  • Android SDK: Android 4.4+.
  • Панель управления (web single-page application): IE 11+, Edge, Chrome 49+, Firefox 47+, Safari z10+.

Требования к серверам (до 500 активных клиентов одновременно):

  • Сервер приложения: процессор с 2-4 физическими ядрами, 4Гб RAM, место на жестком диске зависит от объема присылаемых фотографий/файлов.
  • Сервер базы данных: процессор с 2-4 физическими ядрами, 8Гб RAM.

Обзор образа

...

Образ для Докера:

  • Использует Ubuntu 16.04 в качестве базового образа.
  • Внутри образа приложение находится в папке /iqchannels.
  • Содержит дополнительные пакеты:
    • libaio1
    • ca-certificates
    • webp
    • imagemagick
  • Идет с установленным и настроенным клиентом для Oracle instantclient_12_1.
  • Заданы /etc/default/locale:
    • LANG=en_US.UTF-8
      LC_ALL=en_US.UTF-8
      LANGUAGE=en_US:en

Структура папки /iqchannels:

  • bin — скомпилированные бинарные файлы приложения, скрипты управления приложением.
  • config — конфигурационные файлы и тестовые данные.
  • migrations — файлы миграций для баз данных.
  • static — статические файлы (JavaScript, CSS, картинки и т.д.)
  • var/runvar/logvar/upload — папки для логов, pid-файлов (в Unix) и загружаемого пользовательского контента.

Установка

1) Выберите требуемый образ со страницы Релизы.

...

3) Создайте файл конфигурации config.yaml. За основу можно взять файл config/config.yaml из архива релиза для любой ОС.

4) Укажите настройки базы данных в config.yaml.

...

Code Block
db:
 type: postgres
 connect: port=5432 dbname=iqchannels user=iqchannels password=secret sslmode=disable
 max_idle: 4 # Max idle connections in a connection pool.
 max_open: 12 # Max open connections in a connection pool.

SQL Server:

Code Block
#Пример для localhost:
db:
 type: mssql
 connect: port=1433;database=iqchannels;user id=sa;password=Secret22;encrypt=disable
 max_idle: 4 # Max idle connections in a connection pool.
 max_open: 12 # Max open connections in a connection pool.

Oracle:

Code Block

#Пример с подключением к серверу MSSQL на другом сервере (не в localhost):
db:
 type: oraclemssql
 connect: iqchannels/secret@localhost:1521/xe
 sqlserver://sa:password@192.168.1.150:1433?database=iqchannels
max_idle: 4 # Max idle connections in a connection pool.
 max_open: 12 # Max open connections in a connection pool.


5)  При необходимости  Опционально, измените укажите другие настройки сервера в в config.yaml. Настройки по умолчанию со всеми комментариями доступны в файле config/config.yaml из архива релиза для любой ОС.

...

Code Block
docker run -it --rm \
	--net=host \
	-v /absolute-path-to/config.yaml:/iqchannels/config/config.yaml \
	-v /absolute-path-to/var:/iqchannels/var \
	docker.iqstore.ru/iqchannels:2017.2.0 \
	migrate
Expand
titleЕсли на этом этапе возникли ошибки, то...
Если в процессе миграции вы видите ошибки, в тексте который встречается "..exists...",
Code Block
languagebash
...
2025/05/15 22:00:07     ERROR   migrations      Failed to execute Failed to execute 2024.10.16-12.00-alter-iqchat-widget-add-personal-data-form.sql: pq: column "personal_data_request_type" of relation "iqchat_widgets" already exists
 --- alter-iqchat-widget-add-personal-data-form
alter table iqchat_widgets add personal_data_request_type varchar(15) default 'default'
goroutine 1 [running]:
runtime/debug.Stack()
        /usr/local/go/src/runtime/debug/stack.go:24 +0x5e
github.com/iqstore/iqchannels/server/library/logs.(*logImpl).Stackf(0xc0000b86c0?, {0x1fb0ef0, 0xc00058b580}, {0x1c8ad74, 0x1c}, {0xc0006015c0?, 0x7f2ea4a32f18?, 0x60?})
        /builds/iqstore/iqchannels/server/library/logs/logs.go:196 +0x7b
github.com/iqstore/iqchannels/server/migrations.(*migrations).executeStmt.func1()...



но при этом далее имеются записи, что "migrations Applied..."
Code Block
languagebash
2025/05/15 22:00:07     WARN    migrations      Applied 0 migration(s) in 667ms


и далее успешно проходят миграции "...migrations services...":
Code Block
languagebash
2025/05/15 22:10:08     WARN    service migrations      Migrating services...   {id=1fcf206a-6421-41f7-b3e4-b193016bbb3a}
2025/05/15 22:10:08     WARN    service migrations      Applied service migration "FillNotificationInboxes"     {id=1fcf206a-6421-41f7-b3e4-b193016bbb3a}
2025/05/15 22:10:08     WARN    service migrations      Applied service migration "FillProjectCountersTx"       {id=1fcf206a-6421-41f7-b3e4-b193016bbb3a}



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



7) Запустите контейнер с приложением в фоновом режиме (-d):

Code Block
docker run -it -d \
	--name=iqchannels \
	--net=host \
	-v /absolute-path-to/config.yaml:/iqchannels/config/config.yaml \
	-v /absolute-path-to/var:/iqchannels/var \
	docker.iqstore.ru/iqchannels:2017.2.0 \
	run

8) Готово. Проверьте, что сервер запущен: 

http://localhost:3002/ 

10) Перейдите , перейдите к Настройке приложения.

Комментарии:

При необходимости, замените --net=host на сопоставление портов:

...