Skip to content

About

Ванильный сервер или Valheim Plus от Grantapher, русская панель управления, лендинг для игроков и установщики мода. Docker Compose для Linux x86-64 и Docker Desktop в режиме Linux containers.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Hearth — Valheim с настройкой в браузере

Ванильный сервер или Valheim Plus от Grantapher, русская панель управления, лендинг для игроков и установщики мода. Docker Compose для Linux x86-64 и Docker Desktop в режиме Linux containers.

Первый запуск

В каталоге проекта выполните одну команду:

docker compose up -d --build

Откройте http://localhost:8080. Копировать шаблоны и заполнять файлы переменных не нужно. До завершения мастера игра не скачивается и не запускается.

Мастер проведёт по четырём шагам:

  1. Доступ: пароль администратора (16–256 символов), название сервера и отдельный пароль игры (5–128 символов).
  2. Мир: Valheim Plus или ванильный режим, имя сохранения, набор правил, автосохранение и показ в общем списке.
  3. Сайт: название, домен, описание мира, адрес подключения и ссылка сообщества. Сайт можно оставить локальным, а адрес для игроков и сообщество добавить позже.
  4. Запуск: расписание резервных копий и количество хранимых плановых копий. Нажмите «Создать сервер», затем войдите в панель своим паролем.

Настройки сохраняются в томе Docker и переживают перезапуск или пересоздание контейнера. Пароль администратора хранится как scrypt-хеш с индивидуальной солью. Повторно открыть первичную настройку после завершения нельзя. Если Steam или GitHub временно недоступны, завершать мастер снова не нужно: повторите установку во вкладке «Обновления».

Первичная загрузка занимает несколько минут. Практический стартовый запас: 4 CPU, 8 ГБ RAM и 30 ГБ SSD; большой мир, архивы и параллельный тестовый запуск требуют больше места и памяти. Онлайн и ход операций доступны в обзоре и журнале.

Если Docker работает на удалённом сервере

Откройте http://IP_СЕРВЕРА:8080 или домен, настроенный через reverse proxy. Мастер доступен сразу, SSH-туннель не требуется. Веб-порт 8080 опубликован на всех интерфейсах хоста; разрешите доступ к нему в firewall, если используете прямое подключение.

Игра использует UDP 2456–2457; их нужно открыть/пробросить на игровом хосте. Игроки подключаются к IP_СЕРВЕРА:2456.

После мастера лендинг доступен по /, панель — по /admin. Для публикации настройте свой HTTPS reverse proxy на 127.0.0.1:8080. Прокси должен передавать /api/ и /downloads/. В Настройки → Лендинг задайте внешний адрес сайта. В Настройки → Панель можно включить вход только по HTTPS, когда сертификат и прокси уже работают. DNS, сертификат, firewall и маршрутизация не создаются мастером.

Если нужен доступ только через прокси на том же хосте, можно изменить публикацию веб-порта в Compose на 127.0.0.1:8080:8080. Мастер также работает через прокси. Если порт 8080 занят, измените публикацию порта и используйте соответствующий адрес в браузере.

Обновление существующей установки

  1. Создайте и скачайте игровую резервную копию через старую панель.
  2. Обновите код в прежнем каталоге, сохраняя прежнее имя проекта Compose и том данных.
  3. Выполните docker compose up -d --build с теми же -p/-f, если использовали их ранее.
  4. Если появляется мастер, задайте пароль администратора и проверьте сохранённые параметры игры. При найденном релизе мастер создаст копию перед изменениями и запустит его, сохранив миры и файлы релизов.

Старый пароль панели, заданный только внешним окружением, не находился в игровом томе. Новый Compose его не читает: в мастере назначается новый пароль. Ранее сохранённые через панель игровые настройки подхватываются автоматически; пустой пароль игры оставляет сохранённый. Если параметры раньше существовали только во внешней конфигурации, проверьте имя мира (доступные сохранения видны в поле выбора), пароль, адреса и режим. Сами сохранения не удаляются.

Старые Compose-файлы, всё ещё передающие прежние переменные, поддерживают разовую миграцию пароля панели в защищённое хранилище. Новым установкам они не нужны. После появления panel.json сохранённые настройки панели имеют приоритет. Новый мастер не запускается при каждом обновлении.

Не используйте docker compose down -v для действующего мира: -v удаляет том с данными. Обычное обновление панели не обновляет игру автоматически.

Настройки после первого запуска

Вкладка Что настраивается
Сервер Название, пароль игры, режим следующей установки, видимость, ссылка сайта в имени, автосохранение и встроенные копии игры
Мир Имя сохранения, отдельные профили правил, сложность, ресурсы, рейды, порталы, дополнительные флаги
Valheim Plus Русские описания, типы и допустимые диапазоны параметров установленного CFG; поиск и сохранение комментариев
Лендинг Домен, название и описание мира, адрес подключения, ссылка Discord/Telegram/другого сообщества
Панель Интервал и количество плановых архивов, HTTPS-cookie, смена пароля администратора с проверкой текущего пароля

Серверные, мировые настройки и V+ сохраняются после мягкой остановки игры и резервной копии. Настройки лендинга и панели применяются без остановки. Вкладки сохраняются отдельно; устаревшая форма отвергается, чтобы не затереть чужие изменения. После смены пароля администратора сессии аннулируются — войдите заново.

Набор правил мира применяется только при включённом управлении правилами. Отключение переключателя не сбрасывает уже записанные в мире правила. Для сброса выберите «Обычный», уберите исключения/флаги и примените. Seed существующего мира, карта и прогресс боссов здесь не редактируются. Новое имя сохранения создаёт другой мир, а не переименовывает старый.

Диапазоны V+ берутся из метаданных CFG. Если автор не объявил диапазон, панель это указывает; технический предел поля не означает безопасный игровой диапазон. Для действия параметров V+ включите соответствующий раздел. Некоторые параметры относятся к клиенту и зависят от синхронизации мода. В ванильном режиме редактор V+ недоступен, но его файл сохраняется для возврата.

Домен, лендинг и поиск сервера

Адрес сайта используется в canonical, Open Graph, robots.txt, sitemap.xml, ссылках и инструкции установщиков. Он не берётся из заголовка Host. Разрешён HTTP(S)-домен или IPv4 с необязательным портом, без пути и параметров. Ссылку сообщества можно оставить пустой. Описание редактируется отдельно и не переписывается при смене режима.

Переключатель «Добавлять сайт к имени в списке» добавляет URL к публичному игровому имени при следующем запуске игры. URL длиннее 70 символов в имя не добавляется, чтобы сохранить ограничение длины имени. Публикация в Steam не гарантирует постоянное наличие в поиске: нужны открытые UDP-порты и доступность Steam. При отключённой публикации лендинг предлагает прямое подключение.

Лендинг показывает фактически установленный режим. Если выбран другой режим следующей установки, сайт пока продолжает давать инструкции текущего релиза. Ванильная страница скрывает установщики V+ и объясняет подключение обычным Steam-клиентом. Crossplay не включён.

Публичный /api/public содержит только название, описание, адреса, режим, признак публичного списка, версии, состояние процесса и свежий счётчик онлайна. Пароли, настройки доступа, имена игроков, журнал и копии доступны только после входа. Админ-панель и API имеют noindex. Для индексации внешнего домена отправьте /sitemap.xml через Google Search Console или Яндекс Вебмастер; позиции и сроки индексации определяют поисковики.

Вторая независимая копия

Готовый второй Compose-файл не требует файлов переменных:

docker compose -f compose.second.yaml -p valheim-second up -d --build

Откройте http://localhost:8081 и пройдите отдельный мастер. Там можно выбрать ванильный сервер. Вторая копия использует UDP 2466–2467, отдельное имя проекта и отдельный том game. На удалённом хосте откройте http://IP_СЕРВЕРА:8081 или домен второй копии через прокси.

Для управления второй копией повторяйте -f compose.second.yaml -p valheim-second. Имена проектов первой и второй копий не должны совпадать. Один том нельзя подключать к двум игровым процессам.

Веб-панель не имеет доступа к Docker socket и не может изменить уже опубликованные Docker-порты. Для третьей копии или нестандартной сети выберите ещё одну свободную пару UDP-портов и веб-порт в отдельном Compose-файле. Внутренний игровой порт и второй порт запросов должны соответствовать публикации; второй равен первому плюс один. Указанные в мастере адреса — адреса для игроков и сайта, а не управление сетью хоста.

Обновления и откат

  1. Нажмите «Установить последние версии». Номера вводить не нужно.
  2. В выбранном режиме скачивается последняя public-ветка Steam. В режиме V+ дополнительно определяется последний стабильный релиз Grantapher, проверяется SHA-256 официального UnixServer.zip и загружается BepInEx.
  3. Кандидат запускается на отдельном временном мире. Проверяются версия, готовность и ошибки загрузки. Для V+ также проверяются версия мода и BepInEx 5.
  4. Если отличается только версия игры, доступно разовое одобрение конкретной пары и хеша архива на 30 минут. После одобрения файлы скачиваются и проверяются повторно. Неверную контрольную сумму или ошибки запуска одобрение не обходит.
  5. Рабочая игра мягко останавливается; сохраняются мир и настройки; переключается релиз. Панель ждёт готовности основного мира до 180 секунд и ещё 5 секунд наблюдает запуск.
  6. При неудаче панель пытается вернуть прежний релиз, мир и конфигурацию. Незавершённая проверка при перезапуске контейнера также вызывает откат. Первой установке откатываться некуда — неудачный процесс останавливается.

Смена plus/vanilla в настройках сама по себе не заменяет установленный релиз: примените её через обновление. Старые релизы без поля режима считаются V+. После отката возвращается режим предыдущего релиза; выбранный режим следующей установки может отличаться.

Готовность процесса не гарантирует работу всех игровых механик и подключение клиента. Поздние проблемы требуют ручного отката. Одобрение пары не означает официальную поддержку автором мода.

Копии и статистика

Плановые копии по умолчанию проверяются каждые 6 часов и хранятся в количестве 12. Оба значения изменяются в панели. Нулевой интервал отключает расписание. Копия ждёт пустого сервера; при неизвестном онлайне откладывается. Ручная копия отключит игроков, мягко сохранит мир и затем запустит игру, если она работала.

При остановке используется SIGINT и ожидание до 120 секунд. Зависший рабочий процесс принудительно не убивается и согласованная копия не имитируется. Если остановка/восстановление не удались, панель показывает ошибку. Перед восстановлением текущий мир сохраняется отдельно. Ручные копии и копии перед обновлением/настройкой/восстановлением автоматически не удаляются.

Игровой архив содержит saves/, config/ и manifest.json, в том числе пароль игры. Пароль и настройки администратора (panel.json) в игровые архивы не входят и при откате мира не меняются. Для аварии всего хоста отдельно сохраняйте весь том на другом устройстве. Том Docker не заменяет внешнюю резервную копию.

Онлайн берётся из A2S. При отсутствии свежего ответа показывается неизвестное значение, а не ноль игроков. Входы считаются по имени персонажа из лога; это не SteamID. Время — приблизительная оценка по видимым A2S-именам. Дни мира, карта, убийства, навыки и боссы не извлекаются.

Клиентские установщики V+

Windows 10/11 x64: скачайте Loki-Mod-Installer.exe, введите HTTPS-адрес сайта сервера, проверьте версии и выберите найденную Steam-папку игры. EXE самодостаточный, но пока без подписи издателя.

Linux x86_64 / Steam Proton: нужен Python 3.9+. В Steam включите Proton для Valheim и дождитесь загрузки Windows-версии игры, затем закройте игру:

bash Loki-Mod-Installer-Linux.sh --server https://your-server.example

Запускайте от своего пользователя, без sudo. Поддерживаются обычный Steam и Steam Flatpak. В параметрах запуска игры добавьте:

WINEDLLOVERRIDES="winhttp=n,b" %command%

Существующие параметры сохраните; %command% должен остаться один раз. Если WINEDLLOVERRIDES уже есть, добавьте winhttp=n,b через ;. Установщик не переписывает настройки Steam. Отмена последней установки: bash Loki-Mod-Installer-Linux.sh --restore. Если восстановление удалило BepInEx, уберите добавленный winhttp из параметров запуска.

Оба установщика получают фактическую версию с выбранного /api/public, скачивают официальный WindowsClient.zip, проверяют SHA-256 и пути архива, сохраняют заменяемые файлы. HTTPS обязателен, порт 443; серверный API не перенаправляется на другой домен. Недоступный API, ванильный режим или смена версий во время загрузки отменяют установку; fallback на latest не выполняется. Игру обновляет Steam.

Разработчикам

Игровые данные находятся в /data: releases/, saves/, config/, backups/, logs/, state.json, panel.sqlite и panel.json. Панель и игра работают от UID 10001 без root, privileged и Docker socket. Запись настроек атомарная; операции сериализованы. Доступ защищён паролем, HttpOnly/SameSite-cookie, CSRF и ограничением попыток входа.

python -m unittest discover -s tests -q
node --check app/static/app.js
node --check app/static/settings.js
node --check app/static/setup.js
node --check app/static/landing.js
node tests/test_i18n.cjs

Сборка Windows-установщика: installer/build.ps1. Сборка Linux-установщика: python installer-linux/build.py. Установщики поставляются в app/downloads/ вместе с SHA-256. Версия установленного игрового сервера и версия самой панели — разные понятия.

Перенос мира между серверами

В разделе Мир и копии → Перенести мир нажмите «Подготовить экспорт мира». Панель мягко остановит игру, упакует папку выбранного мира целиком (новый формат .db2, .fwl2, .chunks, .ok, .chunk) или старую пару .db/.fwl и правила мира, затем вернёт прежнее состояние запуска. У мира с V+ в ZIP обязательно попадёт серверный конфиг мода с комментариями. Экспорт не включает пароли панели/игры, лендинг, журнал игроков, исполняемые файлы игры и мода. Конфиг мода переносится целиком: перед передачей проверьте его пользовательские значения.

На принимающем сервере установите тот же режим и те же версии Valheim/V+, затем выберите архив и нажмите «Загрузить и проверить». До подтверждения мир и запущенная игра не меняются. Панель покажет имя и версии из архива. Проверка действует один час и повторяется при импорте. После перезапуска панели загрузите архив заново.

«Импортировать проверенный мир» останавливает игру и создаёт полную копию pre-import. Папка выбранного мира заменяется целиком, без смешивания старых и новых чанков. При старом формате заменяется пара .db/.fwl. Остатки другого формата с тем же именем удаляются после резервного копирования. Также заменяются профиль правил и, для V+, конфиг мода. Другие миры, пароль игры, домен, режим установки и доступ администратора остаются на принимающем сервере. Импортированный мир становится выбранным, но не запускается автоматически: проверьте настройки и нажмите «Запустить». Конфиг V+ общий для всех миров сервера; клиентам по-прежнему нужен соответствующий мод. При необходимости восстановите копию pre-import через обычное восстановление.

Перенос принимает только экспорт Hearth версии 1 (старая пара файлов) и версии 2 (папка мира): ZIP до 1 ГиБ, распакованные файлы до 2 ГиБ, CFG до 2 МиБ, до 10 000 файлов в папке мира. Архив версии 2 требует обновлённую панель на принимающем сервере. Состав файлов и SHA-256 проверяются; пути, ссылки, дубликаты и лишние файлы отвергаются. Контрольные суммы обнаруживают повреждение, но не подтверждают автора архива — импортируйте миры из доверенного источника. Формат игровых файлов полностью проверит сама игра при запуске. Старые .tar.gz резервные копии и произвольные ZIP сюда не подходят.

При загрузке через nginx добавьте в блок сайта client_max_body_size 1g; и proxy_read_timeout 300s;. На проверку распаковки нужен запас до 3 ГиБ, отдельно — место для полной резервной копии перед импортом. Экспорты хранятся в /data/exports и не удаляются автоматически; незавершённые загрузки — в /data/incoming. Архивы скачиваются только после входа администратора.

Язык интерфейса

Переключатель RU / EN есть на лендинге, странице входа, в панели и мастере первого запуска. Перевод применяется сразу, без перезагрузки и без сброса введённых значений, выбранного файла или открытого диалога. Язык хранится в браузере и общий для страниц одного адреса; открытые вкладки синхронизируются. При первом посещении выбирается русский для русскоязычного браузера, иначе английский. Если хранилище браузера недоступно, переключение работает до закрытия страницы.

Название сервера, имена миров и игроков, адреса, команды, значения CFG и исходная консоль не переводятся. В английском редакторе V+ используются английские подписи и исходные пояснения автора мода, а ограничения значений переведены. В Настройки → Лендинг доступны отдельные описания мира на русском и английском. Если английское описание пусто, сайт показывает русское; чужой пользовательский текст автоматически не переводится. Даты в панели следуют выбранному языку. Язык установщиков мода этим переключателем не меняется.

Версия панели и обслуживание

В разделе Обновления → Версия панели показана версия этой сборки. Кнопка проверки обращается к стабильному релизу GitHub (не чаще раза в минуту) и показывает ссылку на описание. Панель предлагает команду для основной или второй копии из инструкции. Сначала скачайте релиз и замените файлы в прежнем каталоге, затем выполните команду с прежними параметрами -p / -f и томом данных. Автоматического доступа к Docker и самостоятельной пересборки нет. Версия разработки отмечена суффиксом -dev; при выпуске релиза обновляйте app/PANEL_VERSION.

В разделе Обслуживание можно запланировать одну операцию: перезапуск, остановку, резервную копию или обновление игры/мода. Выберите время (до 30 дней вперёд, часовой пояс браузера) и при необходимости ожидание пустого сервера. Ожидание требует свежего A2S-ответа и минуты без игроков. Неизвестный онлайн не считается нулевым. Для остановленного сервера ожидание игроков не требуется. Перед операцией онлайн проверяется повторно, при обновлении — также после загрузки и проверки кандидата. Возвращение игроков или ошибка A2S на этой последней проверке отменяют операцию без остановки работающей игры. Это проверка состояния, а не запрет новых подключений.

Ожидающую задачу можно отменить. Она сохраняется при перезапуске панели. Уже начатая и прерванная перезапуском задача автоматически не повторяется: проверьте журнал и назначьте новую. Задача выполняется с актуальными на момент запуска настройками. Одобрение несовпадающих версий V+ по расписанию не выполняется: при необходимости используйте обычное обновление с подтверждением. На лендинге отображается запланированное или текущее обслуживание. Сообщения внутри игры не отправляются.

В Обслуживание → Повторяющееся обслуживание можно создать до 20 ежедневных или еженедельных расписаний. Выберите действие, местное время, часовой пояс IANA (например, Asia/Krasnoyarsk) и дни недели. Расписание можно изменить, приостановить, возобновить или удалить. Таблица показывает ближайшие запуски на семь дней в часовом поясе каждого расписания; история хранит последние 50 результатов.

Повторяющиеся задачи всегда ждут свежего A2S-ответа и минуты без игроков. Окно ожидания — 2–1440 минут от назначенного времени, включая ожидание свободной очереди и проверку кандидата обновления. Если окно истекло до начала изменения сервера, запуск пропускается без принудительного отключения игроков; следующий остаётся в расписании. Несколько задач выполняются последовательно. Пропущенные при выключенной панели запуски не наверстываются, прерванная операция не запускается повторно. При переходе на летнее время несуществующее местное время пропускается, повторяющееся время выполняется один раз. Автоматическое одобрение совместимости V+ не предусмотрено.

Резервные копии из повторяющегося расписания учитываются в существующем лимите Настройки → Панель → Количество плановых копий. Старый интервал копирования продолжает работать независимо: отключите его, если всё копирование перенесено в новое расписание. Ручные и предшествующие обновлению архивы остаются отдельными.

Уведомления Discord

В разделе Обслуживание → Уведомления Discord вставьте webhook обычного текстового канала Discord и выберите события: доступность сервера, обновления/откат, резервные копии, обслуживание, ошибки операций или модерация. Пустое поле оставляет прежний адрес, отдельный переключатель удаляет его. После сохранения можно отправить проверочное сообщение. Первый сигнал о доступности отправляется после ответа A2S; он не гарантирует подключение игрового клиента.

Адрес webhook не возвращается в API и хранится в /data/operations.json с задачами обслуживания, отдельно от игровых архивов. Он не переносится вместе с миром. Уведомления содержат название сервера и краткое сообщение без паролей, заметок модераторов и текста игровых ошибок. При включённой модерации отправляются SteamID, причина бана и срок, а также снятие и истечение бана; псевдонимы из карточек не отправляются. Массовые упоминания отключены. Сообщения отправляются в фоновой очереди до 20 элементов; одинаковые события подавляются на минуту. При сетевой ошибке, ограничении Discord или отказе webhook панель показывает ошибку доставки, но не прерывает игровую операцию. Повторная отправка и сохранение очереди между перезапусками пока не реализованы. Удаление webhook отключает новые уведомления; уже отправляемое сообщение может успеть доставиться.

Управление игроками по SteamID

В разделе Игроки → Управление по SteamID можно забанить аккаунт, снять бан, выдать или снять права администратора игры и запросить отключение. Введите SteamID64 (17 цифр) либо Steam_<SteamID64>. Имя персонажа не используется для управления доступом: одинаковые имена в статистике не позволяют надёжно определить аккаунт.

Панель изменяет native-файлы saves/adminlist.txt и saves/bannedlist.txt, которые Valheim перечитывает без перезапуска. Формат идентификаторов описан в официальной инструкции сервера. Старые записи с числовым SteamID64 также распознаются. Чужие записи, комментарии и permittedlist.txt сохраняются. Бан и игровые права можно настроить для отсутствующего игрока. Эти права не открывают доступ к веб-панели; после изменения админки игроку нужно переподключиться.

Отключение работает в ванильном режиме и с V+ через временный бан на 30 секунд. Игра применяет списки периодически: обычно это занимает до примерно 15 секунд; отключение соединения может занять ещё секунду. После истечения срока панель снимает временную запись на очередной проверке, а игра затем перечитывает список, поэтому возможность повторного входа возвращается с задержкой. При остановленной игре кнопка отключения недоступна. Ответ API подтверждает изменение списка, а не фактическое отключение конкретного клиента.

Постоянно забаненный SteamID не получает временный бан и не будет автоматически разблокирован. Чтобы сделать временную блокировку постоянной, примените действие Заблокировать к тому же ID с пустым сроком. Временный срок хранится в служебном //-комментарии внутри native-списка; он переживает перезапуск панели и перестановку комментариев игрой. При остановке/запуске сервера и перед полной резервной копией очищаются временные записи для отключения игрока. Действующие баны на определённый срок сохраняются вместе с игровым списком; истёкшие снимаются до запуска восстановленного сервера. Очистка продолжает работать во время загрузки обновления. Если запись не удаётся сохранить, ошибка видна в панели/журнале; повторите действие после исправления прав или свободного места.

Для бана доступны причина (до 300 символов) и срок от одной минуты до 365 дней, указанный в часах; пустой срок означает постоянный бан. Бан на срок не заменяет уже существующий постоянный: сначала явно снимите его. Панель удаляет свою временную запись на ближайшей проверке после окончания срока, затем игру может потребоваться подождать до перечитывания списка. Если другой администратор добавил отдельную постоянную запись, она сохраняется. Срок бана относится к времени сервера, поэтому проверьте часы хоста.

В Карточках игроков по SteamID можно вручную назначить псевдоним (до 80 символов) и заметку (до 2000). Они не изменяют имя персонажа и не связывают автоматически имена из логов со SteamID. Пустые псевдоним и заметка удаляют карточку. До 200 карточек, причины действующих банов и последние 200 действий модерации хранятся в /data/moderation.json, отдельно от игровых архивов и экспорта мира. Сроки действующих банов находятся в игровом списке, а причины и заметки между серверами автоматически не переносятся.

Списки SteamID и действия доступны только после входа в панель и не публикуются на лендинге. Изменения записываются в журнал. Новые элементы управления поддерживают RU / EN.

Здоровье сервера

Раздел Здоровье сервера отдельно показывает запущенный игровой процесс и наличие свежего A2S-ответа за последние 30 секунд. Ответ A2S подтверждает доступность запроса статистики, а подключение реального клиента нужно проверять отдельно. При запуске панель даёт миру время загрузиться, затем отсутствие ответа показывает как проблему с понятными рекомендациями и ссылкой на журнал.

Показатели измеряются примерно раз в десять секунд: CPU игрового процесса (100% — одно ядро, возможны значения выше 100%), его память в RAM, память контейнера и заданный лимит Docker, свободное и полное место на файловой системе данных. Это показатели контейнера и процесса, не всей удалённой машины; недоступное измерение не подменяется нулём. Для Linux используются /proc и cgroup v1/v2. При менее 1 ГиБ или 5% свободного диска и использовании не менее 90% лимита памяти показываются рекомендации.

Время сохранения берётся из файлов выбранного мира: поддерживаются старая пара .db/.fwl и новый каталог чанков; чужие миры и автоматические копии игры не учитываются. Это время изменения файлов, без анализа целостности и игрового прогресса. Последняя успешная резервная копия определяется по завершённой операции панели и наличию её окончательного архива; временные и сторонние файлы не учитываются. Сам TAR здесь полностью не проверяется. Диагностика доступна только после входа.

About

Ванильный сервер или Valheim Plus от Grantapher, русская панель управления, лендинг для игроков и установщики мода. Docker Compose для Linux x86-64 и Docker Desktop в режиме Linux containers.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Contributors

Languages