Частые вопросы
Размер и доступность
Какой самый большой файл можно хранить?
10 000 ГиБ (10 737 418 240 000 байт). Загрузка состоит не более чем из 10 000 частей, каждая не больше 1 ГиБ. Администратор может задать меньший предел через ARKVORY_MAX_OBJECT_BYTES. Заявленный размер сверх предела отклоняется с кодом 400. На практике раньше останавливают свободное место на диске, квота репозитория и резерв свободного места в 1 ГиБ: они отвечают 507. См. Основные понятия и Переменные окружения.
Сколько данных может хранить один сервер?
По умолчанию Arkvory резервирует до 10 ТиБ содержимого (ARKVORY_CAPACITY_BYTES), считая опубликованные файлы, незавершённые загрузки и содержимое, которое ждёт очистки. Это счётчик, а не проверка диска. Реальный предел задают диск и резерв свободного места. У репозитория может быть собственная квота. См. Хранение.
Обеспечивает ли Arkvory высокую доступность?
Нет. Одна установка — это один сервер с одной базой данных PostgreSQL и локальным каталогом содержимого. Если сервер остановится, клиенты ждут, а затем возобновляют передачи; службы сами перезапускаются после сбоя или зависания. Для защиты от потери сервера используйте резервные копии. Для чтения со второй площадки используйте зеркала; переключение на зеркало выполняется вручную, а изменения, которые зеркало ещё не получило, теряются.
Работает ли Arkvory без интернета?
Сервер работает без доступа в интернет. Установщик для Windows включает Node.js и PostgreSQL и устанавливает всё без сети. Пакеты для Linux включают Node.js, а PostgreSQL ставит менеджер пакетов. Скриптовые установщики и Docker скачивают файлы. Обновления можно устанавливать из локальной копии релиза. Если хаб обновлений недоступен, проверка обновлений завершается ошибкой, которую показывает консоль; больше ничего не затрагивается. См. Выбор установки и Обновления.
Хранилище и база данных
Какую базу данных использует Arkvory?
PostgreSQL, по одной базе данных на установку. Установщик для Windows включает PostgreSQL 18.4. Пакеты для Linux используют отдельный кластер сервера PostgreSQL версий с 16 по 19 из вашего дистрибутива. Стек Docker Compose запускает PostgreSQL 18.4 в контейнере. Скриптовые установщики используют ваш собственный сервер. Никогда не подключайте две установки к одной базе данных. Содержимое файлов хранится не в базе данных, а в каталоге данных.
Можно ли использовать S3 или другое объектное хранилище?
Нет. Содержимое файлов хранится в локальном каталоге, который должен находиться на локальной файловой системе с поддержкой жёстких ссылок, а не в сетевой папке. Arkvory не хранит содержимое в S3 и не предоставляет интерфейс S3. Хранилище копий — это папка на другом диске или на подключённой сетевой папке (в Windows — локальный том или том iSCSI).
Можно ли использовать единый вход (SSO) моей компании?
Нет. Учётные записи, группы и пароли принадлежат Arkvory. Автоматизация входит с помощью ключей сервиса. См. Аутентификация.
Работа сервера
Как узнать, какая версия установлена?
В консоли откройте Обновления: версию показывает Установленная версия. На сервере выполните arkvory status --root <корень установки> и прочитайте current; в Windows с графическим установщиком выполните & 'C:\Program Files\ProAnima\Arkvory\arkvory.ps1' status --root 'C:\ProgramData\ProAnima\Arkvory' в PowerShell с повышенными правами. Администратор также может вызвать GET /api/v1/system/updates, который возвращает currentVersion. Команда arkvoryctl --version показывает версию клиента, а не сервера.
Как включить автоматические обновления?
В консоли откройте Обновления, включите Автоматически устанавливать совместимые стабильные релизы, выберите Час обслуживания (UTC) и нажмите Сохранить настройки. На сервере выполните arkvory configure --root <корень установки> --enable-updates; --disable-updates выключает их. Установщики оставляют автоматические обновления выключенными, если вы не передали --automatic.
Сервер проверяет наличие релиза каждые 6 часов, даже когда автоматическая установка выключена. Когда она включена, стабильный релиз устанавливается раз в сутки в час обслуживания (по умолчанию 03:00 UTC), если версия не закреплена. Релиз, который меняет схему базы данных, устанавливается только после того, как сервер сделает и проверит свежую резервную копию. См. Обновления.
Что Arkvory отправляет в ProAnimaStudio?
Ваши файлы и данные остаются на вашем сервере. Сервер обращается к хабу ProAnimaStudio (hub.proanima.net), а когда хаб недоступен, — к GitHub по трём поводам:
- Проверка обновлений. Запрос содержит название проекта, операционную систему, архитектуру процессора, установленную версию и канал обновлений. Если статистика включена, в нём также есть случайный ID установки.
- Анонимная статистика. Одно событие после каждого установленного обновления: ID установки, версия, система, архитектура и канал. Имена, адреса, содержимое и IP-адреса не сохраняются. Статистика включена по умолчанию; чтобы выключить её, снимите флажок Отправлять анонимную статистику в ProAnimaStudio в разделе Обновления или выполните
arkvory configure --statistics off. Без статистики новая версия доходит до вас, только когда её выкатят всем. - Обратная связь. Только когда вошедший пользователь отправляет её с помощью Обратная связь. Она содержит сообщение, необязательный адрес электронной почты, до 6 снимков экрана и журнал консоли. Администратор может добавить журнал сервера и сводку версий и состояний без секретов. Показать, что будет приложено показывает, что именно будет отправлено.
arkvory configure --hub-off прекращает обращения к хабу: релизы тогда берутся только с GitHub, а обратная связь выключается после перезапуска служб. Пустое значение ARKVORY_HUB_URL выключает только обратную связь. См. лицензию, раздел 7.
Выполняется ли резервное копирование само?
Нет, пока вы его не настроите. Подключите хранилище копий командой arkvory configure --backup-vault <папка> --vault-key-file <file>, затем включите ежедневное расписание в Расписание и хранение в разделе Резервные копии. План начинается в 02:00 UTC и хранит 7 ежедневных, 4 еженедельных и 6 ежемесячных точек восстановления. Пока расписание не включено, консоль показывает предупреждение о том, что ежедневное расписание выключено. См. Резервные копии.
Как перенести Arkvory на другой сервер?
- Установите на новом сервере ту же или более новую версию Arkvory.
- Восстановите самую новую точку восстановления из хранилища копий в пустую базу данных и пустой каталог хранилища командой
arkvory-backup restore. Она проверяет каждый файл по SHA-256. См. Резервные копии. - Укажите в
config/runtime.jsonдляARKVORY_DATABASE_URLиARKVORY_DATA_DIRвосстановленные базу данных и каталог, перезапустите службы и проверьте консоль, скачивание и загрузку. - Перенесите адрес (DNS или настройки CI) на новый сервер.
Пользователи, группы и пароли возвращаются. Сессии не переносятся, а персональные токены и ключи сервиса отзываются, поэтому войдите снова и выпустите новые ключи. Политики хранения и очистки возвращаются выключенными; включите их осознанно. Незавершённые загрузки отменяются. Если репозиторий нужно перенести, пока старый сервер продолжает работать, можно также настроить новый сервер как зеркало этого репозитория и отсоединить его при переключении; зеркало переносит файлы, пакеты и образы, но не учётные записи, ключи, вложения и политики.
Что происходит с передачей при перезапуске сервера?
Клиент продолжает передачу. Сессия загрузки существует 7 дней и сохраняет пришедшие части; клиент командной строки и SDK спрашивают у сервера, что у него есть, и отправляют остальное. Скачивание продолжается запросом Range. Одиночный запрос PUT, например для обычного файла или слоя Docker, начинается заново с первого байта. См. Продолжение прерванных передач.
Где искать причину сбоя?
У каждой ошибки есть ID запроса — в поле requestId и в заголовке X-Request-Id. Найдите его в журнале доступа сервера. Службы пишут журналы в папку logs в Windows и в журнал systemd (journalctl -u arkvory-api) в Linux. Чтобы приложить журналы, отправьте сообщение через Обратная связь. См. Устранение неполадок и Мониторинг.
Доступ
Как сбросить пароль владельца?
Другой администратор может нажать Сменить пароль в разделе Пользователи и доступ. Если войти не может никто, используйте ключ восстановления из config/bootstrap-token.txt: найдите ID учётной записи через GET /api/v1/users и отправьте PATCH /api/v1/users/<id> с телом {"password": "…"}. Новый пароль содержит от 12 до 128 символов. Сброс завершает все сессии и все персональные токены этой учётной записи. См. Аутентификация.
Что такое ключ восстановления и что делать, если я его потерял?
Это секрет в config/bootstrap-token.txt в корне установки, который может прочитать только системный администратор. Он создаёт первого владельца и управляет сервисными учётными записями. Средства установки читают этот файл, поэтому не удаляйте его. Если файл потерян, но у вас остаётся учётная запись администратора, можно продолжать работать с ней; чтобы создать новый ключ восстановления, следуйте странице Настройка. См. Основные понятия.
Какой ключ использовать в CI?
Ключ сервиса сервисной учётной записи, в политике которой есть только действия, нужные заданию, например upload.create, upload.write, upload.complete, upload.read и job.read для публикации. Кнопки консоли Набор для чтения и Набор для публикации заполняют типовые наборы. Не используйте в CI ключ восстановления или токен человека. Ключи действуют по умолчанию 90 дней и ограничены 365 днями, поэтому запланируйте ротацию. См. Аутентификация.
Почему администратор не может удалить артефакт или изменить политику хранения?
Действия artifact.delete, storage.read, storage.manage и diagnostics.read существуют только для ключей сервиса. Групповой доступ, персональный токен, сессия и ключ восстановления их никогда не несут. Создайте сервисную учётную запись с этими действиями для репозитория, выпустите ключ и используйте его для вызова (в API, в arkvoryctl или через пункт Подключиться ключом сервиса или автоматизации в консоли). Ошибка — 403 с причиной permission_missing. См. Аутентификация.
Работают ли с Arkvory Docker, Git LFS и Unity?
Да. Arkvory предоставляет реестр контейнеров по адресу /v2/, сервер Git LFS по адресу /lfs/<репозиторий> и реестр npm по адресу /npm/<репозиторий>/, который может использовать Unity Package Manager. Они принимают ключ Arkvory в качестве пароля. См. Клиенты и протоколы.
Лицензия
Является ли Arkvory продуктом с открытым исходным кодом?
Нет. Arkvory бесплатен, и его исходный код открыт для чтения, но это не open source. Он распространяется по лицензии ProAnima Arkvory License 1.0 автора Ian Panaev, которая не разрешает распространять форки и копии. Пожалуйста, не называйте его «open source». Полный текст находится в LICENSE.md; если два текста расходятся, преимущество имеет русский.
Что можно делать с Arkvory?
Вы можете устанавливать и использовать любое число копий для любых целей, в том числе в компании; читать и изучать исходный код; изменять его; и использовать свою изменённую версию внутри своей организации. Вы можете хранить и доставлять через Arkvory собственные артефакты, в том числе своим клиентам.
Что запрещено?
Нельзя распространять программу или изменённые версии кому-либо за пределами вашей организации; публиковать форки, сборки, образы контейнеров или патчи, содержащие её код; продавать, сдавать в аренду или одалживать её либо доступ к ней; брать за неё плату; предлагать её третьим лицам как размещённую или управляемую услугу. Нельзя удалять уведомления об авторских правах, лицензию и названия ProAnima Arkvory и ProAnimaStudio или выдавать изменённую версию за оригинал. Когда вы публично описываете систему, построенную на Arkvory, указывайте источник: «ProAnima Arkvory by ProAnimaStudio (Ian Panaev), https://github.com/ProAnima/Arkvory». Получайте копии только из официальных источников. По вопросам других разрешений пишите на info@proanima.net.
Куда сообщать о проблеме или об уязвимости?
О проблеме в вашей установке сообщите через Обратная связь в консоли. О проблеме безопасности сообщите, следуя SECURITY.md в репозитории, и не публикуйте её открыто.