vc-fileserver

vc-fileserver #

API для загрузки и скачивания файлов и их метаданных

Настраивается через переменные окружения.

Порты #

Контейнер запускает следующие порты:

  • 9108 публичное http API
  • 9118 внутренний порт для сохранения записей взаимодействий от vc-records

Переменные окружения #

  • LOGLEVEL установка уровня логирования (TRACE, DEBUG, INFO, WARN, ERRROR ), по-умолчанию INFO
  • VC_FILESERVER_REQUEST_MAX_SIZE максимальный размер передаваемого файла, значение с указанием величины (m - мегабайты, g - гигабайты), по-умолчанию infinite - не ограничено. Значение должно быть достаточным для загрузки больших файлов записей взаимодействий.
  • VC_FILESERVER_HTTP_TIMEOUT таймаут http запроса, время с указанием величины (s - секунды, m - минуты), по-умолчанию 600s. Следует выставлять достаточным для возможности загрузки больших файлов записей взаимодействий.

Настройка tls для подключений от vc-records #

По-умолчанию, vc-records подключается к vc-fileserver для загрузки записей на порт 9118 по протоколу http. Если эти контейнеры расположены на разных хостах, то может потребоваться настройка защищенного соединения между ними.

  • VC_FILESERVER_HTTP_TLS_USE значение true включает tls на порту 9118
  • VC_FILESERVER_HTTP_CERTFILE указывает путь к файлу цепочки сертификата (формат PEM)
  • VC_FILESERVER_HTTP_KEYFILE указывает путь к файлу с ключом сертификата (формат PEM)

Если пути к сертификату и его ключу не заданы, то при установленном параметре VC_FILESERVER_HTTP_TLS_USE=true подкладываются самоподписанные сертификат и ключ.

Тома #

Контейнер использует 2 тома для хранения данных:

  • /storage - это основное хранилище файлов (на схеме FileStorage), рекомендуется примонтировать сетевой диск с регулярным процессом резервного копирования
  • /tmp/storage - это временное хранилище файлов, сюда попадают файлы, которые находятся в процессе загрузки, не требует отдельно примонтированного диска, но может потребовать места на хосте виртуализации.

Настройка подключений к компонентам платформы #

Примеры compose файлов #

Запуск в докере локально
volumes:
  FileStorage:
services:
  vc-fileserver:
    image: cr.repo.altuera.ru/sva/prod/vc-fileserver:${SVA_VERSION}
    restart: unless-stopped
    environment:
      LOGLEVEL: ${LOGLEVEL}
    volumes:
      - FileStorage:/storage
Установка SVA на один сервер
services:
  vc-fileserver:
    image: cr.repo.altuera.ru/sva/prod/vc-fileserver:${SVA_VERSION}
    restart: unless-stopped
    environment:
      LOGLEVEL: ${LOGLEVEL}
    volumes:
      - ${FILESERVER_DIR}:/storage
Установка SVA на несколько серверов
volumes:
  FileStorage:
    driver: local
    driver_opts:
      type: nfs4
      o: addr=${HOST_DB},rw
      device: :/exports/FileStorage
services:
  vc-fileserver:
    image: cr.repo.altuera.ru/sva/prod/vc-fileserver:${SVA_VERSION}
    restart: unless-stopped
    ports:
      - 9118:9118
      - 9108:9108
    environment:
      LOGLEVEL: ${LOGLEVEL}
      EUID: 1101
      EGID: 1101
      VC_FILESERVER_HTTP_TLS_USE: true
      VC_FILESERVER_HTTP_CERTFILE: /certificates/cert_fullchain.pem
      VC_FILESERVER_HTTP_KEYFILE: /certificates/cert.key
      DB_HOST: ${HOST_DB}
      DB_TLS_USE: true
      DB_CACERT_PATH: /certificates/CA.crt
      DB_USER: dbuser
      DB_PASSWORD: dbpassword
      MQTT_SERVER_HOST: ${HOST_DB}
      MQTT_SERVER_PORT: 8883
      MQTT_TLS_USE: true
      MQTT_CACERT_PATH: /certificates/CA.crt
      MQTT_USER_NAME: mqttuser
      MQTT_PASSWORD: mqttpassword
    volumes:
      - FileStorage:/storage
      - /srv/certificates/CA.crt:/certificates/CA.crt:ro
      - /srv/certificates/cert_fullchain.pem:/certificates/cert_fullchain.pem:ro
      - /srv/certificates/cert.key:/certificates/cert.key:ro
powered by Altuera