Управление модами на выделенном сервере Factorio без графической оболочки (headless Linux) часто вызывает сложности у администраторов. Ручное скачивание десятков zip-архивов через домашний браузер с последующей передачей по SFTP отнимает много времени, приводит к ошибкам версий и ломает зависимости между модификациями.
Официальный портал модов Wube предоставляет публичный REST API, позволяющий автоматизировать поиск, проверку совместимости и загрузку модификаций прямо из командной строки Linux с помощью curl и jq. В этом руководстве подробно рассмотрена работа с API портала модов, авторизация через сервисный токен и формирование файла mod-list.json.
Получение сервисного токена в player-data.json#
Для скачивания файлов модификаций с официального сервера Wube требуется аутентификация. Загружать файлы анонимно нельзя.
Используйте сервисный токен вашей учётной записи Factorio. Если игра запускалась на сервере или локальном ПК, токен уже сохранён в файле player-data.json:
cat /opt/factorio/player-data.json | grep -E "(service-username|service-token)"
Либо задайте переменные окружения для скриптов автоматизации:
FACTORIO_USER="your_username"
FACTORIO_TOKEN="your_token_from_player_data"
Запрос метаданных мода через Mod Portal API#
Перед загрузкой архива необходимо получить актуальный список релизов, совместимых с вашей версией сервера (например, Factorio 2.0 или 1.1), и имена зависимых модов.
Выполните публичный GET-запрос к API портала (на примере популярного мода Flib):
curl -s "https://mods.factorio.com/api/mods/flib" | jq '.releases[-1] | {version, factorio_version, file_name, download_url, sha1}'
Команда выведет JSON с информацией о последнем стабильном релизе: имя файла архива, поддерживаемую версию базовой игры, контрольную сумму sha1 и относительный путь для скачивания (download_url).
Скачивание архива мода через curl#
Используя полученный URL релиза и учётные данные, скачайте zip-архив напрямую в директорию mods:
MOD_URL="/api/downloads/data/flib_0.15.0.zip"
OUTPUT_FILE="/opt/factorio/mods/flib_0.15.0.zip"
curl -L -f -o "$OUTPUT_FILE" \
"https://mods.factorio.com${MOD_URL}?username=${FACTORIO_USER}&token=${FACTORIO_TOKEN}"
Обязательно сверьте контрольную сумму скачанного файла перед запуском:
sha1sum "$OUTPUT_FILE"
Параметр curl -L критически важен, так как портал модов выполняет 302-редирект на CDN-хранилище файлов.
Управление активными модами в mod-list.json#
Сервер Factorio определяет, какие именно модификации из папки mods должны загружаться в игровой мир, на основании файла конфигурации mod-list.json.
Создайте или обновите список активных модов с помощью утилиты jq:
cat << 'EOF' | sudo tee /opt/factorio/mods/mod-list.json
{
"mods": [
{
"name": "base",
"enabled": true
},
{
"name": "flib",
"enabled": true
}
]
}
EOF
Проверьте корректность синтаксиса JSON:
jq . /opt/factorio/mods/mod-list.json > /dev/null && echo "mod-list.json is valid"
Запустите тестовую проверку сервера Factorio без запуска бесконечной игры:
/opt/factorio/bin/x64/factorio --check-config
Если утилита завершилась без ошибок и вывела Configuration check successful, все зависимости модов разрешены, а сервер готов к запуску многопользовательской сессии.
Для сборки крупных сборок из 50+ модов (Space Age, Krastorio, SE) и автоматического обновления аддонов без ручной возни с токенами администраторы используют панель управления серверами, где управление библиотекой модов Factorio интегрировано в единый веб-интерфейс.




