Перейти к содержимому

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

Arkvory настраивается переменными окружения, имена которых начинаются с ARKVORY_. На этой странице перечислены все переменные, которые читают серверные процессы, клиент командной строки и скрипты установки.

Откуда берутся значения ​

Установщики записывают настройки сервера в один файл, config/runtime.json, в корне установки. Программа запуска каждой службы читает этот файл и передаёт его значения API, обработчику и агенту резервного копирования. Каждый ключ должен начинаться с ARKVORY_, а каждое значение должно быть строкой.

json
{
  "ARKVORY_HOST": "127.0.0.1",
  "ARKVORY_PORT": "8080",
  "ARKVORY_CAPACITY_BYTES": "10995116277760",
  "ARKVORY_DATABASE_URL": "postgresql://arkvory:PASSWORD@127.0.0.1:54329/arkvory",
  "ARKVORY_DATA_DIR": "/opt/proanima-arkvory/data",
  "ARKVORY_KEYS_FILE": "/opt/proanima-arkvory/config/keys.json",
  "ARKVORY_MAX_DOWNLOADS": "32"
}

Файл содержит пароль базы данных. Оставьте его права доступа такими, какими их задал установщик.

Чтобы изменить настройку, отредактируйте config/runtime.json и перезапустите службы. Там, где настройку покрывает команда arkvory configure (HTTPS, хранилище копий, зеркала, обновления), используйте её. Команда проверяет изменение и возвращает прежний файл, если службы не запустились. См. Настройка.

bash
sudo systemctl restart arkvory-api arkvory-worker arkvory-backup
powershell
Restart-Service Arkvoryapi, Arkvoryworker, Arkvorybackup

Значение вне допустимого диапазона останавливает процесс при запуске с сообщением, в котором названа переменная. В этом случае Arkvory не возвращается к значению по умолчанию.

В столбце «Читает» используются такие названия: API — HTTP-сервер (в том числе шлюз чтения), worker — фоновый обработчик, agent — агент резервного копирования, CLI — arkvoryctl.

Основные настройки ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_DATABASE_URLAPI, worker, agent, миграцияобязательнаURL подключения к PostgreSQL (postgres:// или postgresql://). Используйте отдельную базу данных для каждой установки.
ARKVORY_DATA_DIRAPI, worker, agentобязательнаЛокальный каталог хранилища: промежуточная область (staging), содержимое и файл storage-id. Не используйте сетевую папку.
ARKVORY_HOSTAPI127.0.0.1Адрес, который нужно слушать. Установщики записывают 127.0.0.1; в Docker Compose внутри контейнера это 0.0.0.0, а порт публикуется только на loopback хоста.
ARKVORY_PORTAPI8080TCP-порт, 1–65535.
ARKVORY_WEB_DIRAPIapps/web/publicКаталог с файлами веб-консоли. Программа запуска при каждом старте устанавливает его на текущий релиз.
ARKVORY_DATABASE_POOL_SIZEAPI20Размер пула запросов API, 4–200. Долгоживущие сессии используют отдельный пул из 3 соединений.

Хранилище и ограничения ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_CAPACITY_BYTESAPI, worker10 ТиБВерхний предел в байтах для всего зарезервированного содержимого: опубликованного, незавершённых загрузок и содержимого, ожидающего очистки. Это не проверка диска. Обработчик читает её только для копий зеркал.
ARKVORY_STORAGE_RESERVE_BYTESAPI, worker, agent1073741824Свободное место в байтах, которое загрузки никогда не занимают. Оно сохраняется для базы данных, журналов и системы. 0 отключает резерв.
ARKVORY_MAX_OBJECT_BYTESAPIоколо 10 ТиБНаибольший объект в байтах. Наибольшее допустимое значение — 10 000 частей по 1 ГиБ. Задайте меньшее значение, чтобы ограничить размер файла.

Передачи и пропускная способность ​

Эти ограничения относятся к одному процессу API. Скорости задаются в байтах в секунду: 0 означает «без ограничения», любое другое значение должно быть от 65 536 до 1 ТиБ.

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_MAX_UPLOADSAPI8Одновременно выполняемые загрузки, 1–32.
ARKVORY_MAX_DOWNLOADSAPI16Одновременно выполняемые скачивания, 1–256.
ARKVORY_MAX_UPLOADS_PER_PRINCIPALAPI4Одновременные загрузки одной учётной записи или ключа, не больше общего предела загрузок.
ARKVORY_MAX_DOWNLOADS_PER_PRINCIPALAPI4Одновременные скачивания одной учётной записи или ключа, не больше общего предела скачиваний.
ARKVORY_DOWNLOAD_STRATEGYAPIorderedКак очередь упорядочивает целые скачивания объектов больше ARKVORY_DOWNLOAD_SESSION_MIN_BYTES: ordered (классы приоритета, учётные записи и ключи по кругу), smallest-first (сначала маленькие объекты) или shared (без очереди: каждый запрос допускается отдельно). Со шлюзами чтения (переменные ARKVORY_SHARED_DOWNLOADS_*) по умолчанию shared на каждом процессе, включая процесс записи.
ARKVORY_MAX_DOWNLOAD_SESSIONSAPIARKVORY_MAX_DOWNLOADSСкачивания, одновременно занимающие место в очереди, 1–1024.
ARKVORY_DOWNLOAD_RESERVEAPI1Места для людей (сессии консоли и личные токены) во время массового обновления. При меньше чем четырёх местах по умолчанию 0.
ARKVORY_DOWNLOAD_WEIGHTSAPIinteractive=8,release=4,bulk=2,background=1Доля свободных мест по классам. Укажите только те классы, которые меняете.
ARKVORY_DOWNLOAD_SESSION_MIN_BYTESAPI16777216Объекты до этого размера идут без очереди, допуском на запрос.
ARKVORY_DOWNLOAD_IDLE_SECONDSAPI30Пауза между диапазонами дольше этой освобождает место. Скачивание сохраняет очередь ещё десять минут.
ARKVORY_DOWNLOAD_AGING_MINUTESAPI15Каждое такое ожидание поднимает скачивание на класс, не выше release. 0 отключает старение.
ARKVORY_DOWNLOAD_PREEMPTAPItrueКлиенты протокола очереди (SDK, arkvoryctl) уступают место на границе диапазонов более высокому классу или ключу ниже его доли, если держат место не меньше минуты.
ARKVORY_DOWNLOAD_RANGES_PER_SESSIONAPI4Одновременные запросы одного скачивания: параллельные диапазоны, клиенты за одним адресом.
ARKVORY_DOWNLOAD_QUEUE_LIMITAPI65536Всего скачиваний в очереди, активных и ждущих. Сверх этого клиент получает просьбу прийти через минуту.
ARKVORY_DOWNLOAD_QUEUE_PER_PRINCIPALAPI4096Всего скачиваний одной учётной записи, одного ключа или одной ссылки.
ARKVORY_DOWNLOAD_HOLD_SECONDSAPI20Сколько сервер держит запрос клиента вне протокола очереди (docker, npm, curl, браузер) до его очереди, прежде чем ответить 503. По умолчанию — ARKVORY_TRANSFER_QUEUE_TIMEOUT_MS. 0 — отвечать сразу.
ARKVORY_SITE_NAMEAPI—Как эта установка называется на странице «Площадки» других установок, 1–63 символа.
ARKVORY_FLEET_KEY_FILEAPIfleet.keyКлюч, которым запечатаны ключи площадок, которыми управляет эта установка. Процесс записи создаёт его при первом запуске; берегите его как каталог данных. Его нет ни в базе данных, ни в резервных копиях.
ARKVORY_SITE_URLAPIне заданаАдрес https://host[:port], по которому другие площадки обращаются к этой установке. Если задан, зеркала других площадок, источник которых — эта установка, ведут к ней на карте страницы «Площадки», а не показывают внешний адрес. Неверное значение останавливает запуск.
ARKVORY_FLEET_LAG_ALERTAPI1000На сколько изменений зеркало управляемой площадки может отстать от источника, прежде чем страница «Площадки» управляющей площадки покажет оповещение. Целое число, 1 или больше.
ARKVORY_TRANSFER_QUEUE_LIMITAPI64Передачи, которые могут ждать свободного места (слота), 1–1024.
ARKVORY_TRANSFER_QUEUE_PER_PRINCIPALAPI8Ожидающие передачи одной учётной записи или ключа, не больше предела очереди.
ARKVORY_TRANSFER_QUEUE_TIMEOUT_MSAPI20000Сколько передача может ждать в очереди, 1–120 000 мс.
ARKVORY_MAX_REQUESTSAPI128Одновременные запросы с аутентификацией, 1–4096. Значение должно быть больше суммы загрузок и скачиваний. Если переменная не задана, а пределы передач высоки, по умолчанию берётся сумма загрузок и скачиваний плюс 64.
ARKVORY_UPLOAD_BYTES_PER_SECONDAPI0Общая скорость загрузки процесса.
ARKVORY_DOWNLOAD_BYTES_PER_SECONDAPI0Общая скорость скачивания процесса.
ARKVORY_UPLOAD_BYTES_PER_SECOND_PER_PRINCIPALAPI0Скорость загрузки одной учётной записи или ключа по всем их соединениям.
ARKVORY_DOWNLOAD_BYTES_PER_SECOND_PER_PRINCIPALAPI0Скорость скачивания одной учётной записи или ключа по всем их соединениям.
ARKVORY_UPLOAD_IDLE_TIMEOUT_MSAPI30000Запрос загрузки, не передающий данные в течение этого времени, прекращается, 1–1 800 000 мс.
ARKVORY_UPLOAD_DEADLINE_MSAPI1800000Наибольшая длительность одного запроса загрузки, 1–1 800 000 мс. Она не может быть короче тайм-аута простоя.

Сеть, HTTPS и браузеры ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_TLS_CERT_FILEAPIне заданаСертификат PEM (вместе с цепочкой) для встроенного HTTPS. Задавайте вместе с файлом ключа.
ARKVORY_TLS_KEY_FILEAPIне заданаЗакрытый ключ PEM без пароля.
ARKVORY_TLS_MIN_VERSIONAPITLSv1.2TLSv1.2 или TLSv1.3.
ARKVORY_TLS_RELOAD_SECONDSAPI300Как часто читаются обновлённые файлы сертификата: 30–86 400 секунд или 0, чтобы читать их только при запуске.
ARKVORY_CORS_ORIGINSAPIпустоСписок из не более 16 origin браузера через запятую, для консоли на другом адресе. Только HTTPS или HTTP на loopback.
ARKVORY_TRUSTED_PROXIESAPIпустоДо 32 адресов обратных прокси-серверов (IP или CIDR). Только они могут задавать адрес клиента через X-Forwarded-For, ID запроса через X-Request-Id, а также хост и протокол абсолютных ссылок (Git LFS, npm) через X-Forwarded-Host и X-Forwarded-Proto.

Встроенный HTTPS предназначен для нативных установок. С Docker Compose используйте обратный прокси-сервер. См. HTTPS.

Идентификация и ключи ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_KEYS_FILEAPI, workerобязательнаФайл JSON с файловыми ключами, например ключом восстановления и ключом проверки работоспособности. В нём хранятся хеши SHA-256, но не сами ключи.
ARKVORY_ALLOW_REGISTRATIONAPIвыкл.true позволяет людям самим создавать учётные записи на странице входа. Любое другое значение оставляет регистрацию выключенной.

Резервные копии ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_BACKUP_VAULTagentне заданаКаталог инициализированного хранилища копий. Без неё агент работает и сообщает, что хранилище не настроено. Записывает её arkvory configure --backup-vault.
ARKVORY_BACKUP_VAULT_KEY_FILEagentне заданаФайл с ключом агента для зашифрованного vault (AK1-…) или набор восстановления. Команды принимают его и как --key-file. Его пишет arkvory configure --vault-key-file.
ARKVORY_BACKUP_BYTES_PER_SECONDagentбез ограниченияОграничение скорости копирования резервной копии, не менее 65 536.
ARKVORY_BACKUP_POLL_SECONDSagent15Как часто агент проверяет наличие новых заданий резервного копирования, 1–3600 секунд.
ARKVORY_BACKUP_LEASE_SECONDSagent60Время аренды (lease), которое не позволяет второму агенту работать одновременно, 2–3600 секунд.
ARKVORY_BACKUP_SNAPSHOT_SECONDSagent1800Предел времени для части резервной копии со снимком базы данных, 60–86 400 секунд.
ARKVORY_BACKUP_BARRIER_SECONDSagent30Сколько резервная копия ждёт выполняющегося шага очистки, 1–600 секунд.
ARKVORY_RESTORE_DATABASE_URLкоманда restoreне заданаЦелевая база данных при восстановлении. Это безопаснее, чем --database-url, потому что другие пользователи не видят её в списке процессов.

См. Резервные копии.

Зеркала ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_MIRRORS_FILEAPI, workerне заданаФайл JSON со списком репозиториев-зеркал (до 64). Записывает его arkvory configure --mirror.
ARKVORY_MIRRORS_CA_FILEworkerне заданаАбсолютный путь к файлу PEM с дополнительными центрами сертификации для серверов-источников. TLS всегда проверяется.

См. Зеркала.

Вебхуки ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_WEBHOOKS_FILEworkerне заданаJSON-файл со списком подписок на вебхуки (до 16). Без него вебхуки не отправляются.
ARKVORY_WEBHOOKS_ALLOW_PRIVATEworkerне заданаСети в формате CIDR через запятую (до 32), которым разрешено получать вебхуки помимо публичных адресов, например 10.20.0.0/16.
ARKVORY_WEBHOOKS_CA_FILEworkerне заданаАбсолютный путь к PEM-файлу с дополнительными удостоверяющими центрами получателей. TLS проверяется всегда.

См. Вебхуки.

Кластер высокой доступности ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_REPLICA_SOCKETAPIне заданаСокет службы arkvory-replica. Задаёт arkvory configure --cluster. С ней запись получает 2xx, только когда требуемые копии полные. Не задана — отдельный сервер.

См. Кластер высокой доступности.

Обновления и хаб ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_HUB_URLAPIhttps://hub.proanima.netАдрес хаба ProAnimaStudio, который использует только обратная связь из консоли (хаб обновлений хранится в config/hub.json и меняется командой arkvory configure). Пустое значение отключает обратную связь. Только HTTPS или HTTP на loopback.
ARKVORY_HUB_PROJECTAPIarkvoryНазвание проекта в хабе.
ARKVORY_UPDATE_CONTROL_DIRAPIне заданаКаталог, общий для API и средства обновления на хосте. Его задают установщики. Без него консоль не может запрашивать обновления.

См. Обновления.

Журналирование и остановка ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_LOG_LEVELAPI, worker, agentinfodebug, info, warning или error.
ARKVORY_ACCESS_LOGAPItruetrue записывает одну строку JSON на каждый HTTP-запрос; false отключает запись.
ARKVORY_DRAIN_TIMEOUT_MSAPI30000После сигнала остановки — время, за которое должны завершиться выполняющиеся запросы, 0–3 600 000 мс.

Шлюзы чтения ​

Если задана любая из этих переменных, обязательны слот, число слотов и общая скорость. Пишущий процесс использует роль api и слот 0. Каждый шлюз чтения использует роль reader и собственный слот. См. Шлюзы чтения.

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_ROLEAPIapiapi (пишущий процесс) или reader (шлюз чтения).
ARKVORY_GATEWAY_SLOTSAPIне заданаЧисло процессов, которые делят общий лимит скачивания, 2–16.
ARKVORY_GATEWAY_SLOTAPIне заданаСлот этого процесса, от 0 до числа слотов минус один.
ARKVORY_SHARED_DOWNLOAD_BYTES_PER_SECONDAPIне заданаОбщая скорость скачивания всех процессов. Каждый слот получает равную долю, не менее 65 536 байт в секунду.
ARKVORY_SHARED_DOWNLOAD_BYTES_PER_SECOND_PER_PRINCIPALAPI0Общая скорость скачивания одной учётной записи или ключа по всем процессам; 0 означает «без ограничения».

Сторожевой таймер ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_WATCHDOG_SECONDSAPI, worker, agent60Процесс, который остаётся заблокированным в течение этого времени, завершается сам, а менеджер служб запускает его снова. 0 отключает сторожевой таймер (для отладчика); иначе 10–3600 секунд.

См. Самовосстановление.

Клиент командной строки ​

ПеременнаяЧитаетПо умолчаниюЗначение
ARKVORY_BASE_URLCLIпрофиль, затем http://127.0.0.1:8080Адрес сервера. Если переменная задана, ключ тоже должен браться из окружения.
ARKVORY_TOKENCLIне заданаСам ключ. Приоритетнее файла ключа.
ARKVORY_TOKEN_FILECLIфайл ключа из профиляПуть к файлу, содержащему ключ.
ARKVORY_CLI_HOMECLI~/.config/arkvoryКаталог файла profiles.json.
ARKVORY_CLI_VERSIONCLIdevelopmentВерсия, которую выводит --version. Её задают релизные пакеты.

См. Клиент командной строки.

Скрипты установки ​

Эти переменные читает install.sh в Linux. В Windows install.ps1 вместо них использует параметры, например -Root и -Artifact.

ПеременнаяПо умолчаниюЗначение
ARKVORY_INSTALL_ROOT/opt/proanima-arkvoryКорень установки. Не размещайте нативную установку в домашнем каталоге.
ARKVORY_ARTIFACT_DIRне заданаКаталог распакованного релиза. Скрипт устанавливает его вместо скачивания релиза.
ARKVORY_RELEASE_VERSIONпоследний стабильныйТочная стабильная версия для установки, например 1.2.3.

Задаются установщиком ​

Установщик задаёт эти переменные для своих вспомогательных процессов. Не задавайте их сами.

ПеременнаяЗначение
ARKVORY_IMAGEОбраз контейнера текущего релиза в config/compose.env.
ARKVORY_SERVICE_WRAPPERПуть к обёртке службы резервного копирования Windows; используется, когда служба остановлена.
ARKVORY_PROTECT_ROOTКорень установки, для которого в Windows задаются правила доступа.
ARKVORY_ENGINE_USERВ Windows с Docker Desktop даёт текущему пользователю доступ к корню.

Arkvory · ProAnimaStudio