Нативный Rust-сервер OpenMines и legacy-клиент.
Короткое описание проекта и запуск.
- Установить Rust (1.88+) и Git.
- Скопировать шаблон конфигурации:
cp config.example.json config.json- Отредактировать
config.jsonпод локальные порты/логи/сеть. - Состояние сервера (SQLite и файлы мира
.mapb) по умолчанию пишется в каталогdata/относительно текущей рабочей директории (data_dirв конфиге). При первом запуске после обновления файлы из старой раскладки (лежали в корне рядом сconfig.json) переносятся вdata/автоматически. Переопределение: переменная окруженияM3R_DATA_DIR.
cargo build --release
cargo run --releaseПо умолчанию сервер слушает 0.0.0.0:8090.
Дополнительные опции:
cargo run --release -- --regen
# или
cargo run --release -- --regen-world
M3R_REGEN_WORLD=1 cargo run --releasedocker build -t openmines-server -f ops/Dockerfile .
docker run --rm -p 8090:8090 -v openmines_state:/data openmines-serverВ образе нужны config.json, cells.json и buildings.json; при первом запуске они копируются в том /data. База (openmines.db) и слои мира лежат в /data/data/ (подкаталог по умолчанию data_dir). Старые файлы в корне /data при старте переносятся в /data/data/; при необходимости mines3.db* переименовывается в openmines.db*.
Обычный деплой (синхронизация, затем на VPS docker run+cargo build — обход нестабильного runc при BuildKit в слое rust:* на Virtuozzo — и сборка образа по ops/Dockerfile.vps):
./scripts/deploy-vps.shПолная переустановка: сначала остановка compose-стека на хосте vps, затем тот же деплой.
- Без потери данных в томе (БД и мир в Docker volume сохраняются):
./scripts/full-reinstall-vps.sh- С полным сбросом данных (удаляется именованный том из compose, см.
ops/docker-compose.vps.yml; это необратимо):
./scripts/full-reinstall-vps.sh --wipe-dataПеременные окружения те же, что у деплоя: REMOTE_HOST, REMOTE_DIR (по умолчанию /home/admin/openmines-deploy), COMPOSE_FILE, SERVICE.
Локально «с нуля» (без VPS): остановить сервер и удалить каталог состояния, например rm -rf data/ в корне репозитория (или свой data_dir / M3R_DATA_DIR).
Если после up Docker ругается на iptables / Memory allocation на хосте — это сбой сетевого стека/фаервола на VPS, не репозиторий; перезагрузка хоста или чистка правил iptables/перезапуск Docker обычно помогает.