Как разместить ConvertX на собственном сервере в 2026 году: загрузки, JWT-секреты и лимиты ресурсов
Разместите ConvertX на собственном сервере с корректными портами, постоянным хранилищем, HTTPS, секретами, резервным копированием и проверками обновлений. Узнайте, как исправить ситуацию, когда отсутствует бинарный файл конвертера.
Есть две версии «запустить ConvertX»: контейнер существует или сервис действительно выполняет свою основную задачу. Важна только вторая. Для проверки загрузите несколько показательных форматов, конвертируйте каждый из них, скачайте результаты и сравните хеши или медиапараметры там, где результат должен быть детерминированным.
ConvertX предназначен именно для этого: это браузерный сервис конвертации файлов. При развёртывании необходимо сохранить все компоненты, обеспечивающие такое поведение; порт, volume и сертификат — это входные параметры, а не результат.
Выберите минимальную работоспособную топологию ConvertX
Начните с сетевого пространства имён ConvertX: его web listener работает на порту 3000, а не на host port, скопированном из инструкции для ноутбука. Локальные требования к runtime — это CPU, память и временное дисковое пространство, соответствующие выбранным конвертерам. Зафиксируйте ожидаемую capacity, владельца и сценарий сбоя, а не оставляйте их значениями по умолчанию образа.
После выполнения требований запустите полный сценарий — загрузите несколько показательных форматов, конвертируйте каждый из них, скачайте результаты и сравните хеши или медиапараметры там, где результат должен быть детерминированным. Зафиксируйте логи и показатели CPU, памяти, временного диска, размера файлов и бинарных файлов конвертеров, вызываемых для каждой пары форматов. Эти данные станут первой проверенной архитектурой и позволят тестировать последующие переносы между вычислительными ресурсами Dockup и подключённым сервером.
Разделяйте внутренние и внешние URL
Не используйте для ConvertX временные и постоянные public origins. Вместо этого опубликуйте UI через HTTPS с явно заданными лимитами загрузки, направьте выбранное DNS-имя на platform route и проксируйте запросы только на порт 3000.
Проверьте эту операцию извне host: загрузите несколько показательных форматов, конвертируйте каждый из них, скачайте результаты и сравните хеши или медиапараметры там, где результат должен быть детерминированным. Если ingress не работает, в руководстве по устранению ошибки 502 описаны проблемы с портами и listener. Если ConvertX получает запрос, но бинарный файл конвертера отсутствует или proxy отклоняет большую загрузку, значит, причина уже не в proxy.
Параметры контейнера, которые стоит проверить
Запустите ConvertX так, чтобы route оставался private до завершения bootstrap.
docker run -d \
--name convertx \
--restart unless-stopped \
-p 127.0.0.1:3000:3000 \
-v convertx-data:/app/data \
-e JWT_SECRET=replace-with-a-long-random-value \
ghcr.io/c4illin/convertx:latest
Если процесс зацикливается, сравните ожидаемого пользователя image с владельцем каждого подключённого path. Если процесс продолжает работать, проверьте порт 3000 локально, а затем сразу перейдите к workflow: загрузите несколько показательных форматов, конвертируйте каждый из них, скачайте результаты и сравните хеши или медиапараметры там, где результат должен быть детерминированным. Фиксируйте версию image только после успешной сквозной проверки и храните точную конфигурацию рядом с сервисом.
Проведите репетицию рискованного изменения ConvertX
Проверка health в состоянии простоя мало что говорит о ConvertX. Отслеживайте CPU, память, временный диск, размер файлов и бинарные файлы конвертеров, вызываемые для каждой пары форматов, а затем настраивайте alert по симптому, который видит пользователь: сбою операции «загрузить несколько показательных форматов, конвертировать каждый из них, скачать результаты и сравнить хеши или медиапараметры там, где результат должен быть детерминированным». Liveness должна оставаться локальной и дешёвой; readiness должна сообщать о миграциях или инициализации, не провоцируя бесконечные перезапуски.
Рискованная область обновления заключается в том, что releases image могут добавлять или удалять конвертеры, поэтому проверяйте точную матрицу форматов, от которой зависят пользователи. Изучите release notes, создайте snapshot состояния, разверните целевую версию на восстановленной копии и повторите acceptance action. Если бинарный файл конвертера отсутствует или proxy отклоняет большую загрузку, сопоставьте запрос клиента с первым релевантным логом приложения, а не удаляйте состояние и не добавляйте redirects вслепую.
Пять проверок, которые надёжнее health контейнера
Не используйте первый пользовательский трафик как acceptance test для ConvertX. Подготовьте безвредные sample state и выполните полную операцию «загрузить несколько показательных форматов, конвертировать каждый из них, скачать результаты и сравнить хеши или медиапараметры там, где результат должен быть детерминированным». Зафиксируйте точный public URL, результат, reference image и интервал логирования, связанные с этим запуском.
Замените container и повторите проверку, не пересоздавая data. Затем восстановите систему на пустом host; условие восстановления — возвращение accounts и settings, а также успешное прохождение фиксированной матрицы форматов в заданных пределах. На каждом этапе отслеживайте CPU, память, временный диск, размер файлов и бинарные файлы конвертеров, вызываемые для каждой пары форматов, и настраивайте alert на ухудшение транзакции, а не на метрики контейнера в состоянии простоя.
Последняя проверка должна намеренно завершиться ошибкой: отправьте безвредный input, близкий к лимиту ресурсов или формата, связанному с этой границей: бинарный файл конвертера отсутствует или proxy отклоняет большую загрузку. Убедитесь, что полученное сообщение ConvertX указывает на соответствующую границу, а не приводит к удалению данных или бесконечному перезапуску. Восстановите корректное состояние и убедитесь, что та же sample transaction завершается успешно. Включите эту короткую процедуру в release checklist.
Найдите все постоянные данные ConvertX
В набор данных для восстановления входят application data, accounts и все сохранённые conversion settings. Подключите /app/data до bootstrap, запишите безвредные sample data и замените container, чтобы доказать фактическую persistence этого path. Volume защищает данные от замены container, но не от потери host, случайного удаления или повреждения на уровне приложения.
Создавайте backups с учётом источника данных: при необходимости используйте logical dumps для работающих databases, а файлы копируйте только из согласованного состояния. Храните одну зашифрованную копию отдельно от host ConvertX. Критерий успешного восстановления должен быть конкретным — accounts и settings возвращаются, а фиксированная матрица форматов по-прежнему выполняется в заданных пределах. В руководстве по резервному копированию с проверкой восстановления объясняется, почему одного успешного завершения job недостаточно.
Сократите полномочия ConvertX
После первого входа проверьте, что могут делать anonymous visitor, обычный user и administrator. Ошибка в ConvertX, которой следует избегать, — использование example JWT secret или предоставление неограниченной public conversion. Предусмотренная политика — использовать настоящий JWT secret, требовать login и ограничивать uploads до приёма непроверенных файлов из интернета.
Сгенерируйте JWT_SECRET как длинное случайное значение; его ротация обычно делает sessions или tokens недействительными, поэтому заранее спланируйте влияние на пользователей и не называйте это encryption migration. Разделяйте dependency accounts и human accounts, по возможности запрещайте неиспользуемый egress и ограничивайте работу, зависящую от CPU, памяти, временного диска, размера файлов и бинарных файлов конвертеров, вызываемых для каждой пары форматов.
Разверните ConvertX в Dockup, не нарушая эти границы
Dockup устраняет ручную работу с reverse proxy и lifecycle вокруг ConvertX. При замене сервис получает стабильный HTTPS route к порту 3000, injected configuration и persistent storage. Подключённый customer server работает по той же модели, что и compute в Dockup.
После запуска выполните application contract: опубликуйте UI через HTTPS с явно заданными лимитами загрузки, подтвердите локальные требования — CPU, память и временный диск, соответствующие выбранным конвертерам, — и выполните эту проверку: загрузите несколько показательных форматов, конвертируйте каждый из них, скачайте результаты и сравните хеши или медиапараметры там, где результат должен быть детерминированным. Это сохраняет полезность one-click experience, не скрывая детали, от которых зависят возможность восстановления и безопасность ConvertX.
Часто задаваемые вопросы
Что требуется ConvertX для production deployment?
Направьте container ConvertX на порту 3000 через один HTTPS origin. Локальные требования к runtime — это CPU, память и временный диск, соответствующие выбранным конвертерам. Не объявляйте ConvertX готовым, пока не сможете загрузить несколько показательных форматов, конвертировать каждый из них, скачать результаты и сравнить хеши или медиапараметры там, где результат должен быть детерминированным.
Какие данные ConvertX нужно включить в backup?
Сохраняйте /app/data и включайте application data, accounts и все сохранённые conversion settings в один recovery manifest. Восстановление ConvertX можно считать успешным только тогда, когда accounts и settings возвращаются, а фиксированная матрица форматов по-прежнему выполняется в заданных пределах.
Требуется ли ConvertX HTTPS за reverse proxy?
Используйте HTTPS для public origin ConvertX, а порт 3000 оставляйте во внутреннем route. Корректно примените настройку ConvertX: опубликуйте UI через HTTPS с явно заданными лимитами загрузки. Для ConvertX HTTPS защищает credentials и пользовательский контент при передаче, а также обеспечивает согласованное поведение клиента, зависящее от origin.
Как тестировать обновление ConvertX?
Восстановите текущее состояние ConvertX в изолированном deployment, примените candidate version и повторите acceptance transaction. Уделите особое внимание тому, что releases image могут добавлять или удалять конвертеры, поэтому проверяйте точную матрицу форматов, от которой зависят пользователи. Не удаляйте предыдущий image ConvertX, пока не будут понятны границы миграции данных и rollback.
