diff --git a/.agents/skills/minecraft-server-setup/SKILL.md b/.agents/skills/minecraft-server-setup/SKILL.md new file mode 100644 index 0000000..f8d5fb5 --- /dev/null +++ b/.agents/skills/minecraft-server-setup/SKILL.md @@ -0,0 +1,20 @@ +--- +name: minecraft-server-setup +description: Set up and verify this repository's Minecraft Docker deployment, or diagnose its startup prerequisites. Use for fresh server startup; route existing worlds to the migration guide. +--- + +# Minecraft server setup + +Read the root README for commands and distribution choices. Use the repository's `scripts/minecraft` entrypoint from its absolute path; it resolves paths independently of the current directory. + +Check for `.state/settings.json`, legacy deployment paths, or existing world data first. Existing deployments need [the migration guide](../../../docs/migration.md) and a backup/restore rehearsal. Preserve their data and credentials. + +Python 3.11+, Docker Engine 28+, Compose plugin v2 or v5, sufficient memory and disk, and Docker access must already exist. Inspect prerequisites; report the missing prerequisite if unavailable. Host package installation, firewall/DNS changes, and unrelated Docker resources are outside this setup skill. + +Obtain explicit EULA acceptance from the user's request before passing `--accept-eula`. Acceptance for an isolated validation run applies only to its disposable test servers. An absent response is not consent. [START.md](../../../START.md) supplies a reusable request with explicit acceptance. + +For fresh setup, choose the user's distribution and topology, then run `setup --accept-eula --start` with their options. Default stable Paper differs from the latest Minecraft release; current Vanilla is an explicit distribution choice. Velocity requires Paper and modern forwarding. Select optional profiles only when wanted. Reuse identical setup options on repeat runs; investigate conflicting options rather than deleting `.state/`. + +Completion requires `doctor`, healthy `status`, an actual `scripts/status` protocol response at the selected gameplay address, and working `command list`. If scheduled backups were requested, inspect backup logs for a completed snapshot and the next interval. Use the backup/restore procedure in [operations.md](../../../docs/operations.md) when the user requests recovery verification. Keep generated secrets out of transcripts and source control. + +Report the exact software/image identities, address, service health, selected profiles, persistent data and credential paths, and any failed check. A Compose configuration or a running process alone is not completion. For template development, `scripts/validate fullDocker` implements the isolated runtime contract and exports reviewable evidence; it never validates a user's arbitrary plugins. diff --git a/.github/backup.gif b/.github/backup.gif deleted file mode 100644 index 104d35e..0000000 Binary files a/.github/backup.gif and /dev/null differ diff --git a/.github/console.gif b/.github/console.gif deleted file mode 100644 index 99da3a0..0000000 Binary files a/.github/console.gif and /dev/null differ diff --git a/.github/init.gif b/.github/init.gif deleted file mode 100644 index 7263052..0000000 Binary files a/.github/init.gif and /dev/null differ diff --git a/.github/remote_debug_1.png b/.github/remote_debug_1.png deleted file mode 100644 index 2d7db9b..0000000 Binary files a/.github/remote_debug_1.png and /dev/null differ diff --git a/.github/remote_debug_2.png b/.github/remote_debug_2.png deleted file mode 100644 index a7b66b5..0000000 Binary files a/.github/remote_debug_2.png and /dev/null differ diff --git a/.github/remote_debug_3.png b/.github/remote_debug_3.png deleted file mode 100644 index c23bb7e..0000000 Binary files a/.github/remote_debug_3.png and /dev/null differ diff --git a/.github/remote_debug_run_1.png b/.github/remote_debug_run_1.png deleted file mode 100644 index 7a365f7..0000000 Binary files a/.github/remote_debug_run_1.png and /dev/null differ diff --git a/.github/remote_debug_run_2.png b/.github/remote_debug_run_2.png deleted file mode 100644 index 08b28c5..0000000 Binary files a/.github/remote_debug_run_2.png and /dev/null differ diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml new file mode 100644 index 0000000..a4254b3 --- /dev/null +++ b/.github/workflows/validate.yml @@ -0,0 +1,36 @@ +name: Validate template +on: + push: + pull_request: + workflow_dispatch: + inputs: + full_runtime: + description: Run disposable Docker servers, backups and restore + type: boolean + default: false +permissions: + contents: read +jobs: + local: + runs-on: ubuntu-24.04 + timeout-minutes: 5 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + - run: ./scripts/validate local + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a + if: always() + with: + name: local-validation + path: validation-output/ + runtime: + if: github.event_name == 'pull_request' || (github.event_name == 'workflow_dispatch' && inputs.full_runtime) + runs-on: ubuntu-24.04 + timeout-minutes: 45 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + - run: ./scripts/validate fullDocker + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a + if: always() + with: + name: runtime-validation + path: validation-output/ diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml new file mode 100644 index 0000000..ee9411a --- /dev/null +++ b/.github/workflows/versions.yml @@ -0,0 +1,21 @@ +name: Verify pinned versions +on: + workflow_dispatch: + schedule: + - cron: '19 8 * * 1' + pull_request: + paths: [versions.env, scripts/check-versions] +permissions: + contents: read +jobs: + verify: + runs-on: ubuntu-24.04 + timeout-minutes: 5 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + - run: mkdir -p validation-output && ./scripts/check-versions > validation-output/version-check.json + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a + if: always() + with: + name: version-verification + path: validation-output/ diff --git a/.gitignore b/.gitignore index 4b03655..251d1f8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,25 @@ +.state/ +data/ +backups/ +restore*/ +validation-output/ +__pycache__/ +*.pyc *.jar -*.json -eula.txt -*.log - -downloads/files/ +.env +*.secrets.env +configs/server/ +plugins/server/ +plugins/proxy/ +web/ +node_modules/ +servers/ +worlds/ database/ rcon/ -worlds/ backup/ -servers/ -schematics/ minimal/ -web/ -secrets.env -*.secrets.env -.env ports.env +secrets.env +schematics/ +downloads/files/ diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..c67d1ef --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,6 @@ +# Agent instructions + +For server setup or startup, read `.agents/skills/minecraft-server-setup/SKILL.md`. +For existing 1.17 deployments, read `docs/migration.md` before touching data. +Use Python/Bash and Docker Compose. Keep code simple and free of inline comments. +Run `scripts/validate local` for CLI/config changes; run isolated `fullDocker` for runtime or version changes. diff --git a/Dockerfile.backup b/Dockerfile.backup new file mode 100644 index 0000000..e2eae69 --- /dev/null +++ b/Dockerfile.backup @@ -0,0 +1,7 @@ +ARG BACKUP_IMAGE +FROM ${BACKUP_IMAGE} +RUN script=/opt/backup-loop.sh; \ + expected=' retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on'; \ + test "$(grep -Fxc "$expected" "$script")" -eq 2 && \ + awk 'previous == " log INFO \"waiting for rcon readiness...\"" { if ($0 != " retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on") exit 1; sub(/save-on$/, "list"); changed++ } { print; previous=$0 } END { if (changed != 1) exit 1 }' "$script" > /tmp/backup-loop.patched && \ + mv /tmp/backup-loop.patched "$script" && chmod +x "$script" diff --git a/Dockerfile.backup.dockerignore b/Dockerfile.backup.dockerignore new file mode 100644 index 0000000..7559d73 --- /dev/null +++ b/Dockerfile.backup.dockerignore @@ -0,0 +1,3 @@ +** +!Dockerfile.backup +!Dockerfile.backup.dockerignore diff --git a/README.md b/README.md index c861f1f..94760b0 100644 --- a/README.md +++ b/README.md @@ -1,265 +1,69 @@ -# Minecraft Server Template +# Minecraft server template -[![Spiget Downloads](https://img.shields.io/spiget/downloads/88587)](https://www.spigotmc.org/resources/88587/) -[![Spiget Rating](https://img.shields.io/spiget/rating/88587)](https://www.spigotmc.org/resources/88587/) -[![Discord Shield](https://discordapp.com/api/guilds/905798902874267690/widget.png?style=shield)](https://discord.gg/HSU8FtgjVD) +Run a reproducible Java Edition server with Docker Compose. The default is stable Paper 26.2 build 129 on Java 25. Minecraft's current release, 26.3, is available as standalone Vanilla. Exact image digests and software versions live in [versions.env](versions.env). -Use this repository to quickstart your own Minecraft server network using docker and git managed configs. +## Start a server -![init](.github/init.gif) +You need Python 3.11+, Docker Engine 28+, the `docker compose` plugin v2 or v5, and at least 4 GiB available memory. Linux amd64 and arm64 images are pinned. Setup uses your host UID and GID for Minecraft and backups; use an ordinary user with Docker access. The optional database and web images use their publisher's initialization defaults. -* [Features](#features) -* [Prerequisites](#prerequisites) -* [Getting started](#getting-started) -* [Console & CMD](#console--cmd) -* [Server](#server) - * [Directory layout](#directory-layout) - * [Updating plugin configs](#updating-plugin-configs) - * [Installing/Updating plugins](#installingupdating-plugins) - * [Adding more servers](#adding-more-servers) -* [Database](#database) -* [Dynmap](#dynmap) -* [Player Analytics](#player-analytics) -* [Backup](#backup) -* [Web Traefik](#web-traefik) -* [Developer Setup](#developer-setup) - * [Logs and Reboot](#logs-and-reboot) - * [phpMyAdmin](#phpmyadmin) - * [OP Rights](#op-rights) - * [Copying plugins](#copying-plugins) - * [Debugging](#debugging) -* [FAQ](#faq) - * [View the 'live' server log](#view-the-live-server-log) +Read the [Minecraft EULA](https://aka.ms/MinecraftEULA). The flag below records your explicit acceptance. -## Features - -* Full minecraft network setup using latest [paper-spigot](https://papermc.io/) and [waterfall](https://github.com/PaperMC/Waterfall) builds. - *Using other distrubutions, like forge, sponge or veolicty is completly up to you. Just edit the `globals.env`* -* Up and running standalone [dynmap](https://www.spigotmc.org/resources/dynmap.274/) configuration with custom subdomain. -* Ready to use [Player Analytics (Plan)](https://www.spigotmc.org/resources/plan-player-analytics.32536/) integration with custom subdomain. -* Usage of the [official minecraft docker](https://github.com/itzg/docker-minecraft-server) images from itzg with all config options. -* Integrated [MariaDB](https://hub.docker.com/_/mariadb) database with not exposed public port for enhanced security. -* [phpMyAdmin](https://hub.docker.com/r/phpmyadmin/phpmyadmin/) for accessing the database. -* [RCON Web Interface](https://hub.docker.com/r/itzg/rcon) for easy console access on the go. -* Full git workflow for managing configurations. Easy rollbacks and change tracking of all configurations. -* Replacement of sensentive config information when the server starts. See [itzg/minecraft-server](https://github.com/itzg/docker-minecraft-server#replacing-variables-inside-configs) for details. -* Integrated [backup container](https://hub.docker.com/repository/docker/silthus/mc-restic-compose-backup) for local, remote or cloud backups running every three hours by default. -* Minecraft world integrity is ensured when backing up by turning auto-save off before and on again after backup. -* Adding more servers to the network is as easy as copying some files. -* Integrated webserver on custom subdomain to host downloads, e.g. images, plugins. -* All webservers and external domains are HTTPS enforced and secured with a letsencrypt certificate. -* Development server to create a minimal clone of the production server. - -## Prerequisites - -Make sure that the following packages are installed and working on your system: - -* The latest version of [docker](https://docs.docker.com/engine/install/ubuntu/) -* The latest version of [docker-compose](https://docs.docker.com/compose/install/) -* *(Optional)*: **unzip** to download and unzip the initial plugins - -## Getting started - -1. Use this [repository as a template](https://github.com/Silthus/minecraft-server-template/generate) to create your own and then clone it: - `git clone https://github.com/Silthus/minecraft-server-template.git` -2. Execute the `init.sh` script: - *The script asks you a couple of questions initializing your minecraft network.* - *It will also generate a couple of `*.secrets.env` files that **must never be commited!*** -3. Start the network with `./dc.sh up -d`. - -## Console & CMD - -The console is accessible over a RCON webinterface or the `console.sh` script. - -`main` is the name of the server the console should attach to. - -```bash -./console.sh main -``` - -Additionally there is the option to directly execute commands without mounting the console using the `cmd.sh` script. - -```bash -./cmd.sh main op Silthus +```sh +git clone https://github.com/sVoxelDev/minecraft-server-template.git +cd minecraft-server-template +./scripts/minecraft setup --accept-eula --start ``` -![console](.github/console.gif) - -## Server - -The server can be started `./dc.sh up -d` and stopped with `./dc.sh down`. -To restart the server container use `./dc.sh restart main`. Where `main` is again the name of the server container. - -> At the start of the server all contents of `plugins/` are copied into the servers data directory and overwrite any config there. -> Everything from `configs/` will be copied into the root data directory of the server. +Setup generates random protected secrets, creates local data directories, validates Docker and Compose, starts the selected services, and waits up to ten minutes for healthy services and working RCON. Connect at your host's TCP port 25565. The gameplay port binds publicly; host firewall configuration stays your responsibility. Use `--bind 127.0.0.1` for local development. -All live data, worlds, flatfiles, plugins and so on live under the `servers/` directory. There you can also find the `latest.log` of the server. +Choose options at first setup: -```bash -less +F servers/main/logs/latest.log +```sh +./scripts/minecraft setup --accept-eula --distribution vanilla --bind 127.0.0.1 --start +./scripts/minecraft setup --accept-eula --network --profile backup --start +./scripts/minecraft setup --accept-eula --profile database --profile web --start ``` -Exit the log file with `CTRL+C Q`. See `man less` for more details. -As an alternative you can also attach to one or multiple of the docker containers. +Run each example in its own checkout. Vanilla does not support Paper plugins or Velocity modern forwarding. `--network` selects a Paper backend plus online authenticated Velocity and publishes only Velocity. Optional profiles are `backup`, `database`, and `web`; repeat `--profile` to combine them. Setup with identical options is idempotent. Different options fail rather than silently reconfigure a world. -```bash -./dc logs -f main proxy -``` - -### Directory layout - -Here is an overview of the directory structure of your server nework. The `plugins` and `proxy-plugins` directory can be swapped with a git submodule if your server grows larger or you want to split the commit messsages and repository access. - -| Directory | Details | -| ------- | -------- | -| `configs/` | Contains the base server configurations, e.g. `bukkit.yml`. The `server-properties` must be configured in the `/server-properties.env`. | -| `database/` | Contains the `MariaDB` database files. Do not touch them and don't include them in your git repository. | -| `downloads/` | An optional webserver to serve the latest zip file of your plugins for the local development server. | -| `dynmap/` | Contains the web and tiles directory of your dynmap render - if needed. | -| `plugins/` | All plugin configs that derive from the default configs should be placed and configured here. **Do not include flat file storage, like the Citiziens saves.yml!**. Drop your plugin `*.jar` files into this directory as well. | -| `proxy-plugins/` | This is the same as the `plugins/` directory, just for the bungeecord/velocity plugins. Drop your proxy plugin `*.jar` files into the directory. | -| `rcon/` | Contains the data of the rcon web interface. Do not touch it or include it in the git repository. | -| `schematics/` | A directory to share schematics across servers in your network. It must be mounted for each server and map to the WorldEdit schematics directory. | -| `scripts/` | Contains utlity scripts used by the `init.sh` script. Feel free to add your own and customize it to your liking. | -| `servers/` | Contains the flesh and bones of your server and holds all data. Do not commit them to the repository, but make sure to keep regular backups using the built-in restic backup or your own. | -| `docker-compose.*.yml` | There is one file for each service deployed in your minecraft network. Add or remove them as required. | -| `*.env` | The env files contain individual settings for each container, e.g. RAM, gamemode, etc. | -| `*.secrets.env` | Contains generated secrets for your network. **Do not commit them to source control!** | +The CLI works from any current directory and supports checkout paths with spaces. `./scripts/minecraft --help` and `setup --help` list options. Use the full path when calling it outside the checkout. -### Updating plugin configs +## Operate -All plugin configurations are located inside the `plugins/` directory and copied to the `servers/.../plugins/` on start of the server. Only place the configs that derive from the defaults. Do not place flat files in there, e.g. Citizens `saves.yml`. Files in the `plugins/` directory overwrite your files in the `servers/...` directory on startup. - -You can use the [variable replacements](https://github.com/itzg/docker-minecraft-server#replacing-variables-inside-configs) from the official `minecraft-docker` image. - -Here is an example database configuration which will automatically replace the variables with your database credentials on startup. See the `globals.env` for details. - -```yaml -database: - type: ${CFG_DB_DRIVER} - host: ${CFG_DB_HOST} - port: ${CFG_DB_PORT} - user: ${CFG_DB_USER} - password: ${CFG_DB_PASSWORD} - database: ${CFG_DB_NAME} - url: ${CFG_DB_URL} +```sh +./scripts/minecraft start +./scripts/minecraft status +./scripts/minecraft doctor +./scripts/minecraft command list +./scripts/minecraft command 'save-all flush' +./scripts/minecraft compose logs --tail 100 server +./scripts/minecraft backup +./scripts/minecraft snapshots +./scripts/minecraft restore /absolute/empty/recovery-directory +./scripts/minecraft stop ``` -### Installing/Updating plugins - -Drop the `.jar` files of your plugins into the `plugins/` directory. They will be copied together with the configs into the `servers/` directory on startup. Any old *.jar files will be removed. You can finetune the deletion depth in the `globals.env` with the `REMOVE_OLD_MODS_DEPTH` property. - -By default this means that nested jar files, e.g. the ones from `PlaceholderAPI` will be deleted as well. Include them in the `plugins/` directory under `plugins/PlaceholderAPI/expansions/`. - -After you updated plugins you can execute the `zip-plugins.sh` script to create a zip file of all of your plugins that is then available for download and use in the testserver. - -### Adding more servers - -You can add more servers any time. Just copy the `docker-compose.main.yml` and replace every occurance of `main` with your new server name. Create a custom `.env` file to override additional properties and include in the in the `env-files:` part of the compose config. Also update the name of your world by setting the `LEVEL:` property. - -Copy the `configs/main/` directory and adjust the `bukkit.yml` and so on. - -Create a new empty directory with the name of your server under: `servers/`. - -## Database - -The setup will deploy a [MariaDB](https://hub.docker.com/_/mariadb) docker image with a random `root` and `minecraft` user password. Only the password of the minecraft user is stored in the `mysql.secrets.env`. You must look at the first startup log of the db container and note the root password to manually create new users: `./dc.sh logs db`. +`status` emits Compose JSON; `doctor` emits redacted runtime and pin identity. `command` runs internal authenticated RCON without a published admin port. `stop` removes this project's containers and network, preserving bind-mounted data and secrets. Backup can run manually even without the scheduled profile. Restore writes a separate directory and refuses active data or nonempty destinations. -There is also a phpyMyAdmin deployment available under `db.your-server.net`. You can login with the users above. Creating new users to access the database from the web is highly recommended. +Place approved Paper jars and plugin configuration under `plugins/server/`, Velocity jars under `plugins/proxy/`, and server configuration under `configs/server/`. Restart to copy them into persistent data. Remove a plugin from both the source and `data/server/plugins/` when uninstalling it. Vanilla ignores plugin jars. The template makes no claim about arbitrary plugin compatibility. [Operations, backup and upgrades](docs/operations.md) explains the data layout and optional integrations. -## Dynmap +## Agents and validation -The stack will be deploy with a standalone dynmap webserver and dynmap has to be configured accordingly. To make things easier this template comes with a dynmap `configuration.txt` and preconfigured web directory that works out of the box. +Use the [START prompt](START.md) for a coding agent. Its discoverable [setup skill](.agents/skills/minecraft-server-setup/SKILL.md) requires explicit EULA consent and keeps host installation, firewall and DNS changes outside setup. -To enable the dynmap integration download the [dynmap plugin](https://www.spigotmc.org/resources/dynmap.274/) and drop it into the `plugins/` directory. The dynmap can then be accessed using `https://map.your-server.net`. - -## Player Analytics - -Download the[player analytics](https://www.spigotmc.org/resources/plan-player-analytics.32536/) plugin drop it into the `plugins/` and `proxy-plugins/` directory. Restart your server and access PLAN under `plan.your-server.net`. - -## Backup - -The stack comes with a [restic](https://restic.readthedocs.io/) backup [sidecar container](https://hub.docker.com/repository/docker/silthus/mc-restic-compose-backup) which allows configuring any number of [backup repositories](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html). [AWS glacier](https://aws.amazon.com/glacier/) can be configured easily, as it is very cheap for huge amount of data. - -By default backups are written into the `backup/` directory. Adjust the `backup.env` file to your liking. You can also add a discord webhook to one of your discord channels to get notified when a backup occured. This way you can quickly see if backups are successful or failing. - -To get the status of your backups attach to the backup container and run `rcb status` and `rcb snapshots`. - -``./backup.sh attach`` - -You can also use the `backup.sh` script to create an instant backup or cleanup the repository based on your retention times in `backup.env`. - -* ``./backup.sh now`` - *Takes an instant backup.* -* ``./backup.sh cleanup`` - *Removes old snapshots freeing disk space.* -* ``./backup.sh snapshots`` - *Shows all backups.* -* ``./backup.sh attach`` - *Attaches to the backup container. Use the `rcb` command inside for more details.* - -![backup](.github/backup.gif) - -## Web Traefik - -[Traefik](https://doc.traefik.io/traefik/) is used to dynamically serve urls, create certificates and make the various web sites accessible under their subdomains. - -## Developer Setup - -One of the mail goals of this project was to make mirroring the production server to a development environment as easy as possible. At the same time should the local development environment not eat up all local resources. For that reason there is a `minimal.sh` setup of the server. It only serves the required docker services and makes the phpMyAdmin accessible on [http://localhost:8080](http://localhost:8080) without login. - -> All of the following steps must be executed inside a `Windows Subsystem for Linux (WSL)` or Linux environment. `Docker for Windows` must also be installed and have the [WSL2 integration activated](https://docs.docker.com/docker-for-windows/wsl/). Depending on your system you must also activate CPU virtualization in your BIOS: [Troubleshooting Docker for Windows](https://docs.docker.com/docker-for-windows/troubleshoot/#virtualization) - -1. Clone this repository with the `--recursive` flag: - `git clone --recursive https://github.com/Silthus/minecraft-server-template.git` -2. Execute the `init.sh` script: - *The script asks you a couple of questions initializing your minecraft network.* - *It will also generate a couple of `*secrets.env` files that **must never be commited!** -3. Delete all non required plugins (just `.jar` files) from the `plugins/` directory. - *This will speed up the startup time of your server signifficantly.* -4. Start the development server with the `minimal.sh` script. - `./minimal.sh up -d` -5. Happy coding :) - -### Logs and Reboot - -The logs of the dev server can be viewed with `./minimal.sh logs -f minimal`. - -The server can be restarted with `./minimal.sh restart minimal` and stopped with `./minimal.sh down`. - -### phpMyAdmin - -The dev server has an integrated phpMyAdmin webinterface without authentication. Simply access [http://localhost:8080](http://localhost:8080). - -### OP Rights - -You should give yourself OP rights after joining the server: `./minimal.sh exec minimal rcon-cli op ` - -If using luckperms use the following command: `./minimal.sh exec minimal rcon-cli lp user permission set luckperms.autoop` - -### Copying plugins - -To avoid the pesky manual copying of plugins a new gradle task was created: `other -> installPlugin`. -The task will automatically build and copy your plugin into the `plugins/` directory. - -You need to include the following in your `build.gradle` to make this work. The `init.sh` script did the rest and copied the task from the `lib/scripts/` directory. - -```groovy -if (project.hasProperty("local_script")) { - apply from: file(local_script + "/build.local.gradle") -} +```sh +./scripts/validate static +./scripts/validate local +./scripts/validate fullDocker --output /tmp/minecraft-proof +./scripts/check-versions ``` -### Debugging - -The development server started with `minimal.sh` will automatically expose the default remote debugging port under `-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005`. - -Here is how to setup IntelliJ with a remote debug task. - -![step1](.github/remote_debug_1.png) ![step2](.github/remote_debug_2.png) ![step3](.github/remote_debug_3.png) - -And then start your development server (`./minimal.sh up -d`) and attach to it using the task we just created. +Static and local modes exercise the CLI and resolved Compose boundaries without starting containers. Full Docker mode requires native Linux Docker networking and GNU `timeout`. It accepts the EULA for disposable tests only, runs unique projects on ephemeral loopback ports, checks live protocol and RCON, recreates containers, and boots a restored world. It removes only its own resources and exports redacted command logs, assertions and versions. Read [the validation report](docs/validation.md) for actual results and limits. CI runs the local gate on every change and the full Docker gate on pull requests or explicit dispatch. Archive copies can validate without a Git index; the fallback excludes generated data, secrets and legacy runtime paths. -![start_1](.github/remote_debug_run_1.png) ![start_2](.github/remote_debug_run_2.png) +Existing 1.17 deployments must follow [the migration guide](docs/migration.md). Setup never upgrades production data. [Current standards](docs/current-standards.md) records the cited version and security decisions. -## FAQ +## Troubleshooting -### View the 'live' server log +If startup fails, use `doctor`, `status`, and `compose logs --tail 200`. Docker must already be reachable. A failed pull or download is a failure, not a ready server. Give the JVM sufficient heap plus container overhead and leave disk room for world generation and backups. A port conflict requires another explicit setup port in a fresh checkout or deliberate reconfiguration. -``./dc.sh logs -f main`` +Secret files must be nonempty, mode 0600, and readable by the configured Minecraft UID. Restore credentials from secure custody if lost; replacing them can make backups or the database inaccessible. A network backend must retain its matching forwarding secret and both modern forwarding settings. Never publish its port to diagnose login issues. Plugin crashes require checking that plugin's support for the exact Minecraft release. diff --git a/START.md b/START.md new file mode 100644 index 0000000..1a8f75f --- /dev/null +++ b/START.md @@ -0,0 +1,7 @@ +# Start prompt + +Paste this into your coding agent from a fresh checkout: + +> Use the repo-local minecraft-server-setup skill to set up and start this template. I explicitly accept the Minecraft EULA at https://aka.ms/MinecraftEULA for this server. Use default stable Paper, enable scheduled backups, and bind gameplay to 127.0.0.1 for local use. Make autonomous routine decisions within this checkout. Docker and Python must already be installed; report a prerequisite blocker instead of installing host packages or changing firewall/DNS. Finish by querying live Minecraft status, running authenticated RCON, and reporting exact versions, health, data paths, and the backup schedule without revealing secrets. + +For a public server, explicitly request the desired bind address and handle host networking separately. For current Vanilla, request `--distribution vanilla` and omit proxy/plugin requirements. For a network, request Velocity and Paper. EULA acceptance in this example does not authorize unrelated future installations or existing-world upgrades. diff --git a/backup.env b/backup.env deleted file mode 100644 index 65700e4..0000000 --- a/backup.env +++ /dev/null @@ -1,11 +0,0 @@ -RESTIC_REPOSITORY=/backup -RESTIC_KEEP_LATEST=7 -RESTIC_KEEP_HOURLY=12 -RESTIC_KEEP_DAILY=7 -RESTIC_KEEP_WEEKLY=4 -RESTIC_KEEP_MONTHLY=12 -RESTIC_KEEP_YEARLY=75 -# Cron schedule. Run every 3 hours -CRON_SCHEDULE="0 0,3,6,9,12,15,18,21 * * *" -DISCORD_WEBHOOK= -INCLUDE_PROJECT_NAME=true diff --git a/backup.sh b/backup.sh deleted file mode 100755 index df7bea7..0000000 --- a/backup.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -while [ -n "$1" ]; do - case "$1" in - now) echo "starting backup..." - ./dc.sh exec backup rcb backup --no-cleanup - ;; - cleanup) echo "cleaning up old backups..." - ./dc.sh exec backup rcb cleanup - ;; - snapshots) - ./dc.sh exec backup rcb snapshots - ;; - attach) - ./dc.sh exec -it backup sh - ;; - --) shift - break ;; - *) echo "$1 is not an option. Valid options: now, cleanup, snapshots or attach";; - esac - shift -done diff --git a/backup/.gitkeep b/backup/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/cleanup.sh b/cleanup.sh deleted file mode 100755 index a424663..0000000 --- a/cleanup.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -rm .env -rm *.secrets.env -find servers/ database/ rcon/ ! -name '.gitkeep' -delete diff --git a/cmd.sh b/cmd.sh deleted file mode 100755 index 3ce4861..0000000 --- a/cmd.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -./dc.sh exec $1 rcon-cli ${@:2} diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..ab05097 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,148 @@ +services: + server: + image: ${SERVER_IMAGE:?} + user: ${RUN_UID:?}:${RUN_GID:?} + restart: unless-stopped + security_opt: [no-new-privileges:true] + cap_drop: [ALL] + mem_limit: ${CONTAINER_MEMORY:?} + environment: + EULA: ${EULA:?} + TYPE: ${DISTRIBUTION:?} + VERSION: ${PAPER_VERSION:?} + PAPER_BUILD: ${PAPER_BUILD:?} + MEMORY: ${MEMORY:?} + ONLINE_MODE: ${ONLINE_MODE:?} + MOTD: ${MOTD:?} + ENABLE_RCON: "true" + RCON_PASSWORD_FILE: /run/secrets/rcon + ENABLE_QUERY: "false" + VIEW_DISTANCE: "6" + SIMULATION_DISTANCE: "4" + PAUSE_WHEN_EMPTY_SECONDS: "-1" + SKIP_DOWNLOAD_DEFAULTS: "true" + COPY_CONFIG_DEST: /data + SYNC_SKIP_NEWER_IN_DESTINATION: "false" + volumes: + - ./data/server:/data + - ./configs/server:/config:ro + - ./plugins/server:/plugins:ro + secrets: [rcon] + healthcheck: + test: [CMD, mc-health] + interval: 10s + timeout: 10s + retries: 30 + start_period: 60s + stop_grace_period: 2m + proxy: + profiles: [proxy] + image: ${PROXY_IMAGE:?} + user: ${RUN_UID:?}:${RUN_GID:?} + restart: unless-stopped + security_opt: [no-new-privileges:true] + cap_drop: [ALL] + mem_limit: 1G + environment: + TYPE: VELOCITY + VELOCITY_VERSION: ${VELOCITY_VERSION:?} + VELOCITY_BUILD_ID: ${VELOCITY_BUILD_ID:?} + MEMORY: 512M + ENABLE_RCON: "false" + SKIP_DOWNLOAD_DEFAULTS: "true" + volumes: + - ./data/proxy:/server + - ./.state/velocity.toml:/server/velocity.toml + - ./.state/secrets/forwarding:/server/forwarding.secret:ro + - ./plugins/proxy:/plugins:ro + ports: + - ${BIND_ADDRESS:?}:${GAME_PORT:?}:25565 + depends_on: + server: + condition: service_healthy + healthcheck: + test: [CMD, mc-monitor, status, --host, localhost, --port, "25565"] + interval: 10s + timeout: 10s + retries: 12 + stop_grace_period: 30s + backup: + profiles: [backup] + image: ${BACKUP_RUNTIME_IMAGE:?} + build: + context: . + dockerfile: Dockerfile.backup + args: + BACKUP_IMAGE: ${BACKUP_IMAGE:?} + user: ${RUN_UID:?}:${RUN_GID:?} + restart: unless-stopped + security_opt: [no-new-privileges:true] + cap_drop: [ALL] + environment: + BACKUP_METHOD: restic + BACKUP_INTERVAL: 6h + INITIAL_DELAY: 0 + BACKUP_ON_STARTUP: "true" + RCON_HOST: server + RCON_PASSWORD_FILE: /run/secrets/rcon + RCON_RETRIES: "3" + RCON_RETRY_INTERVAL: 5s + RESTIC_REPOSITORY: /backups/repository + RESTIC_PASSWORD_FILE: /run/secrets/restic + RESTIC_HOST: minecraft + BACKUP_NAME: server + PRUNE_RESTIC_RETENTION: --keep-daily 7 --keep-weekly 4 --keep-monthly 6 + EXCLUDES: cache,logs,*.tmp + SKIP_LOCKING: "false" + volumes: + - ./data/server:/data:ro + - ./backups:/backups + secrets: [rcon, restic] + depends_on: + server: + condition: service_healthy + database: + profiles: [database] + image: ${DATABASE_IMAGE:?} + restart: unless-stopped + security_opt: [no-new-privileges:true] + environment: + MARIADB_DATABASE: minecraft + MARIADB_USER: minecraft + MARIADB_PASSWORD_FILE: /run/secrets/database + MARIADB_ROOT_PASSWORD_FILE: /run/secrets/database_root + volumes: + - database:/var/lib/mysql + secrets: [database, database_root] + healthcheck: + test: [CMD, healthcheck.sh, --connect, --innodb_initialized] + interval: 10s + timeout: 10s + retries: 30 + start_period: 30s + web: + profiles: [web] + image: ${WEB_IMAGE:?} + restart: unless-stopped + security_opt: [no-new-privileges:true] + volumes: + - ./web:/usr/share/nginx/html:ro + ports: + - 127.0.0.1:${WEB_PORT:?}:80 + healthcheck: + test: [CMD, wget, -q, -O, /dev/null, http://127.0.0.1/] + interval: 10s + timeout: 5s + retries: 6 +secrets: + rcon: + file: ./.state/secrets/rcon + restic: + file: ./.state/secrets/restic + database: + file: ./.state/secrets/database + database_root: + file: ./.state/secrets/database_root + +volumes: + database: diff --git a/configs/excludes.txt b/configs/excludes.txt deleted file mode 100644 index c0d86cc..0000000 --- a/configs/excludes.txt +++ /dev/null @@ -1,5 +0,0 @@ -*.log -**/plugins/dynmap/web/** -*.tgz -*.tar.gz -*.tar diff --git a/configs/main/bukkit.yml b/configs/main/bukkit.yml deleted file mode 100644 index 29dbe7e..0000000 --- a/configs/main/bukkit.yml +++ /dev/null @@ -1,41 +0,0 @@ -# This is the main configuration file for Bukkit. -# As you can see, there's actually not that much to configure without any plugins. -# For a reference for any variable inside this file, check out the Bukkit Wiki at -# https://www.spigotmc.org/go/bukkit-yml -# -# If you need help on this file, feel free to join us on irc or leave a message -# on the forums asking for advice. -# -# IRC: #spigot @ irc.spi.gt -# (If this means nothing to you, just go to https://www.spigotmc.org/go/irc ) -# Forums: https://www.spigotmc.org/ -# Bug tracker: https://www.spigotmc.org/go/bugs - - -settings: - allow-end: true - warn-on-overload: true - permissions-file: permissions.yml - update-folder: update - plugin-profiling: false - connection-throttle: 4000 - query-plugins: true - deprecated-verbose: default - shutdown-message: Server closed - minimum-api: none -spawn-limits: - monsters: 70 - animals: 10 - water-animals: 15 - water-ambient: 20 - ambient: 15 -chunk-gc: - period-in-ticks: 600 -ticks-per: - animal-spawns: 400 - monster-spawns: 1 - water-spawns: 1 - water-ambient-spawns: 1 - ambient-spawns: 1 - autosave: 6000 -aliases: now-in-commands.yml diff --git a/configs/main/commands.yml b/configs/main/commands.yml deleted file mode 100644 index 5b065de..0000000 --- a/configs/main/commands.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This is the commands configuration file for Bukkit. -# For documentation on how to make use of this file, check out the Bukkit Wiki at -# https://www.spigotmc.org/go/commands-yml -# -# If you need help on this file, feel free to join us on irc or leave a message -# on the forums asking for advice. -# -# IRC: #spigot @ irc.spi.gt -# (If this means nothing to you, just go to https://www.spigotmc.org/go/irc ) -# Forums: https://www.spigotmc.org/ -# Bug tracker: https://www.spigotmc.org/go/bugs - -command-block-overrides: [] -ignore-vanilla-permissions: false -aliases: - icanhasbukkit: - - version $1- diff --git a/configs/main/excludes.txt b/configs/main/excludes.txt deleted file mode 100644 index c0d86cc..0000000 --- a/configs/main/excludes.txt +++ /dev/null @@ -1,5 +0,0 @@ -*.log -**/plugins/dynmap/web/** -*.tgz -*.tar.gz -*.tar diff --git a/configs/main/help.yml b/configs/main/help.yml deleted file mode 100644 index 215afd3..0000000 --- a/configs/main/help.yml +++ /dev/null @@ -1,55 +0,0 @@ -# This is the help configuration file for Bukkit. -# -# By default you do not need to modify this file. Help topics for all plugin commands are automatically provided by -# or extracted from your installed plugins. You only need to modify this file if you wish to add new help pages to -# your server or override the help pages of existing plugin commands. -# -# This file is divided up into the following parts: -# -- general-topics: lists admin defined help topics -# -- index-topics: lists admin defined index topics -# -- amend-topics: lists topic amendments to apply to existing help topics -# -- ignore-plugins: lists any plugins that should be excluded from help -# -# Examples are given below. When amending command topic, the string will be replaced with the existing value -# in the help topic. Color codes can be used in topic text. The color code character is & followed by 0-F. -# ================================================================ -# -# Set this to true to list the individual command help topics in the master help. -# command-topics-in-master-index: true -# -# Each general topic will show up as a separate topic in the help index along with all the plugin command topics. -# general-topics: -# Rules: -# shortText: Rules of the server -# fullText: | -# &61. Be kind to your fellow players. -# &B2. No griefing. -# &D3. No swearing. -# permission: topics.rules -# -# Each index topic will show up as a separate sub-index in the help index along with all the plugin command topics. -# To override the default help index (displayed when the user executes /help), name the index topic "Default". -# index-topics: -# Ban Commands: -# shortText: Player banning commands -# preamble: Moderator - do not abuse these commands -# permission: op -# commands: -# - /ban -# - /ban-ip -# - /banlist -# -# Topic amendments are used to change the content of automatically generated plugin command topics. -# amended-topics: -# /stop: -# shortText: Stops the server cold....in its tracks! -# fullText: - This kills the server. -# permission: you.dont.have -# -# Any plugin in the ignored plugins list will be excluded from help. The name must match the name displayed by -# the /plugins command. Ignore "Bukkit" to remove the standard bukkit commands from the index. Ignore "All" -# to completely disable automatic help topic generation. -# ignore-plugins: -# - PluginNameOne -# - PluginNameTwo -# - PluginNameThree \ No newline at end of file diff --git a/configs/main/paper.yml b/configs/main/paper.yml deleted file mode 100644 index fe460b3..0000000 --- a/configs/main/paper.yml +++ /dev/null @@ -1,220 +0,0 @@ -# This is the main configuration file for Paper. -# As you can see, there's tons to configure. Some options may impact gameplay, so use -# with caution, and make sure you know what each option does before configuring. -# -# If you need help with the configuration or have any questions related to Paper, -# join us in our Discord or IRC channel. -# -# Discord: https://discord.gg/papermc -# IRC: #paper @ irc.esper.net ( https://webchat.esper.net/?channels=paper ) -# Website: https://papermc.io/ -# Docs: https://paper.readthedocs.org/ - -verbose: false -config-version: 20 -settings: - use-alternative-luck-formula: false - load-permissions-yml-before-plugins: true - bungee-online-mode: true - console-has-all-permissions: false - region-file-cache-size: 256 - incoming-packet-spam-threshold: 300 - max-joins-per-tick: 3 - track-plugin-scoreboards: false - suggest-player-names-when-null-tab-completions: true - chunk-tasks-per-tick: 1000 - save-player-data: true - enable-player-collisions: true - player-auto-save-rate: -1 - max-player-auto-save-per-tick: -1 - save-empty-scoreboard-teams: false - velocity-support: - enabled: false - online-mode: false - secret: '' - unsupported-settings: - allow-headless-pistons: false - allow-permanent-block-break-exploits: false - allow-piston-duplication: false - allow-headless-pistons-readme: This setting controls if players should be able - to create headless pistons. - allow-permanent-block-break-exploits-readme: This setting controls if players - should be able to break bedrock, end portals and other intended to be permanent - blocks. - allow-piston-duplication-readme: This setting controls if player should be able - to use TNT duplication, but this also allows duplicating carpet, rails and potentially - other items - watchdog: - early-warning-every: 5000 - early-warning-delay: 10000 - spam-limiter: - recipe-spam-increment: 1 - recipe-spam-limit: 20 - tab-spam-increment: 1 - tab-spam-limit: 500 - book-size: - page-max: 2560 - total-multiplier: 0.98 - async-chunks: - threads: -1 -messages: - no-permission: '&cI''m sorry, but you do not have permission to perform this command. - Please contact the server administrators if you believe that this is in error.' - kick: - authentication-servers-down: '' - connection-throttle: Connection throttled! Please wait before reconnecting. - flying-player: Flying is not enabled on this server - flying-vehicle: Flying is not enabled on this server -timings: - enabled: true - verbose: true - server-name-privacy: false - hidden-config-entries: - - database - - settings.bungeecord-addresses - history-interval: 300 - history-length: 3600 - server-name: Unknown Server -world-settings: - default: - fix-climbing-bypassing-cramming-rule: false - seed-based-feature-search: true - should-remove-dragon: false - optimize-explosions: true - baby-zombie-movement-modifier: 0.5 - disable-teleportation-suffocation-check: false - fixed-chunk-inhabited-time: -1 - use-vanilla-world-scoreboard-name-coloring: false - remove-corrupt-tile-entities: true - experience-merge-max-value: -1 - prevent-moving-into-unloaded-chunks: true - max-auto-save-chunks-per-tick: 24 - count-all-mobs-for-spawning: false - per-player-mob-spawns: true - delay-chunk-unloads-by: 10s - falling-block-height-nerf: 0 - tnt-entity-height-nerf: 0 - filter-nbt-data-from-spawn-eggs-and-related: true - max-entity-collisions: 8 - disable-creeper-lingering-effect: false - duplicate-uuid-resolver: saferegen - duplicate-uuid-saferegen-delete-range: 32 - phantoms-do-not-spawn-on-creative-players: true - phantoms-only-attack-insomniacs: true - water-over-lava-flow-speed: 5 - grass-spread-tick-rate: 1 - use-faster-eigencraft-redstone: true - nether-ceiling-void-damage-height: 0 - allow-non-player-entities-on-scoreboards: false - portal-search-radius: 128 - portal-create-radius: 16 - parrots-are-unaffected-by-player-movement: false - disable-explosion-knockback: false - armor-stands-do-collision-entity-lookups: true - keep-spawn-loaded: true - disable-thunder: false - skeleton-horse-thunder-spawn-chance: 0.01 - disable-ice-and-snow: false - keep-spawn-loaded-range: 10 - container-update-tick-rate: 1 - prevent-tnt-from-moving-in-water: false - iron-golems-can-spawn-in-air: false - non-player-arrow-despawn-rate: -1 - creative-arrow-despawn-rate: -1 - enable-treasure-maps: true - treasure-maps-return-already-discovered: false - spawner-nerfed-mobs-should-jump: false - entities-target-with-follow-range: true - zombies-target-turtle-eggs: true - zombie-villager-infection-chance: -1.0 - armor-stands-tick: true - all-chunks-are-slime-chunks: false - mob-spawner-tick-rate: 1 - light-queue-size: 20 - auto-save-interval: -1 - game-mechanics: - fix-curing-zombie-villager-discount-exploit: true - scan-for-legacy-ender-dragon: true - disable-pillager-patrols: false - disable-chest-cat-detection: false - nerf-pigmen-from-nether-portals: false - disable-player-crits: false - disable-sprint-interruption-on-attack: false - shield-blocking-delay: 5 - disable-end-credits: true - disable-unloaded-chunk-enderpearl-exploit: true - disable-relative-projectile-velocity: false - pillager-patrols: - spawn-chance: 0.2 - spawn-delay: - per-player: false - ticks: 12000 - start: - per-player: false - day: 5 - max-growth-height: - cactus: 3 - reeds: 3 - fishing-time-range: - MinimumTicks: 100 - MaximumTicks: 600 - despawn-ranges: - soft: 32 - hard: 128 - frosted-ice: - enabled: true - delay: - min: 20 - max: 40 - lootables: - auto-replenish: false - restrict-player-reloot: true - reset-seed-on-fill: true - max-refills: -1 - refresh-min: 24h - refresh-max: 7d - alt-item-despawn-rate: - enabled: false - items: - COBBLESTONE: 300 - hopper: - cooldown-when-full: true - disable-move-event: false - lightning-strike-distance-limit: - sound: -1 - impact-sound: -1 - flash: -1 - anti-xray: - enabled: true - engine-mode: 1 - max-chunk-section-index: 3 - update-radius: 2 - lava-obscures: false - hidden-blocks: - - gold_ore - - iron_ore - - coal_ore - - lapis_ore - - mossy_cobblestone - - obsidian - - chest - - diamond_ore - - redstone_ore - - clay - - emerald_ore - - ender_chest - replacement-blocks: - - stone - - oak_planks - viewdistances: - no-tick-view-distance: -1 - squid-spawn-height: - maximum: 0.0 - generator-settings: - flat-bedrock: false - wandering-trader: - spawn-minute-length: 1200 - spawn-day-length: 24000 - spawn-chance-failure-increment: 25 - spawn-chance-min: 25 - spawn-chance-max: 75 diff --git a/configs/main/permissions.yml b/configs/main/permissions.yml deleted file mode 100644 index e69de29..0000000 diff --git a/configs/main/server-icon.png b/configs/main/server-icon.png deleted file mode 100644 index 0b34064..0000000 Binary files a/configs/main/server-icon.png and /dev/null differ diff --git a/configs/main/spigot.yml b/configs/main/spigot.yml deleted file mode 100644 index 3234f96..0000000 --- a/configs/main/spigot.yml +++ /dev/null @@ -1,165 +0,0 @@ -# This is the main configuration file for Spigot. -# As you can see, there's tons to configure. Some options may impact gameplay, so use -# with caution, and make sure you know what each option does before configuring. -# For a reference for any variable inside this file, check out the Spigot wiki at -# http://www.spigotmc.org/wiki/spigot-configuration/ -# -# If you need help with the configuration or have any questions related to Spigot, -# join us at the IRC or drop by our forums and leave a post. -# -# IRC: #spigot @ irc.spi.gt ( http://www.spigotmc.org/pages/irc/ ) -# Forums: http://www.spigotmc.org/ - -config-version: 12 -messages: - whitelist: You are not whitelisted on this server! - unknown-command: Unknown command. Type "/help" for help. - server-full: The server is full! - outdated-client: Outdated client! Please use {0} - outdated-server: Outdated server! I'm still on {0} - restart: Server is restarting -advancements: - disable-saving: false - disabled: - - minecraft:story/disabled -stats: - disable-saving: false - forced-stats: {} -commands: - log: true - tab-complete: 0 - send-namespaced: true - spam-exclusions: - - /skill - silent-commandblock-console: false - replace-commands: - - setblock - - summon - - testforblock - - tellraw -settings: - bungeecord: true - sample-count: 12 - player-shuffle: 0 - user-cache-size: 1000 - save-user-cache-on-stop-only: false - moved-wrongly-threshold: 0.0625 - moved-too-quickly-multiplier: 10.0 - log-villager-deaths: true - timeout-time: 60 - restart-on-crash: false - restart-script: ./start.sh - netty-threads: 4 - debug: false - attribute: - maxHealth: - max: 2048.0 - movementSpeed: - max: 2048.0 - attackDamage: - max: 2048.0 -world-settings: - default: - verbose: true - hopper-amount: 1 - dragon-death-sound-radius: 0 - seed-village: 10387312 - seed-desert: 14357617 - seed-igloo: 14357618 - seed-jungle: 14357619 - seed-swamp: 14357620 - seed-monument: 10387313 - seed-shipwreck: 165745295 - seed-ocean: 14357621 - seed-outpost: 165745296 - seed-endcity: 10387313 - seed-slime: 987234911 - seed-bastion: 30084232 - seed-fortress: 30084232 - seed-mansion: 10387319 - seed-fossil: 14357921 - seed-portal: 34222645 - max-tnt-per-tick: 100 - enable-zombie-pigmen-portal-spawns: true - item-despawn-rate: 6000 - view-distance: default - wither-spawn-sound-radius: 0 - arrow-despawn-rate: 1200 - trident-despawn-rate: 1200 - hanging-tick-frequency: 100 - zombie-aggressive-towards-villager: true - nerf-spawner-mobs: false - mob-spawn-range: 8 - end-portal-sound-radius: 0 - max-entity-collisions: 8 - merge-radius: - exp: 3.0 - item: 2.5 - growth: - cactus-modifier: 100 - cane-modifier: 100 - melon-modifier: 100 - mushroom-modifier: 100 - pumpkin-modifier: 100 - sapling-modifier: 100 - beetroot-modifier: 100 - carrot-modifier: 100 - potato-modifier: 100 - wheat-modifier: 100 - netherwart-modifier: 100 - vine-modifier: 100 - cocoa-modifier: 100 - bamboo-modifier: 100 - sweetberry-modifier: 100 - kelp-modifier: 100 - entity-activation-range: - animals: 32 - monsters: 32 - raiders: 48 - misc: 16 - water: 16 - villagers: 32 - flying-monsters: 32 - villagers-work-immunity-after: 100 - villagers-work-immunity-for: 20 - villagers-active-for-panic: true - tick-inactive-villagers: true - wake-up-inactive: - animals-max-per-tick: 4 - animals-every: 1200 - animals-for: 100 - monsters-max-per-tick: 8 - monsters-every: 400 - monsters-for: 100 - villagers-max-per-tick: 4 - villagers-every: 600 - villagers-for: 100 - flying-monsters-max-per-tick: 8 - flying-monsters-every: 200 - flying-monsters-for: 100 - ticks-per: - hopper-transfer: 8 - hopper-check: 1 - hunger: - jump-walk-exhaustion: 0.05 - jump-sprint-exhaustion: 0.2 - combat-exhaustion: 0.1 - regen-exhaustion: 6.0 - swim-multiplier: 0.01 - sprint-multiplier: 0.1 - other-multiplier: 0.0 - max-tick-time: - tile: 50 - entity: 50 - squid-spawn-range: - min: 45.0 - entity-tracking-range: - players: 48 - animals: 48 - monsters: 48 - misc: 32 - other: 64 - worldeditregentempworld: - verbose: false -players: - disable-saving: false diff --git a/configs/main/wepif.yml b/configs/main/wepif.yml deleted file mode 100644 index be45bd8..0000000 --- a/configs/main/wepif.yml +++ /dev/null @@ -1,46 +0,0 @@ -# -# WEPIF Configuration File -# -# This file handles permissions configuration for every plugin using WEPIF -# -# About editing this file: -# - DO NOT USE TABS. You MUST use spaces or Bukkit will complain. If -# you use an editor like Notepad++ (recommended for Windows users), you -# must configure it to "replace tabs with spaces." In Notepad++, this can -# be changed in Settings > Preferences > Language Menu. -# - Don't get rid of the indents. They are indented so some entries are -# in categories (like "enforce-single-session" is in the "protection" -# category. -# - If you want to check the format of this file before putting it -# into WEPIF, paste it into https://yaml-online-parser.appspot.com/ -# and see if it gives "ERROR:". -# - Lines starting with # are comments and so they are ignored. - - -ignore-nijiperms-bridges: true -resolvers: - enabled: - - PluginPermissionsResolver - - PermissionsExResolver - - bPermissionsResolver - - GroupManagerResolver - - NijiPermissionsResolver - - VaultResolver - - DinnerPermsResolver - - FlatFilePermissionsResolver -permissions: - groups: - default: - permissions: - - worldedit.reload - - worldedit.selection - - worlds.creative.worldedit.region - admins: - permissions: - - '*' - users: - sk89q: - permissions: - - worldedit - groups: - - admins diff --git a/configs/my.cnf b/configs/my.cnf deleted file mode 100644 index 60df0da..0000000 --- a/configs/my.cnf +++ /dev/null @@ -1,2 +0,0 @@ -[mysqld] -max_connections=1000 diff --git a/configs/proxy/config.yml b/configs/proxy/config.yml deleted file mode 100644 index 231d089..0000000 --- a/configs/proxy/config.yml +++ /dev/null @@ -1,46 +0,0 @@ -server_connect_timeout: 5000 -listeners: -- query_port: 25577 - motd: "Just another minecraft-server-template server." - tab_list: GLOBAL_PING - query_enabled: true - proxy_protocol: false - forced_hosts: {} - ping_passthrough: true - priorities: - - main - bind_local_address: true - host: 0.0.0.0:25577 - max_players: 100 - tab_size: 60 - force_default_server: false -remote_ping_cache: -1 -network_compression_threshold: 256 -permissions: - default: - - bungeecord.command.server - - bungeecord.command.list - admin: - - bungeecord.command.alert - - bungeecord.command.end - - bungeecord.command.ip - - bungeecord.command.reload - - plan.register.self -log_pings: true -connection_throttle_limit: 3 -prevent_proxy_connections: false -timeout: 30000 -player_limit: -1 -ip_forward: true -groups: {} -remote_ping_timeout: 5000 -connection_throttle: 4000 -log_commands: false -stats: 14c8d69c-63dd-4ed7-be97-dfa4ee39ae01 -online_mode: true -forge_support: false -disabled_commands: -- disabledcommandhere -servers: - main: - address: main:25565 diff --git a/configs/proxy/excludes.txt b/configs/proxy/excludes.txt deleted file mode 100644 index c0d86cc..0000000 --- a/configs/proxy/excludes.txt +++ /dev/null @@ -1,5 +0,0 @@ -*.log -**/plugins/dynmap/web/** -*.tgz -*.tar.gz -*.tar diff --git a/configs/proxy/locations.yml b/configs/proxy/locations.yml deleted file mode 100644 index 0967ef4..0000000 --- a/configs/proxy/locations.yml +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/configs/proxy/modules.yml b/configs/proxy/modules.yml deleted file mode 100644 index 852f451..0000000 --- a/configs/proxy/modules.yml +++ /dev/null @@ -1,8 +0,0 @@ -version: 2 -modules: -- jenkins://cmd_alert -- jenkins://cmd_find -- jenkins://cmd_list -- jenkins://cmd_send -- jenkins://cmd_server -- jenkins://reconnect_yaml diff --git a/configs/proxy/server-icon.png b/configs/proxy/server-icon.png deleted file mode 100644 index 0b34064..0000000 Binary files a/configs/proxy/server-icon.png and /dev/null differ diff --git a/configs/proxy/waterfall.yml b/configs/proxy/waterfall.yml deleted file mode 100644 index c696f48..0000000 --- a/configs/proxy/waterfall.yml +++ /dev/null @@ -1,8 +0,0 @@ -use_netty_dns_resolver: true -disable_modern_tab_limiter: true -log_initial_handler_connections: true -throttling: - tab_complete: 1000 -game_version: '' -disable_tab_list_rewrite: false -disable_entity_metadata_rewrite: false diff --git a/console.sh b/console.sh deleted file mode 100755 index 329ddef..0000000 --- a/console.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -./dc.sh exec $1 rcon-cli diff --git a/database/.gitkeep b/database/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/dc.sh b/dc.sh deleted file mode 100755 index 81dca0e..0000000 --- a/dc.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -args="" - -while IFS= read -r -d $'\0'; do - if [[ ! $REPLY == *.minimal.yml ]]; then - args+="-f $REPLY " - fi -done < <(find . -maxdepth 1 -type f -name "docker-compose.*.yml" -print0) - -docker-compose $args $@ diff --git a/debug.sh b/debug.sh deleted file mode 100755 index 639e620..0000000 --- a/debug.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -export MODPACK=https://dl.raid-craft.de/plugins.zip - -docker-compose -f docker-compose.main.yml -f docker-compose.proxy.yml -f docker-compose.db.yml -f docker-compose.db.minimal.yml -f docker-compose.main.debug.yml $@ diff --git a/docker-compose.backup.yml b/docker-compose.backup.yml deleted file mode 100644 index 0b25a3c..0000000 --- a/docker-compose.backup.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: '3.7' -services: - backup: - image: silthus/mc-restic-compose-backup - env_file: - - backup.env - - backup.secrets.env - - sql.secrets.env - volumes: - - ./backup:/backup:z - # We need to communicate with docker - - /var/run/docker.sock:/tmp/docker.sock:ro - # Persistent storage of restic cache (greatly speeds up all restic operations) - - cache:/cache - - /etc/timezone:/etc/timezone:ro - networks: - - minecraft -volumes: - cache: -networks: - minecraft: - driver: bridge diff --git a/docker-compose.db.yml b/docker-compose.db.yml deleted file mode 100644 index 80ba431..0000000 --- a/docker-compose.db.yml +++ /dev/null @@ -1,38 +0,0 @@ -version: '3.7' -services: - db: - image: mariadb - user: ${CURRENT_USER} - env_file: - - sql.secrets.env - - mysql.env - networks: - - minecraft - volumes: - - './database:/var/lib/mysql:Z' - - './configs/my.cnf:/etc/mysql/my.cnf' - ulimits: - nofile: - soft: 20000 - hard: 40000 - labels: - restic-compose-backup.mariadb: true - restic-compose-backup.tags: minecraft,db,${ENVIRONMENT} - phpmyadmin: - image: phpmyadmin/phpmyadmin - environment: - PMA_HOST: db - PMA_PORT: 3306 - networks: - - minecraft - labels: - - traefik.http.routers.phpmyadmin-${ENVIRONMENT}.rule=Host(`db.${WEB_BASE_URL}`) - - traefik.http.routers.phpmyadmin-${ENVIRONMENT}.entrypoints=websecure - - traefik.http.routers.phpmyadmin-${ENVIRONMENT}.tls.certresolver=myresolver - - traefik.http.routers.phpmyadmin-${ENVIRONMENT}.tls=true - - traefik.docker.network=minecraft -networks: - minecraft: - driver: bridge -volumes: - cache: diff --git a/docker-compose.download.yml b/docker-compose.download.yml deleted file mode 100644 index eec2006..0000000 --- a/docker-compose.download.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3.7' -services: - downloads: - image: nginx:latest - volumes: - - "./downloads/files:/files" - - "./downloads/conf:/etc/nginx/conf.d" - labels: - - traefik.http.routers.downloads-${ENVIRONMENT}.rule=Host(`dl.${WEB_BASE_URL}`) - - traefik.http.routers.downloads-${ENVIRONMENT}.entrypoints=websecure - - traefik.http.routers.downloads-${ENVIRONMENT}.tls.certresolver=myresolver - - traefik.http.routers.downloads-${ENVIRONMENT}.tls=true - - traefik.docker.network=minecraft - networks: - - minecraft -networks: - minecraft: - driver: bridge diff --git a/docker-compose.dynmap.yml b/docker-compose.dynmap.yml deleted file mode 100644 index 36386a8..0000000 --- a/docker-compose.dynmap.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3.7' -services: - dynmap: - image: webdevops/php-nginx - user: ${CURRENT_USER} - environment: - WEB_DOCUMENT_INDEX: index.html - volumes: - - "./dynmap/main:/app:z" - networks: - - minecraft - labels: - - traefik.http.routers.dynmap-${ENVIRONMENT}.rule=Host(`map.${WEB_BASE_URL}`) - - traefik.http.routers.dynmap-${ENVIRONMENT}.entrypoints=websecure - - traefik.http.routers.dynmap-${ENVIRONMENT}.tls.certresolver=myresolver - - traefik.http.routers.dynmap-${ENVIRONMENT}.tls=true - - traefik.docker.network=minecraft -networks: - minecraft: - driver: bridge diff --git a/docker-compose.main.yml b/docker-compose.main.yml deleted file mode 100644 index fd2a74a..0000000 --- a/docker-compose.main.yml +++ /dev/null @@ -1,37 +0,0 @@ -version: '3.7' -services: - main: - image: itzg/minecraft-server - command: --world-dir=/data/worlds - user: ${CURRENT_USER} - restart: always - ports: - - ${QUERY_PORT:-25575}:${QUERY_PORT:-25575}/udp - environment: - LEVEL: world - SERVER_NAME: main - CFG_SERVER_NAME: main - MEMORY: ${MEMORY:-8G} - CFG_SERVER_NAME: Main - volumes: - - ./servers/main:/data:z - - ./schematics:/data/plugins/WorldEdit/schematics:z - - ./dynmap/main:/data/plugins/dynmap/web:z - - ./plugins:/plugins:ro - - ./configs/main:/config:ro - - /etc/timezone:/etc/timezone:ro - labels: - restic-compose-backup.minecraft: true - restic-compose-backup.tags: minecraft,main,${ENVIRONMENT} - restic-compose-backup.volumes.include: "servers/main" - env_file: - - sql.secrets.env - - globals.env - - server-properties.env - depends_on: - - db - networks: - - minecraft -networks: - minecraft: - driver: bridge diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml deleted file mode 100644 index 4205323..0000000 --- a/docker-compose.minimal.yml +++ /dev/null @@ -1,52 +0,0 @@ -version: '3.7' -services: - minimal: - image: itzg/minecraft-server - user: ${CURRENT_USER} - restart: always - environment: - JVM_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005" - # enable this once at the beginning to write the database credentials - # keeping this enabled will slow down your server startup - REPLACE_ENV_VARIABLES: "TRUE" - volumes: - - './servers/minimal/server:/data' - - './plugins:/plugins' - env_file: - - sql.secrets.env - - globals.env - - server-properties.env - ports: - - 5005:5005 - - 25565:25565 - networks: - - minecraft - depends_on: - - db - db: - image: mariadb - user: ${CURRENT_USER} - env_file: - - sql.secrets.env - - mysql.env - networks: - - minecraft - volumes: - - './servers/minimal/database:/var/lib/mysql:Z' - phpmyadmin: - image: phpmyadmin/phpmyadmin - environment: - PMA_HOST: db - PMA_PORT: 3306 - PMA_USER: ${DB_USER:-minecraft} - env_file: - - sql.secrets.env - networks: - - minecraft - depends_on: - - db - ports: - - 8080:80 -networks: - minecraft: - driver: bridge diff --git a/docker-compose.proxy.yml b/docker-compose.proxy.yml deleted file mode 100644 index 79139dd..0000000 --- a/docker-compose.proxy.yml +++ /dev/null @@ -1,35 +0,0 @@ -version: '3.7' -services: - proxy: - image: itzg/bungeecord - user: ${CURRENT_USER} - environment: - TYPE: ${PROXY_TYPE:-WATERFALL} - CFG_BASE_URL: ${WEB_BASE_URL} - ports: - - ${PROXY_PORT:-25565}:25577/tcp - - ${PROXY_PORT:-25565}:25577/udp - # enable to forward votifier - # - 8192:8192/tcp - volumes: - - ./configs/proxy:/config:z - - ./servers/proxy:/server:z - - ./proxy-plugins:/plugins:z - networks: - - minecraft - env_file: - - sql.secrets.env - - globals.env - labels: - - traefik.http.routers.plan-${ENVIRONMENT}.rule=Host(`plan.${WEB_BASE_URL}`) - - traefik.http.services.plan-${ENVIRONMENT}.loadbalancer.server.port=8804 - - traefik.http.routers.plan-${ENVIRONMENT}.entrypoints=websecure - - traefik.http.routers.plan-${ENVIRONMENT}.tls.certresolver=myresolver - - traefik.http.routers.plan-${ENVIRONMENT}.tls=true - - traefik.docker.network=minecraft - - restic-compose-backup.volumes=true - - restic-compose-backup.tags=minecraft,proxy,${ENVIRONMENT} - - restic-compose-backup.volumes.include="servers/proxy" -networks: - minecraft: - driver: bridge diff --git a/docker-compose.rcon.yml b/docker-compose.rcon.yml deleted file mode 100644 index 5d463a3..0000000 --- a/docker-compose.rcon.yml +++ /dev/null @@ -1,39 +0,0 @@ -version: '3.7' -services: - rcon: - image: itzg/rcon - user: ${CURRENT_USER} - environment: - RWA_WEBSOCKET_URL_SSL: wss://wss.rcon.${WEB_BASE_URL} - RWA_WEBSOCKET_URL: ws://ws.rcon.${WEB_BASE_URL} - env_file: - - rcon.env - - rcon.secrets.env - volumes: - - "./rcon:/opt/rcon-web-admin/db:z" - networks: - - minecraft - labels: - - traefik.http.routers.rcon-${ENVIRONMENT}.rule=Host(`rcon.${WEB_BASE_URL}`) - - traefik.http.services.rcon-${ENVIRONMENT}.loadbalancer.server.port=4326 - - traefik.http.routers.rcon-${ENVIRONMENT}.entrypoints=websecure - - traefik.http.routers.rcon-${ENVIRONMENT}.tls.certresolver=myresolver - - traefik.http.routers.rcon-${ENVIRONMENT}.tls=true - - traefik.http.routers.rcon-${ENVIRONMENT}.service=rcon-${ENVIRONMENT} - - - traefik.http.routers.rconws-${ENVIRONMENT}.rule=Host(`ws.rcon.${WEB_BASE_URL}`) - - traefik.http.services.rconws-${ENVIRONMENT}.loadbalancer.server.port=4327 - - traefik.http.routers.rconws-${ENVIRONMENT}.entrypoints=web - - traefik.http.routers.rconws-${ENVIRONMENT}.service=rconws-${ENVIRONMENT} - - - traefik.http.routers.rconwss-${ENVIRONMENT}.rule=Host(`wss.rcon.${WEB_BASE_URL}`) - - traefik.http.services.rconwss-${ENVIRONMENT}.loadbalancer.server.port=4327 - - traefik.http.routers.rconwss-${ENVIRONMENT}.entrypoints=websecure - - traefik.http.routers.rconwss-${ENVIRONMENT}.tls.certresolver=myresolver - - traefik.http.routers.rconwss-${ENVIRONMENT}.tls=true - - traefik.http.routers.rconwss-${ENVIRONMENT}.service=rconwss-${ENVIRONMENT} - - - traefik.docker.network=minecraft -networks: - minecraft: - driver: bridge diff --git a/docker-compose.traefik.yml b/docker-compose.traefik.yml deleted file mode 100644 index 7ec7188..0000000 --- a/docker-compose.traefik.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: "3.7" - -services: - traefik: - image: "traefik:v2.3" - command: - # - "--log.level=DEBUG" - - "--api.dashboard=true" - - "--providers.docker=true" - - "--entrypoints.web.address=:80" - - "--entrypoints.web.http.redirections.entryPoint.to=websecure" - - "--entrypoints.web.http.redirections.entryPoint.scheme=https" - - "--entrypoints.web.http.redirections.entrypoint.permanent=true" - - "--entrypoints.websecure.address=:443" - - "--certificatesresolvers.myresolver.acme.tlschallenge=true" - - "--certificatesresolvers.myresolver.acme.email=webmaster@${WEB_BASE_URL}" - - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" - ports: - - "443:443" - - "80:80" - networks: - - minecraft - volumes: - - "./web/letsencrypt:/letsencrypt" - - "/var/run/docker.sock:/var/run/docker.sock:ro" - labels: - - "traefik.http.routers.api.entrypoints=websecure" - - "traefik.http.routers.api.tls.certresolver=myresolver" - - "traefik.http.routers.api.rule=Host(`traefik.${WEB_BASE_URL}`)" - - "traefik.http.routers.api.service=api@internal" - - "traefik.http.routers.api.middlewares=auth" -networks: - minecraft: - driver: bridge diff --git a/docs/current-standards.md b/docs/current-standards.md new file mode 100644 index 0000000..3ebd269 --- /dev/null +++ b/docs/current-standards.md @@ -0,0 +1,19 @@ +# Version and deployment decisions + +Verified 2026-10-01 UTC. The research decision is adopted here for the maintained template; raw responses remain in the research ticket's evidence directory. + +The default is Paper 26.2 build 129, the latest stable Paper build. Minecraft's current release is 26.3. Paper 26.3 builds are beta, so `setup --distribution vanilla` selects the released Mojang 26.3 server. Both use Java 25. The exact software and multi-platform image pins are in [versions.env](../versions.env). [Mojang release manifest](https://piston-meta.mojang.com/mc/game/version_manifest_v2.json), [Paper build API](https://fill.papermc.io/v3/projects/paper/versions/26.2/builds/129), [Paper 26.3 channels](https://fill.papermc.io/v3/projects/paper/versions/26.3/builds), [Java requirements](https://docs.papermc.io/paper/getting-started/). + +Velocity 4.2.1-SNAPSHOT build 36 is marked STABLE by Paper's API. The suffix alone does not identify the release channel. Modern forwarding uses a shared random secret, authenticates at the proxy, and keeps the backend unpublished. A standalone server authenticates directly. [Velocity build API](https://fill.papermc.io/v3/projects/velocity/versions/4.2.1-SNAPSHOT/builds/36), [forwarding configuration](https://docs.papermc.io/velocity/player-information-forwarding/), [backend protection](https://docs.papermc.io/velocity/security/). + +The server and proxy wrappers are pinned to their Java 25 release images. Backup uses the maintained itzg sidecar with restic, internal RCON, save flush coordination and interval scheduling. MariaDB 12.3.3 is optional. NGINX serves optional static files over loopback. Each image digest identifies an index with Linux amd64 and arm64 manifests, verified in research. Runtime proof in [validation.md](validation.md) states which architecture actually ran. [Server publisher](https://github.com/itzg/docker-minecraft-server/tree/2026.9.2), [proxy publisher](https://github.com/itzg/docker-bungeecord/tree/2026.9.2), [backup implementation](https://github.com/itzg/docker-mc-backup/blob/2026.9.3/scripts/opt/backup-loop.sh), [MariaDB LTS](https://mariadb.org/mariadb-server-12-3-lts-released/). + +Retired template wiring includes Waterfall, the stale RCON web UI, public phpMyAdmin and JDWP, the old socket-discovering backup image, and Docker socket based Traefik discovery. Maintained plugins can be installed explicitly, but their presence is not a compatibility guarantee. The replacement paths and upgrade precautions are in [migration.md](migration.md). [Waterfall retirement](https://papermc.io/news/announcing-the-end-of-life-of-waterfall/), [Docker socket risks](https://docs.docker.com/engine/security/), [Docker Engine 28 loopback fix](https://docs.docker.com/engine/network/port-publishing/). + +Run `scripts/check-versions` to verify the pinned release metadata and image indexes again. Updates require reviewing the pin changes and repeating full runtime and restore validation. Floating `latest` tags and automatic software upgrades are excluded. + +## Maintained integration decisions after independent review + +The pinned backup loop performs mutating `save-on` readiness before acquiring its shared lock. Two independent runtime reviews reproduced saving being re-enabled while another job held the lock. `Dockerfile.backup` derives from the pinned upstream image and changes only that readiness seam to `list`, with exact build-time checks. Full validation overlaps two real Restic jobs and checks save-off remains active until the first is released. + +CI uses official [checkout v7.0.1](https://github.com/actions/checkout/releases/tag/v7.0.1) at `3d3c42e5aac5ba805825da76410c181273ba90b1` and [upload-artifact v7.0.1](https://github.com/actions/upload-artifact/releases/tag/v7.0.1) at `043fb46d1a93c77aae656e7c1c64a875d1fc6a0a`. Publisher release APIs and peeled tag commits were checked on 2026-10-01. Checkout requires Node24-capable runners, minimum runner2.327.1; authenticated Git within Docker actions needs2.329.0. This repository uses GitHub-hosted Ubuntu runners and normal `pull_request`, avoiding the v7 unsafe-fork `pull_request_target` opt-in. Upload jobs use separate immutable artifact names, and the GitHub.com service supports the action. Runtime validation runs on PRs as well as explicit workflow dispatch. diff --git a/docs/migration.md b/docs/migration.md new file mode 100644 index 0000000..b6f48cd --- /dev/null +++ b/docs/migration.md @@ -0,0 +1,28 @@ +# Migrating the 1.17 template + +Keep the old checkout and deployment intact. Take and restore-test a complete offline backup of its world, database, plugin data, configuration and secrets. Build the new template in a separate checkout. Setup refuses detected legacy server or secret paths and does not migrate them. + +A 1.17 world upgrade is a one-way data-format change. Follow Paper's upgrade guidance and each plugin's supported upgrade path. Rehearse with copies, including any required intermediate versions. Check world generation, player inventories, permissions, plugin behavior and SQL migrations before moving traffic. Retain a rollback copy of the old deployment; newer world data cannot safely be opened by 1.17. [Paper update guidance](https://docs.papermc.io/paper/updating/). + +## Old paths and replacements + +| Old paths | Migration action | +| --- | --- | +| `servers/`, `servers/main/`, `servers/proxy/`, `servers/minimal/server/`, `servers/minimal/database/`, `minimal/`, `worlds/` | Locate actual world and plugin data. Copy only a stopped, backed-up rehearsal world into a new `data/server/`; keep old production untouched. | +| `database/`, `mysql.env`, `sql.secrets.env`, `configs/my.cnf` | Export SQL with the old server's supported dump tool. Review compatibility before importing into optional MariaDB. Never copy a running old database directory into MariaDB 12.3. | +| `globals.env`, `server-properties.env`, `ports.env`, `.env` | Replace with explicit setup options and reviewed generated `.state/settings.env`. Remove inherited offline authentication and debug options. | +| `rcon.env`, `rcon.secrets.env`, `rcon/` | Retire the public RCON web UI. Use the new internal `scripts/minecraft command` and its freshly generated secret. | +| `backup.env`, `backup.secrets.env`, `backup/`, `configs/excludes.txt` | Keep old repositories and passwords for recovery. Initialize the new restic repository and test a new restore. The new sidecar targets only this server and has no Docker socket. | +| `configs/main/paper.yml`, `configs/main/spigot.yml`, `configs/main/bukkit.yml` | Rebuild current configs under `configs/server/`. Paper global/world settings changed since 1.17; copying old `paper.yml` is insufficient. Preserve modern forwarding generated by network setup. | +| `configs/main/commands.yml`, `help.yml`, `permissions.yml`, `wepif.yml`, `excludes.txt`, `server-icon.png` | Review custom commands/permissions and plugin support, then copy useful files explicitly. Do not carry obsolete exclude lists. | +| `configs/proxy/config.yml`, `waterfall.yml`, `modules.yml`, `locations.yml`, `excludes.txt`, `server-icon.png` | Waterfall is retired. Rebuild routing in `.state/velocity.toml`. Bungee/Waterfall plugins require Velocity replacements. | +| `plugins/`, `plugins/Plan/config.yml`, `plugins/dynmap/configuration.txt` | Replace jars with current compatible releases under `plugins/server/`. Rebuild plugin configs from those releases. Old configs may contain SQL passwords or obsolete paths. Mapping output previously under `servers/main/plugins/dynmap/web/` or `servers/minimal/server/plugins/dynmap/web/` must be regenerated by the current plugin. | +| `proxy-plugins/`, `proxy-plugins/Plan/config.yml` | Install compatible Velocity plugins under `plugins/proxy/`; rebuild their configs and database settings. | +| `dynmap/main/` including `js/`, `css/`, `images/`, `standalone/`, PHP/ASPX and generated config files | Discard the vendored old web client. Use assets generated by a current compatible mapping plugin. Keep admin access private. | +| `downloads/conf/default.conf`, `downloads/files/`, `web/` | Move approved static downloads into new `web/`. The optional NGINX profile binds loopback and adds no PHP execution. | +| `schematics/` | Preserve copies and install them in the path expected by the current editing plugin. | +| All `docker-compose.*.yml` fragments: `main`, `minimal`, `proxy`, `db`, `backup`, `dynmap`, `download`, `rcon`, `traefik` | Replace with `compose.yaml` and explicit profiles. Review external HTTPS routing separately; public admin, debug and Docker socket mounts are removed. | +| `init.sh`, `dc.sh`, `minimal.sh`, `cmd.sh`, `console.sh`, `backup.sh`, `restart.sh` | Use `scripts/minecraft` setup/start/compose/command/backup/stop. Interactive console is available through internal RCON commands. | +| `debug.sh`, `cleanup.sh`, `update.sh`, `zip-plugins.sh`, `scripts/prep-env.sh`, `scripts/utils.sh`, `lib/scripts/build.local.gradle` | Retired unsafe or stale helpers. Use explicit reviewed maintenance and your plugin project's build. No automatic data deletion, Git push or public JVM debug port remains. | + +Old secret files stay sensitive. The ignore rules retain legacy runtime and secret paths to prevent accidental commits during migration, as well as the new generated paths. Keep migration copies outside Git. Update clients, reverse proxy routes and scheduled external jobs only after the replacement passes your restore and login rehearsal. The template's disposable tests certify its own server flow, not your old plugins or production migration. diff --git a/docs/operations.md b/docs/operations.md new file mode 100644 index 0000000..fad089f --- /dev/null +++ b/docs/operations.md @@ -0,0 +1,41 @@ +# Operations + +## Files and access + +`.state/` holds the generated project identity, deployment options, Velocity config and five secrets. `data/server/` holds the world, runtime settings and installed plugins; `data/proxy/` holds Velocity downloads and plugin data. The project-scoped `database` Docker volume holds MariaDB data. `backups/` holds the encrypted restic repository. These paths, plugin inputs, and user configuration are ignored by Git. Keep their permissions and an encrypted recovery copy under your control. Compose secrets are protected local files, not an encrypted vault. + +Standalone authenticates through Mojang. Network mode authenticates through Velocity with modern forwarding; the backend has offline authentication only because its port is unpublished and its forwarding secret authenticates the proxy. RCON, SQL, query, debug and admin ports are unpublished. Other containers on the same Docker network are still inside the trust boundary. Isolate untrusted workloads and control Docker daemon access. + +## Backups and restore + +The `backup` profile runs the same job as `scripts/minecraft backup`, after server health, then every six hours. It uses RCON `save-off`, `save-all flush`, and `save-on`, including an exit trap to resume saving on failure. Concurrent jobs share the upstream backup-directory lock. The locally derived backup image changes only the pinned script's pre-lock readiness command from `save-on` to non-mutating `list`, because readiness must not enable saving during another job. `Dockerfile.backup` checks the exact expected seam and fails its build if it changes. Its image identity derives from the base digest and patch hash. Save-off, flush, save-on and the failure trap remain inside the lock; full validation deliberately overlaps two jobs. Restic encrypts the server directory, including jars and plugin data. Retention keeps seven daily, four weekly and six monthly snapshots. Inspect `compose logs backup`; a running sidecar alone does not prove successful backups. + +The server directory backup excludes cache, logs and temporary files. It does not back up MariaDB, proxy data, source configuration, or `.state/`. Keep encrypted copies of those separately, especially the restic password. For SQL plugins, use a separate authenticated `mariadb-dump --single-transaction` workflow and restore rehearsal. Copying the live database directory is not a SQL backup. Plugin writes outside Minecraft save coordination need plugin-specific handling. + +Move or replicate the encrypted repository off-host. Local backups do not protect against host loss. Keep the restic password separately from the repository. Inspect snapshots and check integrity: + +```sh +./scripts/minecraft snapshots +./scripts/minecraft compose run --rm --no-deps --entrypoint restic backup check +./scripts/minecraft restore /absolute/empty/recovery-directory --snapshot latest +``` + +Restore creates `recovery-directory/data/`. Rehearse booting that data in a separate checkout and isolated project before considering production replacement. Stop the destination server before deliberate data replacement. Never restore directly over a running world. The automated full Docker validator performs this rehearsal with a persistent scoreboard value. + +## Plugins, mapping and web + +`plugins/server/` and `plugins/proxy/` are read-only source inputs copied into their persistent plugin directories at startup. `configs/server/` copies server configs. In network mode it also contains the generated Paper forwarding secret; it is ignored and mode 0600. Keep that file's forwarding settings consistent with `.state/velocity.toml` and `.state/secrets/forwarding`. + +Install current Plan or mapping plugins only after checking publisher support for the selected Paper release. Their old bundled configs and web assets were removed. Configure Plan's current authentication and database independently; reach its admin interface over an SSH tunnel or authenticated reverse proxy. A mapping plugin can serve its own current web interface internally, or write static output under `web/` for the optional NGINX profile. The profile exposes only `127.0.0.1:8080`; `--web-port` selects another loopback port. It also serves downloads placed there. Put a maintained authenticated HTTPS proxy in front if you choose public access. The template neither configures public DNS/ACME nor mounts the Docker socket. + +With the database profile enabled, plugins use host `database`, port 3306, database and username `minecraft`, and the protected `.state/secrets/database` credential. There is no public SQL or phpMyAdmin port. The database credential is initialized once by MariaDB; changing a secret file alone does not change an existing database account. + +## Updates and deliberate reconfiguration + +Review [versions.env](../versions.env), run `scripts/check-versions`, back up, and rehearse restoration before software changes. Image and jar versions are separate pins. Renovate proposes image tag/digest updates; software versions require checking official release channels. The version verification workflow exports the official identity evidence. Repeat full validation after any pin change. Paper and Vanilla worlds may differ; do not change distribution on an existing production world without a compatibility rehearsal. + +Setup never rewrites an existing deployment with new options. For an intentional port, MOTD, memory or profile change, stop the project, make a protected copy of `.state/`, edit `.state/settings.env` and the matching values in `.state/settings.json`. MOTD literals come from `settings.json`; in network mode also update the TOML-encoded `motd`, with literal backslashes doubled for Velocity MiniMessage rendering in `.state/velocity.toml`, then run `doctor` and `start`. Standalone's published port lives in `.state/compose.yaml`; network's port comes from `GAME_PORT`. Keep those in sync. Use Compose overrides for advanced local requirements. `doctor` rejects contradictory authentication, published backend/admin ports and inconsistent generated forwarding settings. Keep the generated forwarding YAML indentation when editing it. Review resolved configuration locally; `compose config` can contain sensitive interpolated values and should not be published. + +Switching an existing deployment between standalone and proxy mode requires matching Paper, Spigot and Velocity configs as well as port changes. Rehearse it in a new checkout instead of editing production in place. Setup does not automate topology or world migrations. + +Compose always uses the validated generated project name and verifies every effective service image, including inactive profiles, before any operation. Managed deployment/pin variables and inherited `COMPOSE_*` variables cannot override those inputs. Intentional `DOCKER_HOST`, `DOCKER_CONTEXT` and Docker TLS settings remain available. Never invoke unmanaged Compose directly against this deployment. Doctor rejects host/container networking, external/non-bridge networks, privileged services and protected port publication. diff --git a/docs/proof/actions.json b/docs/proof/actions.json new file mode 100644 index 0000000..c61bd12 --- /dev/null +++ b/docs/proof/actions.json @@ -0,0 +1,16 @@ +[ + { + "repository": "actions/checkout", + "version": "v7.0.1", + "commit": "3d3c42e5aac5ba805825da76410c181273ba90b1", + "release_url": "https://github.com/actions/checkout/releases/tag/v7.0.1", + "published_at": "2026-07-20T15:10:05Z" + }, + { + "repository": "actions/upload-artifact", + "version": "v7.0.1", + "commit": "043fb46d1a93c77aae656e7c1c64a875d1fc6a0a", + "release_url": "https://github.com/actions/upload-artifact/releases/tag/v7.0.1", + "published_at": "2026-04-10T17:31:14Z" + } +] diff --git a/docs/proof/final-review/candidate-source-proof-comparison.json b/docs/proof/final-review/candidate-source-proof-comparison.json new file mode 100644 index 0000000..cb15f0d --- /dev/null +++ b/docs/proof/final-review/candidate-source-proof-comparison.json @@ -0,0 +1,12 @@ +{ + "compose.yaml": true, + "Dockerfile.backup": true, + "Dockerfile.backup.dockerignore": true, + "versions.env": true, + "scripts/check-versions": true, + "scripts/status": true, + "scripts/validate": true, + "scripts/minecraft": true, + "tests/login.py": true, + "tests/test_cli.py": true +} \ No newline at end of file diff --git a/docs/proof/final-review/checkout-tag.json b/docs/proof/final-review/checkout-tag.json new file mode 100644 index 0000000..809e1ef --- /dev/null +++ b/docs/proof/final-review/checkout-tag.json @@ -0,0 +1 @@ +{"ref":"refs/tags/v7.0.1","node_id":"MDM6UmVmMTk3ODE0NjI5OnJlZnMvdGFncy92Ny4wLjE=","url":"https://api.github.com/repos/actions/checkout/git/refs/tags/v7.0.1","object":{"sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","type":"commit","url":"https://api.github.com/repos/actions/checkout/git/commits/3d3c42e5aac5ba805825da76410c181273ba90b1"}} \ No newline at end of file diff --git a/docs/proof/final-review/ci-committed-proof-comparison.json b/docs/proof/final-review/ci-committed-proof-comparison.json new file mode 100644 index 0000000..6d86337 --- /dev/null +++ b/docs/proof/final-review/ci-committed-proof-comparison.json @@ -0,0 +1,10 @@ +{ + "summary.json": true, + "inventory-diff.json": true, + "cleanup.json": true, + "versions.env": true, + "commands.jsonl": true, + "overlap-first.log": true, + "assertions.json": true, + "overlap-second.log": true +} \ No newline at end of file diff --git a/docs/proof/final-review/cold-image-runtime/assertions.json b/docs/proof/final-review/cold-image-runtime/assertions.json new file mode 100644 index 0000000..4504311 --- /dev/null +++ b/docs/proof/final-review/cold-image-runtime/assertions.json @@ -0,0 +1,50 @@ +[ + { + "assertion": "Velocity Minecraft status", + "passed": true + }, + { + "assertion": "literal Velocity MOTD reached protocol", + "passed": true + }, + { + "assertion": "backend has no published port", + "passed": true + }, + { + "assertion": "production Velocity online authentication", + "passed": true + }, + { + "assertion": "forwarding secret reaches effective Paper config", + "passed": true + }, + { + "assertion": "Velocity downloaded artifact checksum", + "passed": true + }, + { + "assertion": "production proxy requires account authentication", + "passed": true + }, + { + "assertion": "real client enters play through authenticated modern forwarding", + "passed": true + }, + { + "assertion": "backend logged the real client join", + "passed": true + }, + { + "assertion": "direct backend client denied without forwarding", + "passed": true + }, + { + "assertion": "wrong forwarding secret denies client login", + "passed": true + }, + { + "assertion": "production online authentication restored", + "passed": true + } +] diff --git a/docs/proof/final-review/cold-image-runtime/commands.jsonl b/docs/proof/final-review/cold-image-runtime/commands.jsonl new file mode 100644 index 0000000..c54ff47 --- /dev/null +++ b/docs/proof/final-review/cold-image-runtime/commands.jsonl @@ -0,0 +1,25 @@ +{"timestamp": "2026-10-01T07:42:58.573310+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/cold-image-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 0, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_ambient_environment_cannot_redirect_project_or_pins (test_cli.SetupBoundary.test_ambient_environment_cannot_redirect_project_or_pins) ... ok\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_rejects_network_bypasses (test_cli.SetupBoundary.test_doctor_rejects_network_bypasses) ... ok\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_literal_motd_survives_setup_and_compose (test_cli.SetupBoundary.test_literal_motd_survives_setup_and_compose) ... ok\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n----------------------------------------------------------------------\nRan 9 tests in 2.802s\n\nOK\n"} +{"timestamp": "2026-10-01T07:43:01.486676+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/cold-image-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "version"], "exit": 0, "output": "Client: Docker Engine - Community\n Version: 29.8.0\n API version: 1.56\n Go version: go1.26.8\n Git commit: 88096ef\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Context: default\n\nServer: Docker Engine - Community\n Engine:\n Version: 29.8.0\n API version: 1.56 (minimum version 1.40)\n Go version: go1.26.8\n Git commit: 3ce5872\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Experimental: false\n containerd:\n Version: v2.3.5\n GitCommit: 1294c24a7da8e5a793ed378161673abe94118892\n runc:\n Version: 1.5.1\n GitCommit: v1.5.1-0-g8f2685a4\n docker-init:\n Version: 0.19.0\n GitCommit: de40ad0\n"} +{"timestamp": "2026-10-01T07:43:01.505156+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/cold-image-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "docker", "create", "--label", "com.docker.compose.project=minecraft-sentinel-a77adf4a1c66ea81", "--name", "minecraft-sentinel-a77adf4a1c66ea81", "nginx:1.30.5-alpine@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83"], "exit": 0, "output": "Unable to find image 'nginx:1.30.5-alpine@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83' locally\ndocker.io/library/nginx@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83: Pulling from library/nginx\nDigest: sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83\nStatus: Downloaded newer image for nginx@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83\n00ee8b178e93f3864f69efbe3acf820ded80699b0f8e40f9dcfa5e856d739558\n"} +{"timestamp": "2026-10-01T07:43:01.733704+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "50633", "--web-port", "39147", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--network"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": true, \"profiles\": [\"proxy\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:43:01.776817+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-2b2987d8_default Creating \n Network minecraft-2b2987d8_default Creating \n Network minecraft-2b2987d8_default Created \n Network minecraft-2b2987d8_default Created \n Container minecraft-2b2987d8-server-1 Creating \n Container minecraft-2b2987d8-server-1 Created \n Container minecraft-2b2987d8-proxy-1 Creating \n Container minecraft-2b2987d8-proxy-1 Created \n Container minecraft-2b2987d8-server-1 Starting \n Container minecraft-2b2987d8-server-1 Started \n Container minecraft-2b2987d8-server-1 Waiting \n Container minecraft-2b2987d8-server-1 Healthy \n Container minecraft-2b2987d8-proxy-1 Starting \n Container minecraft-2b2987d8-proxy-1 Started \n Container minecraft-2b2987d8-server-1 Waiting \n Container minecraft-2b2987d8-proxy-1 Waiting \n Container minecraft-2b2987d8-server-1 Healthy \n Container minecraft-2b2987d8-proxy-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:43:28.697335+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/status", "--port", "50633"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"modinfo\": {\"modList\": [], \"type\": \"FML\"}, \"players\": {\"max\": 20, \"online\": 0, \"sample\": []}, \"version\": {\"name\": \"Velocity 1.7.2-26.3\", \"protocol\": 775}}\n"} +{"timestamp": "2026-10-01T07:43:28.913304+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:43:29.120216+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "sha256sum", "/server/velocity-4.2.1-SNAPSHOT-36.jar"], "exit": 0, "output": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c /server/velocity-4.2.1-SNAPSHOT-36.jar\n"} +{"timestamp": "2026-10-01T07:43:29.528708+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 9h1_x559/velocity network/tests/login.py", "--port", "50633", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:43:29.578324+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-2b2987d8-server-1 Recreate \n Container minecraft-2b2987d8-server-1 Recreated \n Container minecraft-2b2987d8-proxy-1 Recreate \n Container minecraft-2b2987d8-proxy-1 Recreated \n Container minecraft-2b2987d8-server-1 Starting \n Container minecraft-2b2987d8-server-1 Started \n Container minecraft-2b2987d8-server-1 Waiting \n Container minecraft-2b2987d8-server-1 Healthy \n Container minecraft-2b2987d8-proxy-1 Starting \n Container minecraft-2b2987d8-proxy-1 Started \n Container minecraft-2b2987d8-server-1 Waiting \n Container minecraft-2b2987d8-proxy-1 Waiting \n Container minecraft-2b2987d8-server-1 Healthy \n Container minecraft-2b2987d8-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:43:54.540729+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 9h1_x559/velocity network/tests/login.py", "--port", "50633", "--verify-cli", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft"], "exit": 0, "output": "{\"play\": true, \"backend_list\": \"There are 1 of a max of 20 players online: ForwardProof\\n\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 1], [\"configuration\", 12], [\"configuration\", 14], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 13], [\"configuration\", 4], [\"configuration\", 3]]}\n"} +{"timestamp": "2026-10-01T07:43:56.762929+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "compose", "logs", "--no-color", "server", "proxy"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:43:51.052899650Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:43:51 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:43:51 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:43:51 WARN]: The proxy is running in offline mode! This is a security risk and you will NOT receive any support!\nproxy-1 | [07:43:51 INFO]: Loading localizations...\nproxy-1 | [07:43:51 INFO]: Loading plugins...\nproxy-1 | [07:43:51 INFO]: Loaded 1 plugins\nproxy-1 | [07:43:51 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:43:51 INFO]: Done (0.5s)!\nproxy-1 | [07:43:54 INFO]: [connected player] ForwardProof (/172.20.0.1:35550) has connected\nproxy-1 | [07:43:54 INFO]: [server connection] ForwardProof -> main has connected\nproxy-1 | [07:43:56 INFO]: [connected player] ForwardProof (/172.20.0.1:35550) has disconnected\nproxy-1 | [07:43:56 INFO]: [server connection] ForwardProof -> main has disconnected\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:43 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:43:36.367 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:43:36.371 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:43:37.933295560Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:43:38 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:43:38 INFO]: [bootstrap] Loading Pa\n[Publication excerpt; repetitive middle omitted.]\n Starting Minecraft server on *:25565\nserver-1 | [07:43:43 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:43:43 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:43:43 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:43:43 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:43:43 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:43:43 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:43:43 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:43:43 INFO]: Preparing level \"world\"\nserver-1 | [07:43:44 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:43:44 INFO]: Preparing spawn area: 100%\nserver-1 | [07:43:44 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:43:44 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:43:44 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:43:44 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:43:44 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:43:44 INFO]: Done preparing level \"world\" (0.395s)\nserver-1 | [07:43:44 INFO]: [spark] Starting background profiler...\nserver-1 | [07:43:44 INFO]: Starting remote control listener\nserver-1 | [07:43:44 INFO]: Thread RCON Listener started\nserver-1 | [07:43:44 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:43:44 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:43:44 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:43:44 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:43:44 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:44 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:44 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:44 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:44 INFO]: Running delayed init tasks\nserver-1 | [07:43:44 INFO]: Done (7.192s)! For help, type \"help\"\nserver-1 | [07:43:54 INFO]: UUID of player ForwardProof is d2c1afbf-5081-3449-8752-8558175e1427\nserver-1 | [07:43:56 INFO]: ForwardProof joined the game\nserver-1 | [07:43:56 INFO]: ForwardProof[/172.20.0.1:57714] logged in with entity id 10 at ([minecraft:overworld]-6.5, 69.0, 10.5)\nserver-1 | [07:43:56 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:56 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:56 INFO]: ForwardProof lost connection: Disconnected\nserver-1 | [07:43:56 INFO]: ForwardProof left the game\n"} +{"timestamp": "2026-10-01T07:43:56.974403+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "compose", "ps", "-q", "server"], "exit": 0, "output": "bd158a9da5388293619a35c8a7ed2e527f324f7a0309bf45359535fa2a2f6c13\n"} +{"timestamp": "2026-10-01T07:43:57.136258+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", "bd158a9da5388293619a35c8a7ed2e527f324f7a0309bf45359535fa2a2f6c13"], "exit": 0, "output": "172.20.0.2\n"} +{"timestamp": "2026-10-01T07:43:57.170110+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 9h1_x559/velocity network/tests/login.py", "--host", "172.20.0.2", "--port", "25565", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"4\\\"This server requires you to connect with Velocity.\\\"\", \"packets\": [[\"login\", 4], [\"login\", 0]]}\n"} +{"timestamp": "2026-10-01T07:43:57.229957+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-2b2987d8-server-1 Recreate \n Container minecraft-2b2987d8-server-1 Recreated \n Container minecraft-2b2987d8-server-1 Starting \n Container minecraft-2b2987d8-server-1 Started \n Container minecraft-2b2987d8-server-1 Waiting \n Container minecraft-2b2987d8-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:44:14.025763+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 9h1_x559/velocity network/tests/login.py", "--port", "50633", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"\\n\\b\\u0000\\u0005color\\u0000\\u0003red\\b\\u0000\\u0004text\\u0000:Unable to connect to main: Unable to verify player details\\u0000\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 2]]}\n"} +{"timestamp": "2026-10-01T07:44:14.112779+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-2b2987d8-server-1 Recreate \n Container minecraft-2b2987d8-server-1 Recreated \n Container minecraft-2b2987d8-proxy-1 Recreate \n Container minecraft-2b2987d8-proxy-1 Recreated \n Container minecraft-2b2987d8-server-1 Starting \n Container minecraft-2b2987d8-server-1 Started \n Container minecraft-2b2987d8-server-1 Waiting \n Container minecraft-2b2987d8-server-1 Healthy \n Container minecraft-2b2987d8-proxy-1 Starting \n Container minecraft-2b2987d8-proxy-1 Started \n Container minecraft-2b2987d8-proxy-1 Waiting \n Container minecraft-2b2987d8-server-1 Waiting \n Container minecraft-2b2987d8-server-1 Healthy \n Container minecraft-2b2987d8-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:44:37.563222+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 9h1_x559/velocity network/tests/login.py", "--port", "50633", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:44:37.611393+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:44:34.142684201Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:44:34 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:44:34 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:44:34 INFO]: Loading localizations...\nproxy-1 | [07:44:34 INFO]: Loading plugins...\nproxy-1 | [07:44:34 INFO]: Loaded 1 plugins\nproxy-1 | [07:44:34 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:44:34 INFO]: Done (0.53s)!\nproxy-1 | [07:44:37 INFO]: [initial connection] /172.20.0.1:35822 has disconnected\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:43 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:44:19.845 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:44:19.849 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:44:21.413228785Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:44:21 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:44:21 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:44:21 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:44:21 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.Me\n[Publication excerpt; repetitive middle omitted.]\nndles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:44:26 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:44:26 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:44:26 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:44:26 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:44:26 INFO]: Default game type: SURVIVAL\nserver-1 | [07:44:26 INFO]: Generating keypair\nserver-1 | [07:44:26 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:44:26 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:44:26 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:44:26 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:44:26 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:44:26 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:44:26 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:44:26 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:44:26 INFO]: Preparing level \"world\"\nserver-1 | [07:44:26 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:44:26 INFO]: Preparing spawn area: 100%\nserver-1 | [07:44:26 INFO]: Prepared spawn area in 2 ms\nserver-1 | [07:44:26 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:44:26 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:44:26 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:44:26 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:44:26 INFO]: Done preparing level \"world\" (0.300s)\nserver-1 | [07:44:26 INFO]: [spark] Starting background profiler...\nserver-1 | [07:44:27 INFO]: Starting remote control listener\nserver-1 | [07:44:27 INFO]: Thread RCON Listener started\nserver-1 | [07:44:27 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:44:27 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:44:27 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:44:27 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:44:27 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:44:27 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:44:27 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:44:27 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:44:27 INFO]: Running delayed init tasks\nserver-1 | [07:44:27 INFO]: Done (6.151s)! For help, type \"help\"\n"} +{"timestamp": "2026-10-01T07:44:37.814876+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\"ContainerName\":\"minecraft-2b2987d8-proxy-1\",\"Repository\":\"itzg/mc-proxy\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":968846183,\"Created\":\"2026-09-18T17:24:52.935406437Z\",\"LastTagTime\":\"2026-10-01T07:26:34.563926288Z\"},{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-2b2987d8-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:44:38.026979+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-2b2987d8-proxy-1 Stopping \n Container minecraft-2b2987d8-proxy-1 Stopped \n Container minecraft-2b2987d8-proxy-1 Removing \n Container minecraft-2b2987d8-proxy-1 Removed \n Container minecraft-2b2987d8-server-1 Stopping \n Container minecraft-2b2987d8-server-1 Stopped \n Container minecraft-2b2987d8-server-1 Removing \n Container minecraft-2b2987d8-server-1 Removed \n Network minecraft-2b2987d8_default Removing \n Network minecraft-2b2987d8_default Removed \n"} +{"timestamp": "2026-10-01T07:44:39.845846+00:00", "cwd": "/tmp/minecraft validation 9h1_x559/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation 9h1_x559/velocity network/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:44:40.004500+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/cold-image-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "Unable to find image 'nginx:1.30.5-alpine@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83' locally\ndocker.io/library/nginx@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83: Pulling from library/nginx\nDigest: sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83\nStatus: Downloaded newer image for nginx@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83\n00ee8b178e93f3864f69efbe3acf820ded80699b0f8e40f9dcfa5e856d739558"], "exit": 1, "output": "\nerror: no such object: Unable to find image 'nginx:1.30.5-alpine@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83' locally\ndocker.io/library/nginx@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83: Pulling from library/nginx\nDigest: sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83\nStatus: Downloaded newer image for nginx@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83\n00ee8b178e93f3864f69efbe3acf820ded80699b0f8e40f9dcfa5e856d739558\n"} +{"timestamp": "2026-10-01T07:44:40.026426+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/cold-image-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "rm", "Unable to find image 'nginx:1.30.5-alpine@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83' locally\ndocker.io/library/nginx@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83: Pulling from library/nginx\nDigest: sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83\nStatus: Downloaded newer image for nginx@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83\n00ee8b178e93f3864f69efbe3acf820ded80699b0f8e40f9dcfa5e856d739558"], "exit": 1, "output": "Error response from daemon: page not found\n"} diff --git a/docs/proof/final-review/cold-image-runtime/summary.json b/docs/proof/final-review/cold-image-runtime/summary.json new file mode 100644 index 0000000..5212bac --- /dev/null +++ b/docs/proof/final-review/cold-image-runtime/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:42:58.573295+00:00", + "mode": "fullDocker", + "passed": false, + "finished": "2026-10-01T07:44:40.043673+00:00" +} diff --git a/docs/proof/final-review/cold-image-runtime/versions.env b/docs/proof/final-review/cold-image-runtime/versions.env new file mode 100644 index 0000000..174a17e --- /dev/null +++ b/docs/proof/final-review/cold-image-runtime/versions.env @@ -0,0 +1,13 @@ +SERVER_IMAGE=itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e +PROXY_IMAGE=itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 +BACKUP_IMAGE=itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 +DATABASE_IMAGE=mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1 +WEB_IMAGE=nginx:1.30.5-alpine@sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83 +PAPER_VERSION=26.2 +PAPER_BUILD=129 +VANILLA_VERSION=26.3 +VELOCITY_VERSION=4.2.1-SNAPSHOT +VELOCITY_BUILD_ID=36 +PAPER_SHA256=b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 +VELOCITY_SHA256=62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c +VANILLA_SERVER_SHA1=33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c diff --git a/docs/proof/final-review/context-probes.json b/docs/proof/final-review/context-probes.json new file mode 100644 index 0000000..2dbb0b1 --- /dev/null +++ b/docs/proof/final-review/context-probes.json @@ -0,0 +1,20 @@ +[ + { + "excluded": "data/server/world-canary", + "exit": 1, + "passed": true, + "output": "#0 building with \"default\" instance using docker driver\n\n#1 [internal] load build definition from Dockerfile.backup\n#1 transferring dockerfile: 301B done\n#1 DONE 0.0s\n\n#2 [internal] load metadata for docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n#2 DONE 0.1s\n\n#3 [internal] load build context\n#3 transferring context: 2B done\n#3 DONE 0.0s\n\n#4 [2/2] COPY data/server/world-canary /context-probe\n#4 ERROR: failed to calculate checksum of ref 9v6680xumz2z6vcqhkqxlxvgo::oz31orglbi7dq285ns2vllfhw: \"/data/server/world-canary\": not found\n\n#5 [1/2] FROM docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n#5 resolve docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 0.0s done\n#5 CANCELED\n------\n > [2/2] COPY data/server/world-canary /context-probe:\n------\nDockerfile.backup:2\n--------------------\n 1 | FROM nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n 2 | >>> COPY data/server/world-canary /context-probe\n 3 | \n--------------------\nERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref 9v6680xumz2z6vcqhkqxlxvgo::oz31orglbi7dq285ns2vllfhw: \"/data/server/world-canary\": not found\n" + }, + { + "excluded": "backups/repository-canary", + "exit": 1, + "passed": true, + "output": "#0 building with \"default\" instance using docker driver\n\n#1 [internal] load build definition from Dockerfile.backup\n#1 transferring dockerfile: 302B done\n#1 DONE 0.0s\n\n#2 [internal] load metadata for docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n#2 DONE 0.0s\n\n#3 [internal] load build context\n#3 transferring context: 2B done\n#3 DONE 0.0s\n\n#4 [2/2] COPY backups/repository-canary /context-probe\n#4 ERROR: failed to calculate checksum of ref 9v6680xumz2z6vcqhkqxlxvgo::mpmz0nfbz3xw9kasyfo6vaeag: \"/backups/repository-canary\": not found\n\n#5 [1/2] FROM docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n#5 resolve docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 0.0s done\n#5 CANCELED\n------\n > [2/2] COPY backups/repository-canary /context-probe:\n------\nDockerfile.backup:2\n--------------------\n 1 | FROM nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n 2 | >>> COPY backups/repository-canary /context-probe\n 3 | \n--------------------\nERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref 9v6680xumz2z6vcqhkqxlxvgo::mpmz0nfbz3xw9kasyfo6vaeag: \"/backups/repository-canary\": not found\n" + }, + { + "excluded": ".state/secrets/generated-secret-canary", + "exit": 1, + "passed": true, + "output": "#0 building with \"default\" instance using docker driver\n\n#1 [internal] load build definition from Dockerfile.backup\n#1 transferring dockerfile: 315B done\n#1 DONE 0.0s\n\n#2 [internal] load metadata for docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n#2 DONE 0.0s\n\n#3 [internal] load build context\n#3 transferring context: 2B done\n#3 DONE 0.0s\n\n#4 [2/2] COPY .state/secrets/generated-secret-canary /context-probe\n#4 ERROR: failed to calculate checksum of ref 9v6680xumz2z6vcqhkqxlxvgo::yuns8ksr9hmyxgretim4056yx: \"/.state/secrets/generated-secret-canary\": not found\n\n#5 [1/2] FROM docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n#5 resolve docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 0.0s done\n#5 CANCELED\n------\n > [2/2] COPY .state/secrets/generated-secret-canary /context-probe:\n------\nDockerfile.backup:2\n--------------------\n 1 | FROM nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n 2 | >>> COPY .state/secrets/generated-secret-canary /context-probe\n 3 | \n--------------------\nERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref 9v6680xumz2z6vcqhkqxlxvgo::yuns8ksr9hmyxgretim4056yx: \"/.state/secrets/generated-secret-canary\": not found\n" + } +] \ No newline at end of file diff --git a/docs/proof/final-review/final-ci-jobs.json b/docs/proof/final-review/final-ci-jobs.json new file mode 100644 index 0000000..b72b028 --- /dev/null +++ b/docs/proof/final-review/final-ci-jobs.json @@ -0,0 +1 @@ +{"total_count":2,"jobs":[{"id":110269877197,"run_id":36831801041,"workflow_name":"Validate template","head_branch":"modernize/agent-ready-template","run_url":"https://api.github.com/repos/sVoxelDev/minecraft-server-template/actions/runs/36831801041","run_attempt":1,"node_id":"CR_kwDOE_q5Ws8AAAAZrJjLzQ","head_sha":"1b6a5eea6e8684d871e76e7bdb53a3797c88b570","url":"https://api.github.com/repos/sVoxelDev/minecraft-server-template/actions/jobs/110269877197","html_url":"https://github.com/sVoxelDev/minecraft-server-template/actions/runs/36831801041/job/110269877197","status":"completed","conclusion":"success","created_at":"2026-10-01T07:41:38Z","started_at":"2026-10-01T07:41:42Z","completed_at":"2026-10-01T07:46:05Z","name":"runtime","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2026-10-01T07:41:43Z","completed_at":"2026-10-01T07:41:43Z"},{"name":"Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1","status":"completed","conclusion":"success","number":2,"started_at":"2026-10-01T07:41:43Z","completed_at":"2026-10-01T07:41:44Z"},{"name":"Run ./scripts/validate fullDocker","status":"completed","conclusion":"success","number":3,"started_at":"2026-10-01T07:41:44Z","completed_at":"2026-10-01T07:46:02Z"},{"name":"Run actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","status":"completed","conclusion":"success","number":4,"started_at":"2026-10-01T07:46:02Z","completed_at":"2026-10-01T07:46:03Z"},{"name":"Post Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1","status":"completed","conclusion":"success","number":8,"started_at":"2026-10-01T07:46:03Z","completed_at":"2026-10-01T07:46:03Z"},{"name":"Complete job","status":"completed","conclusion":"success","number":9,"started_at":"2026-10-01T07:46:03Z","completed_at":"2026-10-01T07:46:03Z"}],"check_run_url":"https://api.github.com/repos/sVoxelDev/minecraft-server-template/check-runs/110269877197","labels":["ubuntu-24.04"],"runner_id":1000000621,"runner_name":"GitHub Actions 1000000621","runner_group_id":0,"runner_group_name":"GitHub Actions"},{"id":110269877573,"run_id":36831801041,"workflow_name":"Validate template","head_branch":"modernize/agent-ready-template","run_url":"https://api.github.com/repos/sVoxelDev/minecraft-server-template/actions/runs/36831801041","run_attempt":1,"node_id":"CR_kwDOE_q5Ws8AAAAZrJjNRQ","head_sha":"1b6a5eea6e8684d871e76e7bdb53a3797c88b570","url":"https://api.github.com/repos/sVoxelDev/minecraft-server-template/actions/jobs/110269877573","html_url":"https://github.com/sVoxelDev/minecraft-server-template/actions/runs/36831801041/job/110269877573","status":"completed","conclusion":"success","created_at":"2026-10-01T07:41:38Z","started_at":"2026-10-01T07:41:40Z","completed_at":"2026-10-01T07:41:51Z","name":"local","steps":[{"name":"Set up job","status":"completed","conclusion":"success","number":1,"started_at":"2026-10-01T07:41:41Z","completed_at":"2026-10-01T07:41:42Z"},{"name":"Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1","status":"completed","conclusion":"success","number":2,"started_at":"2026-10-01T07:41:42Z","completed_at":"2026-10-01T07:41:43Z"},{"name":"Run ./scripts/validate local","status":"completed","conclusion":"success","number":3,"started_at":"2026-10-01T07:41:43Z","completed_at":"2026-10-01T07:41:47Z"},{"name":"Run actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","status":"completed","conclusion":"success","number":4,"started_at":"2026-10-01T07:41:47Z","completed_at":"2026-10-01T07:41:48Z"},{"name":"Post Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1","status":"completed","conclusion":"success","number":8,"started_at":"2026-10-01T07:41:48Z","completed_at":"2026-10-01T07:41:49Z"},{"name":"Complete job","status":"completed","conclusion":"success","number":9,"started_at":"2026-10-01T07:41:49Z","completed_at":"2026-10-01T07:41:49Z"}],"check_run_url":"https://api.github.com/repos/sVoxelDev/minecraft-server-template/check-runs/110269877573","labels":["ubuntu-24.04"],"runner_id":1000000622,"runner_name":"GitHub Actions 1000000622","runner_group_id":0,"runner_group_name":"GitHub Actions"}]} \ No newline at end of file diff --git a/docs/proof/final-review/final-cold-runtime/assertions.json b/docs/proof/final-review/final-cold-runtime/assertions.json new file mode 100644 index 0000000..6ac6fb9 --- /dev/null +++ b/docs/proof/final-review/final-cold-runtime/assertions.json @@ -0,0 +1,58 @@ +[ + { + "assertion": "Velocity Minecraft status", + "passed": true + }, + { + "assertion": "literal Velocity MOTD reached protocol", + "passed": true + }, + { + "assertion": "backend has no published port", + "passed": true + }, + { + "assertion": "production Velocity online authentication", + "passed": true + }, + { + "assertion": "forwarding secret reaches effective Paper config", + "passed": true + }, + { + "assertion": "Velocity downloaded artifact checksum", + "passed": true + }, + { + "assertion": "production proxy requires account authentication", + "passed": true + }, + { + "assertion": "real client enters play through authenticated modern forwarding", + "passed": true + }, + { + "assertion": "backend logged the real client join", + "passed": true + }, + { + "assertion": "direct backend client denied without forwarding", + "passed": true + }, + { + "assertion": "wrong forwarding secret denies client login", + "passed": true + }, + { + "assertion": "production online authentication restored", + "passed": true + }, + { + "assertion": "unrelated stable sentinel survives contaminated cleanup", + "passed": true + }, + { + "assertion": "owned containers networks and volumes removed", + "passed": true + } +] diff --git a/docs/proof/final-review/final-cold-runtime/cleanup.json b/docs/proof/final-review/final-cold-runtime/cleanup.json new file mode 100644 index 0000000..943c2d4 --- /dev/null +++ b/docs/proof/final-review/final-cold-runtime/cleanup.json @@ -0,0 +1,3 @@ +{ + "remaining": [] +} diff --git a/docs/proof/final-review/final-cold-runtime/commands.jsonl b/docs/proof/final-review/final-cold-runtime/commands.jsonl new file mode 100644 index 0000000..a574301 --- /dev/null +++ b/docs/proof/final-review/final-cold-runtime/commands.jsonl @@ -0,0 +1,29 @@ +{"timestamp": "2026-10-01T07:46:59.228528+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-cold-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 0, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_ambient_environment_cannot_redirect_project_or_pins (test_cli.SetupBoundary.test_ambient_environment_cannot_redirect_project_or_pins) ... ok\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_rejects_network_bypasses (test_cli.SetupBoundary.test_doctor_rejects_network_bypasses) ... ok\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_literal_motd_survives_setup_and_compose (test_cli.SetupBoundary.test_literal_motd_survives_setup_and_compose) ... ok\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n----------------------------------------------------------------------\nRan 9 tests in 2.851s\n\nOK\n"} +{"timestamp": "2026-10-01T07:47:02.190727+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-cold-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "version"], "exit": 0, "output": "Client: Docker Engine - Community\n Version: 29.8.0\n API version: 1.56\n Go version: go1.26.8\n Git commit: 88096ef\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Context: default\n\nServer: Docker Engine - Community\n Engine:\n Version: 29.8.0\n API version: 1.56 (minimum version 1.40)\n Go version: go1.26.8\n Git commit: 3ce5872\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Experimental: false\n containerd:\n Version: v2.3.5\n GitCommit: 1294c24a7da8e5a793ed378161673abe94118892\n runc:\n Version: 1.5.1\n GitCommit: v1.5.1-0-g8f2685a4\n docker-init:\n Version: 0.19.0\n GitCommit: de40ad0\n"} +{"timestamp": "2026-10-01T07:47:02.209758+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-cold-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "docker", "create", "--label", "com.docker.compose.project=minecraft-sentinel-0ab9b6395c4d8249", "--name", "minecraft-sentinel-0ab9b6395c4d8249", "nginx:1.30.5-alpine@sha256:8f84ed99befc3891b8f329c5c202785278a2cfb7c25107d57fb2a134a3117433"], "exit": 0, "output": "Unable to find image 'nginx:1.30.5-alpine@sha256:8f84ed99befc3891b8f329c5c202785278a2cfb7c25107d57fb2a134a3117433' locally\ndocker.io/library/nginx@sha256:8f84ed99befc3891b8f329c5c202785278a2cfb7c25107d57fb2a134a3117433: Pulling from library/nginx\nb27cf3f7c39d: Pulling fs layer\n3d85d110b167: Pulling fs layer\ne2de96513ba9: Pulling fs layer\ne3320d02d578: Pulling fs layer\n6b4dfb2e8f8a: Pulling fs layer\n22e5a8a110ec: Pulling fs layer\nb335b7ac3a40: Pulling fs layer\n703c5424632f: Pulling fs layer\nb335b7ac3a40: Download complete\n703c5424632f: Download complete\n3d85d110b167: Download complete\ne2de96513ba9: Download complete\ne3320d02d578: Download complete\n6b4dfb2e8f8a: Download complete\n22e5a8a110ec: Download complete\ne2de96513ba9: Pull complete\ne3320d02d578: Pull complete\nb27cf3f7c39d: Download complete\nb335b7ac3a40: Pull complete\n703c5424632f: Pull complete\n3d85d110b167: Pull complete\n6b4dfb2e8f8a: Pull complete\n22e5a8a110ec: Pull complete\nb27cf3f7c39d: Pull complete\nDigest: sha256:8f84ed99befc3891b8f329c5c202785278a2cfb7c25107d57fb2a134a3117433\nStatus: Downloaded newer image for nginx@sha256:8f84ed99befc3891b8f329c5c202785278a2cfb7c25107d57fb2a134a3117433\nWARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested\n4d47c7b9b3fd04dd2e1e8a5a4bc25d94f3e9b905e6b9dab58cab8e694c00c3c8\n"} +{"timestamp": "2026-10-01T07:47:04.145763+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-cold-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "minecraft-sentinel-0ab9b6395c4d8249"], "exit": 0, "output": "4d47c7b9b3fd04dd2e1e8a5a4bc25d94f3e9b905e6b9dab58cab8e694c00c3c8\n"} +{"timestamp": "2026-10-01T07:47:04.174070+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "60789", "--web-port", "56629", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--network"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": true, \"profiles\": [\"proxy\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:47:04.215738+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-0195f8ff_default Creating \n Network minecraft-0195f8ff_default Creating \n Network minecraft-0195f8ff_default Created \n Network minecraft-0195f8ff_default Created \n Container minecraft-0195f8ff-server-1 Creating \n Container minecraft-0195f8ff-server-1 Created \n Container minecraft-0195f8ff-proxy-1 Creating \n Container minecraft-0195f8ff-proxy-1 Created \n Container minecraft-0195f8ff-server-1 Starting \n Container minecraft-0195f8ff-server-1 Started \n Container minecraft-0195f8ff-server-1 Waiting \n Container minecraft-0195f8ff-server-1 Healthy \n Container minecraft-0195f8ff-proxy-1 Starting \n Container minecraft-0195f8ff-proxy-1 Started \n Container minecraft-0195f8ff-server-1 Waiting \n Container minecraft-0195f8ff-proxy-1 Waiting \n Container minecraft-0195f8ff-server-1 Healthy \n Container minecraft-0195f8ff-proxy-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:8f84ed99befc3891b8f329c5c202785278a2cfb7c25107d57fb2a134a3117433\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:47:31.157137+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/status", "--port", "60789"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"modinfo\": {\"modList\": [], \"type\": \"FML\"}, \"players\": {\"max\": 20, \"online\": 0, \"sample\": []}, \"version\": {\"name\": \"Velocity 1.7.2-26.3\", \"protocol\": 775}}\n"} +{"timestamp": "2026-10-01T07:47:31.351323+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:47:31.560960+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "sha256sum", "/server/velocity-4.2.1-SNAPSHOT-36.jar"], "exit": 0, "output": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c /server/velocity-4.2.1-SNAPSHOT-36.jar\n"} +{"timestamp": "2026-10-01T07:47:31.969686+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation vtqhrq06/velocity network/tests/login.py", "--port", "60789", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:47:32.020767+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-0195f8ff-server-1 Recreate \n Container minecraft-0195f8ff-server-1 Recreated \n Container minecraft-0195f8ff-proxy-1 Recreate \n Container minecraft-0195f8ff-proxy-1 Recreated \n Container minecraft-0195f8ff-server-1 Starting \n Container minecraft-0195f8ff-server-1 Started \n Container minecraft-0195f8ff-server-1 Waiting \n Container minecraft-0195f8ff-server-1 Healthy \n Container minecraft-0195f8ff-proxy-1 Starting \n Container minecraft-0195f8ff-proxy-1 Started \n Container minecraft-0195f8ff-server-1 Waiting \n Container minecraft-0195f8ff-proxy-1 Waiting \n Container minecraft-0195f8ff-server-1 Healthy \n Container minecraft-0195f8ff-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:47:55.176925+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation vtqhrq06/velocity network/tests/login.py", "--port", "60789", "--verify-cli", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft"], "exit": 0, "output": "{\"play\": true, \"backend_list\": \"There are 1 of a max of 20 players online: ForwardProof\\n\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 1], [\"configuration\", 12], [\"configuration\", 14], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 13], [\"configuration\", 4], [\"configuration\", 3]]}\n"} +{"timestamp": "2026-10-01T07:47:57.888441+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "compose", "logs", "--no-color", "server", "proxy"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:47 /data'\nproxy-1 | [init] Resolving type given VELOCITY\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:47:51.696123686Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:47:51 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:47:52 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:47:52 WARN]: The proxy is running in offline mode! This is a security risk and you will NOT receive any support!\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:47:37.480 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:47:37.484 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:47:39.024984968Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:47:39 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:47:39 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:47:39 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:47:39 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserve\n[Publication excerpt; repetitive middle omitted.]\nProof -> main has connected\nproxy-1 | [07:47:57 INFO]: [connected player] ForwardProof (/172.20.0.1:57490) has disconnected\nproxy-1 | [07:47:57 INFO]: [server connection] ForwardProof -> main has disconnected\nserver-1 | [07:47:44 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:47:44 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:47:44 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:47:44 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:47:44 INFO]: Preparing level \"world\"\nserver-1 | [07:47:44 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:47:44 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:47:44 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:47:44 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:47:44 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:47:44 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:47:44 INFO]: Done preparing level \"world\" (0.299s)\nserver-1 | [07:47:44 INFO]: [spark] Starting background profiler...\nserver-1 | [07:47:44 INFO]: Starting remote control listener\nserver-1 | [07:47:44 INFO]: Thread RCON Listener started\nserver-1 | [07:47:44 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:47:44 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:47:44 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:47:44 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:47:44 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:47:44 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:47:44 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:47:44 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:47:44 INFO]: Running delayed init tasks\nserver-1 | [07:47:44 INFO]: Done (6.257s)! For help, type \"help\"\nserver-1 | [07:47:55 INFO]: UUID of player ForwardProof is d2c1afbf-5081-3449-8752-8558175e1427\nserver-1 | [07:47:57 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:47:57 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:47:57 INFO]: ForwardProof joined the game\nserver-1 | [07:47:57 INFO]: ForwardProof[/172.20.0.1:49200] logged in with entity id 9 at ([minecraft:overworld]9.5, 78.0, 3.5)\nserver-1 | [07:47:57 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:47:57 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:47:57 INFO]: ForwardProof lost connection: Disconnected\nserver-1 | [07:47:57 INFO]: ForwardProof left the game\n"} +{"timestamp": "2026-10-01T07:47:58.046379+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "compose", "ps", "-q", "server"], "exit": 0, "output": "d20c6d8b50e610204d1acc9c3c0f90aab4b6684cfd4cf70fa2856b15243aa40a\n"} +{"timestamp": "2026-10-01T07:47:58.202686+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", "d20c6d8b50e610204d1acc9c3c0f90aab4b6684cfd4cf70fa2856b15243aa40a"], "exit": 0, "output": "172.20.0.2\n"} +{"timestamp": "2026-10-01T07:47:58.218301+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation vtqhrq06/velocity network/tests/login.py", "--host", "172.20.0.2", "--port", "25565", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"4\\\"This server requires you to connect with Velocity.\\\"\", \"packets\": [[\"login\", 4], [\"login\", 0]]}\n"} +{"timestamp": "2026-10-01T07:47:58.271864+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-0195f8ff-server-1 Recreate \n Container minecraft-0195f8ff-server-1 Recreated \n Container minecraft-0195f8ff-server-1 Starting \n Container minecraft-0195f8ff-server-1 Started \n Container minecraft-0195f8ff-server-1 Waiting \n Container minecraft-0195f8ff-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:48:15.220390+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation vtqhrq06/velocity network/tests/login.py", "--port", "60789", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"\\n\\b\\u0000\\u0005color\\u0000\\u0003red\\b\\u0000\\u0004text\\u0000:Unable to connect to main: Unable to verify player details\\u0000\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 2]]}\n"} +{"timestamp": "2026-10-01T07:48:15.309555+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-0195f8ff-server-1 Recreate \n Container minecraft-0195f8ff-server-1 Recreated \n Container minecraft-0195f8ff-proxy-1 Recreate \n Container minecraft-0195f8ff-proxy-1 Recreated \n Container minecraft-0195f8ff-server-1 Starting \n Container minecraft-0195f8ff-server-1 Started \n Container minecraft-0195f8ff-server-1 Waiting \n Container minecraft-0195f8ff-server-1 Healthy \n Container minecraft-0195f8ff-proxy-1 Starting \n Container minecraft-0195f8ff-proxy-1 Started \n Container minecraft-0195f8ff-proxy-1 Waiting \n Container minecraft-0195f8ff-server-1 Waiting \n Container minecraft-0195f8ff-server-1 Healthy \n Container minecraft-0195f8ff-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:48:38.470834+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation vtqhrq06/velocity network/tests/login.py", "--port", "60789", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:48:38.519336+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:48:34.995657233Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:48:35 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:48:35 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:48:35 INFO]: Loading localizations...\nproxy-1 | [07:48:35 INFO]: Loading plugins...\nproxy-1 | [07:48:35 INFO]: Loaded 1 plugins\nproxy-1 | [07:48:35 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:48:35 INFO]: Done (0.52s)!\nproxy-1 | [07:48:38 INFO]: [initial connection] /172.20.0.1:56262 has disconnected\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:47 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:48:20.871 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:48:20.875 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:48:22.437993539Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:48:22 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:48:22 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:48:22 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:48:22 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.Me\n[Publication excerpt; repetitive middle omitted.]\nndles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:48:27 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:48:27 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:48:27 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:48:27 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:48:27 INFO]: Default game type: SURVIVAL\nserver-1 | [07:48:27 INFO]: Generating keypair\nserver-1 | [07:48:27 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:48:27 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:48:27 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:48:27 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:48:27 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:48:27 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:48:27 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:48:27 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:48:27 INFO]: Preparing level \"world\"\nserver-1 | [07:48:27 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:48:27 INFO]: Preparing spawn area: 100%\nserver-1 | [07:48:27 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:48:27 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:48:27 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:48:27 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:48:27 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:48:27 INFO]: Done preparing level \"world\" (0.309s)\nserver-1 | [07:48:28 INFO]: [spark] Starting background profiler...\nserver-1 | [07:48:28 INFO]: Starting remote control listener\nserver-1 | [07:48:28 INFO]: Thread RCON Listener started\nserver-1 | [07:48:28 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:48:28 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:48:28 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:48:28 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:48:28 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:48:28 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:48:28 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:48:28 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:48:28 INFO]: Running delayed init tasks\nserver-1 | [07:48:28 INFO]: Done (6.177s)! For help, type \"help\"\n"} +{"timestamp": "2026-10-01T07:48:38.674272+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\"ContainerName\":\"minecraft-0195f8ff-proxy-1\",\"Repository\":\"itzg/mc-proxy\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":968846183,\"Created\":\"2026-09-18T17:24:52.935406437Z\",\"LastTagTime\":\"2026-10-01T07:26:34.563926288Z\"},{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-0195f8ff-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:48:38.879125+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-0195f8ff-proxy-1 Stopping \n Container minecraft-0195f8ff-proxy-1 Stopped \n Container minecraft-0195f8ff-proxy-1 Removing \n Container minecraft-0195f8ff-proxy-1 Removed \n Container minecraft-0195f8ff-server-1 Stopping \n Container minecraft-0195f8ff-server-1 Stopped \n Container minecraft-0195f8ff-server-1 Removing \n Container minecraft-0195f8ff-server-1 Removed \n Network minecraft-0195f8ff_default Removing \n Network minecraft-0195f8ff_default Removed \n"} +{"timestamp": "2026-10-01T07:48:40.588392+00:00", "cwd": "/tmp/minecraft validation vtqhrq06/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation vtqhrq06/velocity network/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:48:40.747781+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-cold-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "minecraft-sentinel-0ab9b6395c4d8249"], "exit": 0, "output": "4d47c7b9b3fd04dd2e1e8a5a4bc25d94f3e9b905e6b9dab58cab8e694c00c3c8\n"} +{"timestamp": "2026-10-01T07:48:40.763579+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-cold-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "rm", "minecraft-sentinel-0ab9b6395c4d8249"], "exit": 0, "output": "minecraft-sentinel-0ab9b6395c4d8249\n"} +{"timestamp": "2026-10-01T07:48:40.858109+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-cold-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-0195f8ff"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:48:40.873738+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-cold-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-0195f8ff"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:48:40.889284+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-cold-fixture", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-0195f8ff"], "exit": 0, "output": ""} diff --git a/docs/proof/final-review/final-cold-runtime/summary.json b/docs/proof/final-review/final-cold-runtime/summary.json new file mode 100644 index 0000000..db636b0 --- /dev/null +++ b/docs/proof/final-review/final-cold-runtime/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:46:59.228511+00:00", + "mode": "fullDocker", + "passed": true, + "finished": "2026-10-01T07:48:40.956235+00:00" +} diff --git a/docs/proof/final-review/final-cold-runtime/versions.env b/docs/proof/final-review/final-cold-runtime/versions.env new file mode 100644 index 0000000..9a01778 --- /dev/null +++ b/docs/proof/final-review/final-cold-runtime/versions.env @@ -0,0 +1,13 @@ +SERVER_IMAGE=itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e +PROXY_IMAGE=itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 +BACKUP_IMAGE=itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 +DATABASE_IMAGE=mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1 +WEB_IMAGE=nginx:1.30.5-alpine@sha256:8f84ed99befc3891b8f329c5c202785278a2cfb7c25107d57fb2a134a3117433 +PAPER_VERSION=26.2 +PAPER_BUILD=129 +VANILLA_VERSION=26.3 +VELOCITY_VERSION=4.2.1-SNAPSHOT +VELOCITY_BUILD_ID=36 +PAPER_SHA256=b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 +VELOCITY_SHA256=62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c +VANILLA_SERVER_SHA1=33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c diff --git a/docs/proof/final-review/final-committed-proof-comparison.json b/docs/proof/final-review/final-committed-proof-comparison.json new file mode 100644 index 0000000..cb15f0d --- /dev/null +++ b/docs/proof/final-review/final-committed-proof-comparison.json @@ -0,0 +1,12 @@ +{ + "compose.yaml": true, + "Dockerfile.backup": true, + "Dockerfile.backup.dockerignore": true, + "versions.env": true, + "scripts/check-versions": true, + "scripts/status": true, + "scripts/validate": true, + "scripts/minecraft": true, + "tests/login.py": true, + "tests/test_cli.py": true +} \ No newline at end of file diff --git a/docs/proof/final-review/final-runtime/assertions.json b/docs/proof/final-review/final-runtime/assertions.json new file mode 100644 index 0000000..428c80a --- /dev/null +++ b/docs/proof/final-review/final-runtime/assertions.json @@ -0,0 +1,182 @@ +[ + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "custom MOTD reached protocol", + "passed": true + }, + { + "assertion": "Paper exact build", + "passed": true + }, + { + "assertion": "Paper downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective standalone authentication and query settings", + "passed": true + }, + { + "assertion": "standalone requires account authentication", + "passed": true + }, + { + "assertion": "wrong RCON password denied", + "passed": true + }, + { + "assertion": "world survives container recreation", + "passed": true + }, + { + "assertion": "encrypted snapshot created", + "passed": true + }, + { + "assertion": "backup flushed world and resumed saves", + "passed": true + }, + { + "assertion": "scheduled backup interval active", + "passed": true + }, + { + "assertion": "backup failure is reported", + "passed": true + }, + { + "assertion": "backup failure resumes automatic saving", + "passed": true + }, + { + "assertion": "inner Restic failure returns nonzero with useful output", + "passed": true + }, + { + "assertion": "inner Restic failure resumes saves", + "passed": true + }, + { + "assertion": "first backup holds lock after flush", + "passed": true + }, + { + "assertion": "second backup completed nonmutating readiness while first locked", + "passed": true + }, + { + "assertion": "overlap cannot enable saving while first holds lock", + "passed": true + }, + { + "assertion": "overlap-first succeeded", + "passed": true + }, + { + "assertion": "overlap-second succeeded", + "passed": true + }, + { + "assertion": "both overlapping backups resume saves", + "passed": true + }, + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "restored server contains snapshot world", + "passed": true + }, + { + "assertion": "database authenticates and round trips data", + "passed": true + }, + { + "assertion": "database survives recreation", + "passed": true + }, + { + "assertion": "database wrong password denied", + "passed": true + }, + { + "assertion": "optional web serves files", + "passed": true + }, + { + "assertion": "26.3 Minecraft status", + "passed": true + }, + { + "assertion": "Vanilla RCON works", + "passed": true + }, + { + "assertion": "Vanilla downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective Vanilla authentication and query settings", + "passed": true + }, + { + "assertion": "Velocity Minecraft status", + "passed": true + }, + { + "assertion": "literal Velocity MOTD reached protocol", + "passed": true + }, + { + "assertion": "backend has no published port", + "passed": true + }, + { + "assertion": "production Velocity online authentication", + "passed": true + }, + { + "assertion": "forwarding secret reaches effective Paper config", + "passed": true + }, + { + "assertion": "Velocity downloaded artifact checksum", + "passed": true + }, + { + "assertion": "production proxy requires account authentication", + "passed": true + }, + { + "assertion": "real client enters play through authenticated modern forwarding", + "passed": true + }, + { + "assertion": "backend logged the real client join", + "passed": true + }, + { + "assertion": "direct backend client denied without forwarding", + "passed": true + }, + { + "assertion": "wrong forwarding secret denies client login", + "passed": true + }, + { + "assertion": "production online authentication restored", + "passed": true + }, + { + "assertion": "unrelated stable sentinel survives contaminated cleanup", + "passed": true + }, + { + "assertion": "owned containers networks and volumes removed", + "passed": true + } +] diff --git a/docs/proof/final-review/final-runtime/cleanup.json b/docs/proof/final-review/final-runtime/cleanup.json new file mode 100644 index 0000000..943c2d4 --- /dev/null +++ b/docs/proof/final-review/final-runtime/cleanup.json @@ -0,0 +1,3 @@ +{ + "remaining": [] +} diff --git a/docs/proof/final-review/final-runtime/commands.jsonl b/docs/proof/final-review/final-runtime/commands.jsonl new file mode 100644 index 0000000..75f4124 --- /dev/null +++ b/docs/proof/final-review/final-runtime/commands.jsonl @@ -0,0 +1,93 @@ +{"timestamp": "2026-10-01T07:46:52.155352+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 0, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_ambient_environment_cannot_redirect_project_or_pins (test_cli.SetupBoundary.test_ambient_environment_cannot_redirect_project_or_pins) ... ok\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_rejects_network_bypasses (test_cli.SetupBoundary.test_doctor_rejects_network_bypasses) ... ok\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_literal_motd_survives_setup_and_compose (test_cli.SetupBoundary.test_literal_motd_survives_setup_and_compose) ... ok\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n----------------------------------------------------------------------\nRan 9 tests in 2.785s\n\nOK\n"} +{"timestamp": "2026-10-01T07:46:55.044315+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "version"], "exit": 0, "output": "Client: Docker Engine - Community\n Version: 29.8.0\n API version: 1.56\n Go version: go1.26.8\n Git commit: 88096ef\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Context: default\n\nServer: Docker Engine - Community\n Engine:\n Version: 29.8.0\n API version: 1.56 (minimum version 1.40)\n Go version: go1.26.8\n Git commit: 3ce5872\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Experimental: false\n containerd:\n Version: v2.3.5\n GitCommit: 1294c24a7da8e5a793ed378161673abe94118892\n runc:\n Version: 1.5.1\n GitCommit: v1.5.1-0-g8f2685a4\n docker-init:\n Version: 0.19.0\n GitCommit: de40ad0\n"} +{"timestamp": "2026-10-01T07:46:55.063153+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "docker", "create", "--label", "com.docker.compose.project=minecraft-sentinel-809709cf79755181", "--name", "minecraft-sentinel-809709cf79755181", "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94"], "exit": 0, "output": "c4af33f0d8a2e745ea04a364a4fe8a311146cf8c5429e46f79d0edea75da5e9b\n"} +{"timestamp": "2026-10-01T07:46:55.312386+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "minecraft-sentinel-809709cf79755181"], "exit": 0, "output": "c4af33f0d8a2e745ea04a364a4fe8a311146cf8c5429e46f79d0edea75da5e9b\n"} +{"timestamp": "2026-10-01T07:46:55.340587+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "39527", "--web-port", "52093", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--profile", "backup", "--profile", "database", "--profile", "web"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [\"backup\", \"database\", \"web\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:46:55.382751+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "39527", "--web-port", "52093", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--profile", "backup", "--profile", "database", "--profile", "web", "--start"], "exit": 0, "output": " Network minecraft-1e4b2078_default Creating \n Volume minecraft-1e4b2078_database Creating \n Network minecraft-1e4b2078_default Creating \n Volume minecraft-1e4b2078_database Creating \n Volume minecraft-1e4b2078_database Created \n Volume minecraft-1e4b2078_database Created \n Network minecraft-1e4b2078_default Created \n Network minecraft-1e4b2078_default Created \n Container minecraft-1e4b2078-web-1 Creating \n Container minecraft-1e4b2078-server-1 Creating \n Container minecraft-1e4b2078-database-1 Creating \n Container minecraft-1e4b2078-server-1 Created \n Container minecraft-1e4b2078-backup-1 Creating \n Container minecraft-1e4b2078-database-1 Created \n Container minecraft-1e4b2078-web-1 Created \n Container minecraft-1e4b2078-backup-1 Created \n Container minecraft-1e4b2078-server-1 Starting \n Container minecraft-1e4b2078-web-1 Starting \n Container minecraft-1e4b2078-database-1 Starting \n Container minecraft-1e4b2078-server-1 Started \n Container minecraft-1e4b2078-server-1 Waiting \n Container minecraft-1e4b2078-web-1 Started \n Container minecraft-1e4b2078-database-1 Started \n Container minecraft-1e4b2078-server-1 Healthy \n Container minecraft-1e4b2078-backup-1 Starting \n Container minecraft-1e4b2078-backup-1 Started \n Container minecraft-1e4b2078-database-1 Waiting \n Container minecraft-1e4b2078-web-1 Waiting \n Container minecraft-1e4b2078-server-1 Waiting \n Container minecraft-1e4b2078-backup-1 Waiting \n Container minecraft-1e4b2078-backup-1 Healthy \n Container minecraft-1e4b2078-web-1 Healthy \n Container minecraft-1e4b2078-server-1 Healthy \n Container minecraft-1e4b2078-database-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"distribution\": \"paper\", \"network\": false, \"setup\": \"unchanged\"}\n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:47:17.348897+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/status", "--port", "39527"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:47:17.381766+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 2 1001 1002 4096 Oct 1 07:46 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | \u001b[39m[mc-image-helper] 07:46:57.827 INFO : Downloaded /data/paper-26.2-129.jar\nserver-1 | \u001b[0;39m[init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:47:00.479 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Applying patches\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:47:06.508084741Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:47:06 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:47:06 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:47:06 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:47:06 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:47:09 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:47:09 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:47:09 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 286.1ms\nserver-1 | [07:47:10 INFO]: Found new data pack paper, loading it automatically\nserver-1 | [07:47:10 INFO]: No existing world data, creating new world\nserver-1 | [07:47:11 INFO]: Loaded 1585 recipes\nserver-1 | [07:47:11 INFO]: Loaded 1688 advancements\nserver-1 | [07:47:11 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:47:11 INFO]: Loading properties\nserver-1 | [07:47:11 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:47:11 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:47:11 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:47:11 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:47:11 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:47:11 INFO]: Default game type: SURVIVAL\nserver-1 | [07:47:11 INFO]: Generating keypair\nserver-1 | [07:47:11 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:47:11 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:47:11 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:47:11 INFO]: Preparing level \"world\"\nserver-1 | [07:47:12 INFO]: Selecting spawn point for level 'minecraft:overworld'...\nserver-1 | [07:47:13 INFO]: Selecting spawn point for level 'minecraft:the_nether'...\nserver-1 | [07:47:13 INFO]: Selecting spawn point for level 'minecraft:the_end'...\nserver-1 | [07:47:13 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:47:13 INFO]: Preparing spawn area: 100%\nserver-1 | [07:47:13 INFO]: Prepared spawn area in 1843 ms\nserver-1 | [07:47:13 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:47:13 INFO]: Preparing spawn area: 100%\nserver-1 | [07:47:13 INFO]: Prepared spawn area in 404 ms\nserver-1 | [07:47:13 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:47:13 INFO]: Preparing spawn area: 100%\nserver-1 | [07:47:13 INFO]: Prepared spawn area in 103 ms\nserver-1 | [07:47:13 INFO]: Done preparing level \"world\" (2.088s)\nserver-1 | [07:47:13 INFO]: [spark] Starting background profiler...\nserver-1 | [07:47:14 INFO]: Starting remote control listener\nserver-1 | [07:47:14 INFO]: Thread RCON Listener started\nserver-1 | [07:47:14 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:47:14 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:47:14 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:47:14 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:47:14 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:47:14 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:47:14 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:47:14 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:47:14 INFO]: Running delayed init tasks\nserver-1 | [07:47:14 INFO]: Done (8.133s)! For help, type \"help\"\nserver-1 | [07:47:14 INFO]: *************************************************************************************\nserver-1 | [07:47:14 INFO]: This is the first time you're starting this server.\nserver-1 | [07:47:14 INFO]: It's recommended you read our 'Getting Started' documentation for guidance.\nserver-1 | [07:47:14 INFO]: View this and more helpful information here: https://docs.papermc.io/paper/next-steps\nserver-1 | [07:47:14 INFO]: *************************************************************************************\nserver-1 | [07:47:17 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:47:17 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:47:17.538141+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sha256sum", "/data/paper-26.2-129.jar"], "exit": 0, "output": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 /data/paper-26.2-129.jar\n"} +{"timestamp": "2026-10-01T07:47:17.796768+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:47:17.953957+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 47pq03dg/stable paper/tests/login.py", "--port", "39527", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:47:18.002571+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:47:18.209586+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "rcon-cli", "--password", "wrong", "list"], "exit": 1, "output": "2026/10/01 07:47:18 Failed to connect to RCON serverrcon: authentication failed\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-1e4b2078', '--project-directory', '/tmp/minecraft validation 47pq03dg/stable paper', '--env-file', '/tmp/minecraft validation 47pq03dg/stable paper/versions.env', '--env-file', '/tmp/minecraft validation 47pq03dg/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation 47pq03dg/stable paper/compose.yaml', '-f', '/tmp/minecraft validation 47pq03dg/stable paper/.state/compose.yaml', 'exec', '-T', 'server', 'rcon-cli', '--password', 'wrong', 'list']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:47:18.420782+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "command", "scoreboard objectives add proof dummy"], "exit": 0, "output": "Created new objective [proof]\n"} +{"timestamp": "2026-10-01T07:47:18.634631+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 42"], "exit": 0, "output": "Set [proof] for Proof to 42\n"} +{"timestamp": "2026-10-01T07:47:18.839104+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "command", "save-all flush"], "exit": 0, "output": "Saving the game (this may take a moment!)Saved the game\n"} +{"timestamp": "2026-10-01T07:47:19.115401+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-1e4b2078-server-1 Recreate \n Container minecraft-1e4b2078-server-1 Recreated \n Container minecraft-1e4b2078-server-1 Starting \n Container minecraft-1e4b2078-server-1 Started \n Container minecraft-1e4b2078-server-1 Waiting \n Container minecraft-1e4b2078-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:47:39.173361+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:47:39.382010+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "backup"], "exit": 0, "output": " Container minecraft-1e4b2078-backup-run-2f6a54c7775b Creating \n Container minecraft-1e4b2078-backup-run-2f6a54c7775b Created \ntime=\"2026-10-01T07:47:39Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:47:40+0000 INFO Repository already initialized\n2026-10-01T07:47:40+0000 INFO Checking for stale locks\n2026-10-01T07:47:41+0000 INFO Checking repo integrity\n2026-10-01T07:47:41+0000 INFO waiting initial delay of 0...\n2026-10-01T07:47:41+0000 INFO waiting for rcon readiness...\n2026-10-01T07:47:41+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:47:41+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:47:41+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:47:41+0000 INFO Command executed successfully sync\n2026-10-01T07:47:41+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:47:42+0000 INFO using parent snapshot dbeaae43\n2026-10-01T07:47:42+0000 INFO \n2026-10-01T07:47:42+0000 INFO Files: 0 new, 43 changed, 136 unmodified\n2026-10-01T07:47:42+0000 INFO Dirs: 0 new, 23 changed, 286 unmodified\n2026-10-01T07:47:42+0000 INFO Added to the repository: 36.306 KiB (16.207 KiB stored)\n2026-10-01T07:47:42+0000 INFO \n2026-10-01T07:47:42+0000 INFO processed 179 files, 174.536 MiB in 0:00\n2026-10-01T07:47:42+0000 INFO snapshot 086b8688 saved\n2026-10-01T07:47:42+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:47:43.528777+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "snapshots"], "exit": 0, "output": " Container minecraft-1e4b2078-backup-run-52d40d3571b2 Creating \n Container minecraft-1e4b2078-backup-run-52d40d3571b2 Created \n[{\"time\":\"2026-10-01T07:47:21.489252466Z\",\"tree\":\"d56d4b59ff929c77b94d37a6f75926062aadd10cd4808e091e076263cf275fb5\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:47:21.489252466Z\",\"backup_end\":\"2026-10-01T07:47:23.600193624Z\",\"files_new\":179,\"files_changed\":0,\"files_unmodified\":0,\"dirs_new\":309,\"dirs_changed\":0,\"dirs_unmodified\":0,\"data_blobs\":272,\"tree_blobs\":308,\"data_added\":183182814,\"data_added_packed\":167942838,\"total_files_processed\":179,\"total_bytes_processed\":183013915},\"id\":\"dbeaae4347c03f9c98a39b7e9a8c1be7a0611f6c11e417a903fcf5f0e909bee9\",\"short_id\":\"dbeaae43\"},{\"time\":\"2026-10-01T07:47:41.872391245Z\",\"parent\":\"dbeaae4347c03f9c98a39b7e9a8c1be7a0611f6c11e417a903fcf5f0e909bee9\",\"tree\":\"08f3e835f809df2a860d42823624f14d35c395b1a4abde9091ec356943d32039\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:47:41.872391245Z\",\"backup_end\":\"2026-10-01T07:47:42.606573955Z\",\"files_new\":0,\"files_changed\":43,\"files_unmodified\":136,\"dirs_new\":0,\"dirs_changed\":23,\"dirs_unmodified\":286,\"data_blobs\":9,\"tree_blobs\":23,\"data_added\":37177,\"data_added_packed\":16596,\"total_files_processed\":179,\"total_bytes_processed\":183013913},\"id\":\"086b86885dccea7623e3286d1a428183f0f10da4fd2a85c3b27382ddb61f9227\",\"short_id\":\"086b8688\"}]\n"} +{"timestamp": "2026-10-01T07:47:44.791626+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server", "backup"], "exit": 0, "output": "backup-1 | time=\"2026-10-01T07:47:16Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:47:16+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:47:19+0000 INFO created restic repository 47a5afddae at /backups/repository\nbackup-1 | 2026-10-01T07:47:19+0000 INFO \nbackup-1 | 2026-10-01T07:47:19+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:47:19+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:47:19+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:47:19+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:47:19+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:47:19+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:47:19+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:47:19+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:47:21+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:47:21+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:47:22+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:47:23+0000 INFO \nbackup-1 | 2026-10-01T07:47:23+0000 INFO Files: 179 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:47:23+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:47:23+0000 INFO Added to the repository: 174.697 MiB (160.163 MiB stored)\nbackup-1 | 2026-10-01T07:47:23+0000 INFO \nbackup-1 | 2026-10-01T07:47:23+0000 INFO processed 179 files, 174.536 MiB in 0:02\nbackup-1 | 2026-10-01T07:47:23+0000 INFO snapshot dbeaae43 saved\nbackup-1 | 2026-10-01T07:47:23+0000 ERROR Unable to execute rcon-cli save-on - try 0/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:47:23+0000 ERROR Failure reason: 2026/10/01 07:47:23 Failed to connect to RCON serverdial tcp 172.19.0.2:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:47:28+0000 ERROR Unable to execute rcon-cli save-on - try 1/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:47:28+0000 ERROR Failure reason: 2026/10/01 07:47:28 Failed to connect to RCON serverdial tcp 172.19.0.2:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:47:33+0000 ERROR Unable to execute rcon-cli save-on - try 2/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:47:33+0000 ERROR Failure reason: 2026/10/01 07:47:33 Failed to connect to RCON serverdial tcp 172.19.0.2:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:47:38+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:47:39+0000 INFO sleeping 6h...\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:47 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9e\n[Publication excerpt; repetitive middle omitted.]\n: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:47:33 INFO]: Preparing level \"world\"\nserver-1 | [07:47:34 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:47:34 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:47:34 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:47:34 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:47:34 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:47:34 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:47:34 INFO]: Done preparing level \"world\" (0.321s)\nserver-1 | [07:47:34 INFO]: [spark] Starting background profiler...\nserver-1 | [07:47:34 INFO]: Starting remote control listener\nserver-1 | [07:47:34 INFO]: Thread RCON Listener started\nserver-1 | [07:47:34 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:47:34 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:47:34 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:47:34 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:47:34 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:47:34 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:47:34 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:47:34 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:47:34 INFO]: Running delayed init tasks\nserver-1 | [07:47:34 INFO]: Done (6.135s)! For help, type \"help\"\nserver-1 | [07:47:38 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:47:38 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:47:39 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:47:39 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:47:41 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:47:41 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:47:41 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:47:41 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:47:41 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:47:41 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:47:41 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:47:41 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:47:41 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:47:41 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:47:41 INFO]: [Rcon: Saved the game]\nserver-1 | [07:47:41 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:47:42 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:47:42 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:47:42 INFO]: Thread RCON Client /172.19.0.6 shutting down\n"} +{"timestamp": "2026-10-01T07:47:45.016726+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "PRE_BACKUP_SCRIPT=exit 73", "backup"], "exit": 1, "output": " Container minecraft-1e4b2078-backup-run-7082ef4baf25 Creating \n Container minecraft-1e4b2078-backup-run-7082ef4baf25 Created \ntime=\"2026-10-01T07:47:45Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:47:46+0000 INFO Repository already initialized\n2026-10-01T07:47:46+0000 INFO Checking for stale locks\n2026-10-01T07:47:46+0000 INFO Checking repo integrity\n2026-10-01T07:47:47+0000 INFO waiting initial delay of 0...\n2026-10-01T07:47:47+0000 INFO waiting for rcon readiness...\n2026-10-01T07:47:47+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:47:47+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:47:47+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:47:47+0000 INFO Command executed successfully sync\n2026-10-01T07:47:47+0000 INFO Command executed successfully rcon-cli save-on\n\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-1e4b2078', '--project-directory', '/tmp/minecraft validation 47pq03dg/stable paper', '--env-file', '/tmp/minecraft validation 47pq03dg/stable paper/versions.env', '--env-file', '/tmp/minecraft validation 47pq03dg/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation 47pq03dg/stable paper/compose.yaml', '-f', '/tmp/minecraft validation 47pq03dg/stable paper/.state/compose.yaml', 'run', '--rm', '--no-deps', '-e', 'BACKUP_INTERVAL=0', '-e', 'INITIAL_DELAY=0', '-e', 'PRE_BACKUP_SCRIPT=exit 73', 'backup']' returned non-zero exit status 73.\"}\n"} +{"timestamp": "2026-10-01T07:47:47.627229+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:47:47.833071+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "backup"], "exit": 1, "output": "{\"error\": \"Backup reported an error; inspect service logs.\"}\n Container minecraft-1e4b2078-backup-run-401785582cf2 Creating \n Container minecraft-1e4b2078-backup-run-401785582cf2 Created \ntime=\"2026-10-01T07:47:48Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:47:48+0000 INFO Repository already initialized\n2026-10-01T07:47:48+0000 INFO Checking for stale locks\n2026-10-01T07:47:49+0000 INFO Checking repo integrity\n2026-10-01T07:47:50+0000 INFO waiting initial delay of 0...\n2026-10-01T07:47:50+0000 INFO waiting for rcon readiness...\n2026-10-01T07:47:50+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:47:50+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:47:50+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:47:50+0000 INFO Command executed successfully sync\n2026-10-01T07:47:50+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:47:50+0000 INFO invalid argument \"invalid-proof\" for \"--limit-upload\" flag: strconv.ParseInt: parsing \"invalid-proof\": invalid syntax\n2026-10-01T07:47:50+0000 ERROR Backup failed with exit code 1\n2026-10-01T07:47:50+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:47:51.105197+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:47:56.122045+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "command", "save-off"], "exit": 0, "output": "Saving is already turned off\n"} +{"timestamp": "2026-10-01T07:47:59.722882+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "-e", "PRE_BACKUP_SCRIPT=touch /backups/first-locked; timeout 60 sh -c 'until test -f /backups/release-first; do sleep 0.2; done'", "backup"], "exit": 0, "output": " Container minecraft-1e4b2078-backup-run-0ce8c25ae657 Creating \n Container minecraft-1e4b2078-backup-run-0ce8c25ae657 Created \ntime=\"2026-10-01T07:47:51Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:47:52+0000 INFO Repository already initialized\n2026-10-01T07:47:52+0000 INFO Checking for stale locks\n2026-10-01T07:47:52+0000 INFO Checking repo integrity\n2026-10-01T07:47:53+0000 INFO waiting initial delay of 0...\n2026-10-01T07:47:53+0000 INFO waiting for rcon readiness...\n2026-10-01T07:47:53+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:47:53+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:47:53+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:47:53+0000 INFO Command executed successfully sync\n2026-10-01T07:47:56+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:47:57+0000 INFO using parent snapshot 086b8688\n2026-10-01T07:47:57+0000 INFO \n2026-10-01T07:47:57+0000 INFO Files: 0 new, 15 changed, 164 unmodified\n2026-10-01T07:47:57+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:47:57+0000 INFO Added to the repository: 31.441 KiB (13.132 KiB stored)\n2026-10-01T07:47:57+0000 INFO \n2026-10-01T07:47:57+0000 INFO processed 179 files, 174.536 MiB in 0:00\n2026-10-01T07:47:57+0000 INFO snapshot 964f0b2a saved\n2026-10-01T07:47:57+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:47:58+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:47:58+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:47:58+0000 INFO keep 2 snapshots:\n2026-10-01T07:47:58+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:47:58+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:47:58+0000 INFO dbeaae43 2026-10-01 07:47:21 minecraft mc_backups,server oldest daily snapshot /data 174.536 MiB\n2026-10-01T07:47:58+0000 INFO oldest weekly snapshot\n2026-10-01T07:47:58+0000 INFO oldest monthly snapshot\n2026-10-01T07:47:58+0000 INFO 964f0b2a 2026-10-01 07:47:56 minecraft mc_backups,server daily snapshot /data 174.536 MiB\n2026-10-01T07:47:58+0000 INFO weekly snapshot\n2026-10-01T07:47:58+0000 INFO monthly snapshot\n2026-10-01T07:47:58+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:47:58+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:47:58+0000 INFO 2 snapshots\n2026-10-01T07:47:58+0000 INFO \n2026-10-01T07:47:58+0000 INFO remove 1 snapshots:\n2026-10-01T07:47:58+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:47:58+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:47:58+0000 INFO 086b8688 2026-10-01 07:47:41 minecraft mc_backups,server /data 174.536 MiB\n2026-10-01T07:47:58+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:47:58+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:47:58+0000 INFO 1 snapshots\n2026-10-01T07:47:58+0000 INFO \n2026-10-01T07:47:58+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:47:58+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:47:58+0000 INFO loading all snapshots...\n2026-10-01T07:47:58+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:47:58+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:47:58+0000 INFO searching used packs...\n2026-10-01T07:47:58+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:47:58+0000 INFO [0:00] 100.00% 15 / 15 packs processed\n2026-10-01T07:47:58+0000 INFO \n2026-10-01T07:47:58+0000 INFO to repack: 32 blobs / 16.277 KiB\n2026-10-01T07:47:58+0000 INFO this removes: 24 blobs / 12.026 KiB\n2026-10-01T07:47:58+0000 INFO to delete: 0 blobs / 0 B\n2026-10-01T07:47:58+0000 INFO total prune: 24 blobs / 12.026 KiB\n2026-10-01T07:47:58+0000 INFO remaining: 613 blobs / 160.154 MiB\n2026-10-01T07:47:58+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:47:58+0000 INFO \n2026-10-01T07:47:58+0000 INFO repacking packs\n2026-10-01T07:47:58+0000 INFO [0:00] 100.00% 2 / 2 packs repacked\n2026-10-01T07:47:58+0000 INFO rebuilding index\n2026-10-01T07:47:58+0000 INFO [0:00] 100.00% 4 / 4 indexes processed\n2026-10-01T07:47:58+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted\n2026-10-01T07:47:58+0000 INFO removing 2 old packs\n2026-10-01T07:47:58+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:47:58+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:48:05.647570+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "backup"], "exit": 0, "output": " Container minecraft-1e4b2078-backup-run-2169f5739913 Creating \n Container minecraft-1e4b2078-backup-run-2169f5739913 Created \ntime=\"2026-10-01T07:47:54Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:47:54+0000 INFO Repository already initialized\n2026-10-01T07:47:54+0000 INFO Checking for stale locks\n2026-10-01T07:47:55+0000 INFO Checking repo integrity\n2026-10-01T07:47:56+0000 INFO waiting initial delay of 0...\n2026-10-01T07:47:56+0000 INFO waiting for rcon readiness...\n2026-10-01T07:47:56+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:47:57+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:47:57+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:47:57+0000 INFO Command executed successfully sync\n2026-10-01T07:47:57+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:47:57+0000 INFO repo already locked, waiting up to 1m0s for the lock\n2026-10-01T07:48:03+0000 INFO using parent snapshot 964f0b2a\n2026-10-01T07:48:03+0000 INFO \n2026-10-01T07:48:03+0000 INFO Files: 0 new, 15 changed, 164 unmodified\n2026-10-01T07:48:03+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:48:03+0000 INFO Added to the repository: 31.002 KiB (12.571 KiB stored)\n2026-10-01T07:48:03+0000 INFO \n2026-10-01T07:48:03+0000 INFO processed 179 files, 174.536 MiB in 0:05\n2026-10-01T07:48:03+0000 INFO snapshot ca2ef50d saved\n2026-10-01T07:48:03+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:48:03+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:48:04+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:48:04+0000 INFO keep 2 snapshots:\n2026-10-01T07:48:04+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:48:04+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:48:04+0000 INFO dbeaae43 2026-10-01 07:47:21 minecraft mc_backups,server oldest daily snapshot /data 174.536 MiB\n2026-10-01T07:48:04+0000 INFO oldest weekly snapshot\n2026-10-01T07:48:04+0000 INFO oldest monthly snapshot\n2026-10-01T07:48:04+0000 INFO ca2ef50d 2026-10-01 07:47:57 minecraft mc_backups,server daily snapshot /data 174.536 MiB\n2026-10-01T07:48:04+0000 INFO weekly snapshot\n2026-10-01T07:48:04+0000 INFO monthly snapshot\n2026-10-01T07:48:04+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:48:04+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:48:04+0000 INFO 2 snapshots\n2026-10-01T07:48:04+0000 INFO \n2026-10-01T07:48:04+0000 INFO remove 1 snapshots:\n2026-10-01T07:48:04+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:48:04+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:48:04+0000 INFO 964f0b2a 2026-10-01 07:47:56 minecraft mc_backups,server /data 174.536 MiB\n2026-10-01T07:48:04+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:48:04+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:48:04+0000 INFO 1 snapshots\n2026-10-01T07:48:04+0000 INFO \n2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:48:04+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:48:04+0000 INFO loading all snapshots...\n2026-10-01T07:48:04+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:48:04+0000 INFO searching used packs...\n2026-10-01T07:48:04+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 17 / 17 packs processed\n2026-10-01T07:48:04+0000 INFO \n2026-10-01T07:48:04+0000 INFO to repack: 8 blobs / 2.325 KiB\n2026-10-01T07:48:04+0000 INFO this removes: 7 blobs / 1.479 KiB\n2026-10-01T07:48:04+0000 INFO to delete: 17 blobs / 10.161 KiB\n2026-10-01T07:48:04+0000 INFO total prune: 24 blobs / 11.641 KiB\n2026-10-01T07:48:04+0000 INFO remaining: 613 blobs / 160.154 MiB\n2026-10-01T07:48:04+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:48:04+0000 INFO \n2026-10-01T07:48:04+0000 INFO repacking packs\n2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 1 / 1 packs repacked\n2026-10-01T07:48:04+0000 INFO rebuilding index\n2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 3 / 3 indexes processed\n2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted\n2026-10-01T07:48:04+0000 INFO removing 2 old packs\n2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:48:04+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:48:05.647799+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:48:05.855023+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 99"], "exit": 0, "output": "Set [proof] for Proof to 99\n"} +{"timestamp": "2026-10-01T07:48:06.063151+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "restore", "/tmp/minecraft validation 47pq03dg/restored snapshot"], "exit": 0, "output": " Container minecraft-1e4b2078-backup-run-24de88e4bbae Creating \n Container minecraft-1e4b2078-backup-run-24de88e4bbae Created \nrestoring snapshot ca2ef50d of [/data] at 2026-10-01 07:47:57.398674849 +0000 UTC by @minecraft to /restore\nSummary: Restored 488 files/dirs (174.536 MiB) in 0:00\n{\"restored\": \"/tmp/minecraft validation 47pq03dg/restored snapshot/data\", \"snapshot\": \"latest\"}\n"} +{"timestamp": "2026-10-01T07:48:08.036167+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/restored server/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "54855", "--web-port", "43503", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:48:08.130797+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/restored server/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-154406dd_default Creating \n Network minecraft-154406dd_default Creating \n Network minecraft-154406dd_default Created \n Network minecraft-154406dd_default Created \n Container minecraft-154406dd-server-1 Creating \n Container minecraft-154406dd-server-1 Created \n Container minecraft-154406dd-server-1 Starting \n Container minecraft-154406dd-server-1 Started \n Container minecraft-154406dd-server-1 Waiting \n Container minecraft-154406dd-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:48:25.372221+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 47pq03dg/restored server/scripts/status", "--port", "54855"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:48:25.405509+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 47pq03dg/restored server/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:48:25.613560+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation 47pq03dg/restored server/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 9 1001 1002 4096 Oct 1 07:47 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:48:13.768 INFO : Created/updated 1 property in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:48:15.289960410Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:48:15 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:48:15 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:48:15 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:48:15 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:48:18 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:48:18 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:48:18 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 279.5ms\nserver-1 | [07:48:19 INFO]: Loaded 1585 recipes\nserver-1 | [07:48:19 INFO]: Loaded 1688 advancements\nserver-1 | [07:48:19 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:48:19 INFO]: Loading properties\nserver-1 | [07:48:19 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:48:20 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:48:20 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:48:20 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:48:20 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:48:20 INFO]: Default game type: SURVIVAL\nserver-1 | [07:48:20 INFO]: Generating keypair\nserver-1 | [07:48:20 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:48:20 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:48:20 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:48:20 INFO]: Preparing level \"world\"\nserver-1 | [07:48:20 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:48:20 INFO]: Preparing spawn area: 100%\nserver-1 | [07:48:20 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:48:20 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:48:20 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:48:20 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:48:20 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:48:20 INFO]: Done preparing level \"world\" (0.318s)\nserver-1 | [07:48:20 INFO]: [spark] Starting background profiler...\nserver-1 | [07:48:21 INFO]: Starting remote control listener\nserver-1 | [07:48:21 INFO]: Thread RCON Listener started\nserver-1 | [07:48:21 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:48:21 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:48:21 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:48:21 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:48:21 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:48:21 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:48:21 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:48:21 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:48:21 INFO]: Running delayed init tasks\nserver-1 | [07:48:21 INFO]: Done (6.271s)! For help, type \"help\"\nserver-1 | [07:48:25 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:48:25 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:48:25 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:48:25 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:48:25.831221+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 47pq03dg/restored server/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-154406dd-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:48:26.039990+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/restored server/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-154406dd-server-1 Stopping \n Container minecraft-154406dd-server-1 Stopped \n Container minecraft-154406dd-server-1 Removing \n Container minecraft-154406dd-server-1 Removed \n Network minecraft-154406dd_default Removing \n Network minecraft-154406dd_default Removed \n"} +{"timestamp": "2026-10-01T07:48:27.117349+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"CREATE TABLE proof (value INT); INSERT INTO proof VALUES (42); SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:48:27.361502+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "300", "database"], "exit": 0, "output": " Container minecraft-1e4b2078-database-1 Recreate \n Container minecraft-1e4b2078-database-1 Recreated \n Container minecraft-1e4b2078-database-1 Starting \n Container minecraft-1e4b2078-database-1 Started \n Container minecraft-1e4b2078-database-1 Waiting \n Container minecraft-1e4b2078-database-1 Healthy \n"} +{"timestamp": "2026-10-01T07:48:33.579124+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:48:33.789068+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "mariadb", "-uminecraft", "-pwrong", "minecraft", "-e", "SELECT 1"], "exit": 1, "output": "ERROR 1045 (28000): Access denied for user 'minecraft'@'localhost' (using password: YES)\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-1e4b2078', '--project-directory', '/tmp/minecraft validation 47pq03dg/stable paper', '--env-file', '/tmp/minecraft validation 47pq03dg/stable paper/versions.env', '--env-file', '/tmp/minecraft validation 47pq03dg/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation 47pq03dg/stable paper/compose.yaml', '-f', '/tmp/minecraft validation 47pq03dg/stable paper/.state/compose.yaml', 'exec', '-T', 'database', 'mariadb', '-uminecraft', '-pwrong', 'minecraft', '-e', 'SELECT 1']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:48:34.001206+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "python3", "-c", "import urllib.request; print(urllib.request.urlopen(\"http://127.0.0.1:52093\").read().decode())"], "exit": 0, "output": "Minecraft files

Minecraft files

\n\n"} +{"timestamp": "2026-10-01T07:48:34.069035+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "database-1 | 2026-10-01 07:48:28+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\ndatabase-1 | 2026-10-01 07:48:28+00:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB\ndatabase-1 | 2026-10-01 07:48:28+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'\nbackup-1 | time=\"2026-10-01T07:47:16Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:47 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\ndatabase-1 | 2026-10-01 07:48:28+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\nbackup-1 | 2026-10-01T07:47:16+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:47:19+0000 INFO created restic repository 47a5afddae at /backups/repository\nbackup-1 | 2026-10-01T07:47:19+0000 INFO \nbackup-1 | 2026-10-01T07:47:19+0000 INFO Please note that knowledge of your password is required to access\ndatabase-1 | 2026-10-01 07:48:28+00:00 [Note] [Entrypoint]: MariaDB upgrade not required\nbackup-1 | 2026-10-01T07:47:19+0000 INFO the repository. Losing your password means that your data is\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] Starting MariaDB 12.3.3-MariaDB-ubu2404 source revision 83e909fc2a0dbc394b4b683fb3fa2d7dcf26cc5e server_uid 7ZxylStRHTOz+VL5qz1jrcNNE+o= as process 1\nbackup-1 | 2026-10-01T07:47:19+0000 INFO irrecoverably lost.\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] InnoDB: Compressed tables use zlib 1.3\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] InnoDB: Number of transaction pools: 1\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] InnoDB: Using ARMv8 crc32 + pmull instructions\nbackup-1 | 2026-10-01T07:47:19+0000 INFO waiting initial delay of 0...\ndatabase-1 | 2026-10-01 7:48:28 0 [Warning] mariadbd: io_uring_queue_init() failed with EPERM: sysctl kernel.io_uring_disabled has the value 2, or 1 and the user of the process is not a member of sysctl kernel.io_uring_group. (see man 2 io_uring_setup).\ndatabase-1 | create_uring failed: falling back to libaio\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] InnoDB: Using Linux native AIO\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] InnoDB: innodb_buffer_pool_size_max=8388608m, innodb_buffer_pool_size=128m\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] InnoDB: Completed initialization of buffer pool\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] InnoDB: File system buffers for log disabled (block size=4096 bytes)\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] InnoDB: End of log at LSN=47911\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] InnoDB: Opened 3 undo tablespaces\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] InnoDB: 128 rollback segments in 3 undo tablespaces are active.\ndatabase-1 | 2026-10-01 7:48:28 0 [Note] Inn\n[Publication excerpt; repetitive middle omitted.]\n07:47:50 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:47:51 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:47:51 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:47:53 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:47:53 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:47:53 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:47:53 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:47:53 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:47:53 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:47:53 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:47:53 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:47:53 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:47:53 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:47:53 INFO]: [Rcon: Saved the game]\nserver-1 | [07:47:53 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:47:56 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:47:56 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:47:56 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:47:56 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:47:57 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:47:57 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:47:57 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:47:57 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:47:57 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:47:57 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:47:57 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:47:57 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:47:57 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:47:57 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:47:57 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:47:57 INFO]: [Rcon: Saved the game]\nserver-1 | [07:47:57 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:48:03 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:48:03 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:48:03 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:48:05 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:48:05 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:48:06 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:48:06 INFO]: [Rcon: Set [proof] for Proof to 99]\nserver-1 | [07:48:06 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:48:34.278014+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\",\"ContainerName\":\"minecraft-1e4b2078-database-1\",\"Repository\":\"mariadb\",\"Tag\":\"\",\"Platform\":\"linux/arm64/v8\",\"Size\":485083992,\"Created\":\"2026-09-16T03:25:46.66077829Z\",\"LastTagTime\":\"2026-10-01T06:30:08.502338164Z\"},{\"ID\":\"sha256:45d3a426da1567cd0c22563e191c5ff1f05cd1aeefa706337b3edd96ded9e06a\",\"ContainerName\":\"minecraft-1e4b2078-backup-1\",\"Repository\":\"minecraft-template-backup\",\"Tag\":\"3ff6a1e8fa15ca4e-1c6ea31fbca3\",\"Platform\":\"linux/arm64\",\"Size\":204738892,\"Created\":\"2026-10-01T07:19:28.891893344Z\",\"LastTagTime\":\"2026-10-01T07:43:26.645479239Z\"},{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-1e4b2078-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"},{\"ID\":\"sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\",\"ContainerName\":\"minecraft-1e4b2078-web-1\",\"Repository\":\"nginx\",\"Tag\":\"\",\"Platform\":\"linux/arm64/v8\",\"Size\":92021013,\"Created\":\"2026-09-22T22:10:07.617314791Z\",\"LastTagTime\":\"2026-10-01T06:30:07.695644704Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:48:34.485536+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-1e4b2078-database-1 Stopping \n Container minecraft-1e4b2078-web-1 Stopping \n Container minecraft-1e4b2078-backup-1 Stopping \n Container minecraft-1e4b2078-backup-1 Stopped \n Container minecraft-1e4b2078-backup-1 Removing \n Container minecraft-1e4b2078-backup-1 Removed \n Container minecraft-1e4b2078-server-1 Stopping \n Container minecraft-1e4b2078-database-1 Stopped \n Container minecraft-1e4b2078-database-1 Removing \n Container minecraft-1e4b2078-web-1 Stopped \n Container minecraft-1e4b2078-web-1 Removing \n Container minecraft-1e4b2078-database-1 Removed \n Container minecraft-1e4b2078-web-1 Removed \n Container minecraft-1e4b2078-server-1 Stopped \n Container minecraft-1e4b2078-server-1 Removing \n Container minecraft-1e4b2078-server-1 Removed \n Network minecraft-1e4b2078_default Removing \n Network minecraft-1e4b2078_default Removed \n"} +{"timestamp": "2026-10-01T07:48:35.857160+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/latest vanilla/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "40233", "--web-port", "59531", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--distribution", "vanilla"], "exit": 0, "output": "{\"distribution\": \"vanilla\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:48:35.913987+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/latest vanilla/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-52540139_default Creating \n Network minecraft-52540139_default Creating \n Network minecraft-52540139_default Created \n Network minecraft-52540139_default Created \n Container minecraft-52540139-server-1 Creating \n Container minecraft-52540139-server-1 Created \n Container minecraft-52540139-server-1 Starting \n Container minecraft-52540139-server-1 Started \n Container minecraft-52540139-server-1 Waiting \n Container minecraft-52540139-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:48:52.227665+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 47pq03dg/latest vanilla/scripts/status", "--port", "40233"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"26.3\", \"protocol\": 777}}\n"} +{"timestamp": "2026-10-01T07:48:52.260754+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 47pq03dg/latest vanilla/scripts/minecraft", "command", "list"], "exit": 0, "output": "There are 0 of a max of 20 players online: \n"} +{"timestamp": "2026-10-01T07:48:52.417385+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "find /data -maxdepth 1 -name \"*.jar\" -exec sha1sum {} \\;"], "exit": 0, "output": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c /data/minecraft_server.26.3.jar\n"} +{"timestamp": "2026-10-01T07:48:52.626033+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:48:52.784768+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:48:52.992981+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation 47pq03dg/latest vanilla/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 2 1001 1002 4096 Oct 1 07:48 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given VANILLA\nserver-1 | [init] Successfully setup vanilla Minecraft version 26.3\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:48:40.965 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Unpacking 26.3/server-26.3.jar (versions:26.3) to versions/26.3/server-26.3.jar\nserver-1 | Unpacking at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar (libraries:at.yawk.lz4:lz4-java:1.10.1) to libraries/at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar\nserver-1 | Unpacking com/azure/azure-json/1.4.0/azure-json-1.4.0.jar (libraries:com.azure:azure-json:1.4.0) to libraries/com/azure/azure-json/1.4.0/azure-json-1.4.0.jar\nserver-1 | Unpacking com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar (libraries:com.github.oshi:oshi-core:6.9.0) to libraries/com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar\nserver-1 | Unpacking com/google/code/gson/gson/2.14.0/gson-2.14.0.jar (libraries:com.google.code.gson:gson:2.14.0) to libraries/com/google/code/gson/gson/2.14.0/gson-2.14.0.jar\nserver-1 | Unpacking com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar (libraries:com.google.guava:failureaccess:1.0.3) to libraries/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\nserver-1 | Unpacking com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar (libraries:com.google.guava:guava:33.6.0-jre) to libraries/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar\nserver-1 | Unpacking com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar (libraries:com.microsoft.azure:msal4j:1.24.1) to libraries/com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar\nserver-1 | Unpacking com/mojang/authlib/10.0.77/authlib-10.0.77.jar (libraries:com.mojang:authlib:10.0.77) to libraries/com/mojang/authlib/10.0.77/authlib-10.0.77.jar\nserver-1 | Unpacking com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar (libraries:com.mojang:brigadier:1.3.11) to libraries/com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar\nserver-1 | Unpacking com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar (libraries:com.mojang:datafixerupper:10.0.21) to libraries/com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar\nserver-1 | Unpacking com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar (libraries:com.mojang:jtracy:1.14.38) to libraries/com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar\nserver-1 | Unpacking com/mojang/logging/1.7.12/logging-1.7.12.jar (libraries:com.mojang:logging:1.7.12) to libraries/com/mojang/loggin\n[Publication excerpt; repetitive middle omitted.]\nWARNING: A restricted method in java.lang.System has been called\nserver-1 | WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/data/libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar)\nserver-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nserver-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nserver-1 | \nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.9/joml-1.10.9.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:48:45] [ServerMain/INFO]: Environment: Environment[discoveryUrl=https://discovery.minecraftservices.com/minecraft/client, name=PROD]\nserver-1 | [07:48:45] [Worker-Main-7/INFO]: No existing world data, creating new world\nserver-1 | [07:48:46] [Worker-Main-6/INFO]: Loaded 1866 advancements\nserver-1 | [07:48:46] [Server thread/INFO]: Starting minecraft server version 26.3\nserver-1 | [07:48:46] [Server thread/INFO]: Loading properties\nserver-1 | [07:48:46] [Server thread/INFO]: Default game type: SURVIVAL\nserver-1 | [07:48:46] [Server thread/INFO]: Generating keypair\nserver-1 | [07:48:46] [Server thread/INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:48:46] [Server thread/INFO]: Preparing level \"world\"\nserver-1 | [07:48:46] [Server thread/INFO]: Selecting global world spawn...\nserver-1 | [07:48:47] [Server thread/INFO]: Loading 0 persistent chunks...\nserver-1 | [07:48:47] [Server thread/INFO]: Preparing spawn area: 100%\nserver-1 | [07:48:47] [Server thread/INFO]: Time elapsed: 1117 ms\nserver-1 | [07:48:47] [Server thread/INFO]: Done (1.292s)! For help, type \"help\"\nserver-1 | [07:48:47] [Server thread/INFO]: Starting remote control listener\nserver-1 | [07:48:47] [Server thread/INFO]: Thread RCON Listener started\nserver-1 | [07:48:47] [Server thread/INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:48:47] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:48:47] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:48:47] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:48:52] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:48:52] [RCON Client /0:0:0:0:0:0:0:1 #2/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:48:52] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:48:52] [RCON Client /0:0:0:0:0:0:0:1 #3/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:48:53.149754+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 47pq03dg/latest vanilla/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-52540139-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:48:53.357726+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/latest vanilla/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-52540139-server-1 Stopping \n Container minecraft-52540139-server-1 Stopped \n Container minecraft-52540139-server-1 Removing \n Container minecraft-52540139-server-1 Removed \n Network minecraft-52540139_default Removing \n Network minecraft-52540139_default Removed \n"} +{"timestamp": "2026-10-01T07:48:54.878025+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "37239", "--web-port", "45477", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--network"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": true, \"profiles\": [\"proxy\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:48:54.919321+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-0153ebd9_default Creating \n Network minecraft-0153ebd9_default Creating \n Network minecraft-0153ebd9_default Created \n Network minecraft-0153ebd9_default Created \n Container minecraft-0153ebd9-server-1 Creating \n Container minecraft-0153ebd9-server-1 Created \n Container minecraft-0153ebd9-proxy-1 Creating \n Container minecraft-0153ebd9-proxy-1 Created \n Container minecraft-0153ebd9-server-1 Starting \n Container minecraft-0153ebd9-server-1 Started \n Container minecraft-0153ebd9-server-1 Waiting \n Container minecraft-0153ebd9-server-1 Healthy \n Container minecraft-0153ebd9-proxy-1 Starting \n Container minecraft-0153ebd9-proxy-1 Started \n Container minecraft-0153ebd9-server-1 Waiting \n Container minecraft-0153ebd9-proxy-1 Waiting \n Container minecraft-0153ebd9-server-1 Healthy \n Container minecraft-0153ebd9-proxy-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:49:21.900780+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/status", "--port", "37239"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"modinfo\": {\"modList\": [], \"type\": \"FML\"}, \"players\": {\"max\": 20, \"online\": 0, \"sample\": []}, \"version\": {\"name\": \"Velocity 1.7.2-26.3\", \"protocol\": 775}}\n"} +{"timestamp": "2026-10-01T07:49:22.094750+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:49:22.300555+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "sha256sum", "/server/velocity-4.2.1-SNAPSHOT-36.jar"], "exit": 0, "output": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c /server/velocity-4.2.1-SNAPSHOT-36.jar\n"} +{"timestamp": "2026-10-01T07:49:22.706875+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 47pq03dg/velocity network/tests/login.py", "--port", "37239", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:49:22.757893+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-0153ebd9-server-1 Recreate \n Container minecraft-0153ebd9-server-1 Recreated \n Container minecraft-0153ebd9-proxy-1 Recreate \n Container minecraft-0153ebd9-proxy-1 Recreated \n Container minecraft-0153ebd9-server-1 Starting \n Container minecraft-0153ebd9-server-1 Started \n Container minecraft-0153ebd9-server-1 Waiting \n Container minecraft-0153ebd9-server-1 Healthy \n Container minecraft-0153ebd9-proxy-1 Starting \n Container minecraft-0153ebd9-proxy-1 Started \n Container minecraft-0153ebd9-server-1 Waiting \n Container minecraft-0153ebd9-proxy-1 Waiting \n Container minecraft-0153ebd9-server-1 Healthy \n Container minecraft-0153ebd9-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:49:46.960787+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 47pq03dg/velocity network/tests/login.py", "--port", "37239", "--verify-cli", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft"], "exit": 0, "output": "{\"play\": true, \"backend_list\": \"There are 1 of a max of 20 players online: ForwardProof\\n\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 1], [\"configuration\", 12], [\"configuration\", 14], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 13], [\"configuration\", 4], [\"configuration\", 4], [\"configuration\", 3]]}\n"} +{"timestamp": "2026-10-01T07:49:49.731535+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "compose", "logs", "--no-color", "server", "proxy"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:49:43.494310942Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:49:43 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:49:43 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:49:43 WARN]: The proxy is running in offline mode! This is a security risk and you will NOT receive any support!\nproxy-1 | [07:49:43 INFO]: Loading localizations...\nproxy-1 | [07:49:44 INFO]: Loading plugins...\nproxy-1 | [07:49:44 INFO]: Loaded 1 plugins\nproxy-1 | [07:49:44 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:49:44 INFO]: Done (0.49s)!\nproxy-1 | [07:49:47 INFO]: [connected player] ForwardProof (/172.19.0.1:53832) has connected\nproxy-1 | [07:49:47 INFO]: [server connection] ForwardProof -> main has connected\nproxy-1 | [07:49:49 INFO]: [connected player] ForwardProof (/172.19.0.1:53832) has disconnected\nproxy-1 | [07:49:49 INFO]: [server connection] ForwardProof -> main has disconnected\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:49 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:49:28.752 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:49:28.756 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:49:30.296060526Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:49:30 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:49:30 INFO]: [bootstrap] Loading P\n[Publication excerpt; repetitive middle omitted.]\n]: Starting Minecraft server on *:25565\nserver-1 | [07:49:35 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:49:35 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:49:35 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:49:35 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:49:35 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:49:35 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:49:35 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:49:35 INFO]: Preparing level \"world\"\nserver-1 | [07:49:35 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:49:35 INFO]: Preparing spawn area: 100%\nserver-1 | [07:49:35 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:49:35 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:49:35 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:49:35 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:49:35 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:49:35 INFO]: Done preparing level \"world\" (0.289s)\nserver-1 | [07:49:35 INFO]: [spark] Starting background profiler...\nserver-1 | [07:49:35 INFO]: Starting remote control listener\nserver-1 | [07:49:35 INFO]: Thread RCON Listener started\nserver-1 | [07:49:35 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:49:35 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:49:35 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:49:35 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:49:35 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:49:35 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:49:35 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:49:35 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:49:35 INFO]: Running delayed init tasks\nserver-1 | [07:49:35 INFO]: Done (6.009s)! For help, type \"help\"\nserver-1 | [07:49:47 INFO]: UUID of player ForwardProof is d2c1afbf-5081-3449-8752-8558175e1427\nserver-1 | [07:49:49 INFO]: ForwardProof joined the game\nserver-1 | [07:49:49 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:49:49 INFO]: ForwardProof[/172.19.0.1:55152] logged in with entity id 21 at ([minecraft:overworld]3.5, 68.0, 5.5)\nserver-1 | [07:49:49 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:49:49 INFO]: ForwardProof lost connection: Disconnected\nserver-1 | [07:49:49 INFO]: ForwardProof left the game\n"} +{"timestamp": "2026-10-01T07:49:49.887715+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "compose", "ps", "-q", "server"], "exit": 0, "output": "dd51283c2c048adf4dfe7e19504ad8d5e01289b31c58b39e4a5df7cc5a788e77\n"} +{"timestamp": "2026-10-01T07:49:50.044339+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", "dd51283c2c048adf4dfe7e19504ad8d5e01289b31c58b39e4a5df7cc5a788e77"], "exit": 0, "output": "172.19.0.2\n"} +{"timestamp": "2026-10-01T07:49:50.060613+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 47pq03dg/velocity network/tests/login.py", "--host", "172.19.0.2", "--port", "25565", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"4\\\"This server requires you to connect with Velocity.\\\"\", \"packets\": [[\"login\", 4], [\"login\", 0]]}\n"} +{"timestamp": "2026-10-01T07:49:50.112927+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-0153ebd9-server-1 Recreate \n Container minecraft-0153ebd9-server-1 Recreated \n Container minecraft-0153ebd9-server-1 Starting \n Container minecraft-0153ebd9-server-1 Started \n Container minecraft-0153ebd9-server-1 Waiting \n Container minecraft-0153ebd9-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:50:07.653840+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 47pq03dg/velocity network/tests/login.py", "--port", "37239", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"\\n\\b\\u0000\\u0005color\\u0000\\u0003red\\b\\u0000\\u0004text\\u0000:Unable to connect to main: Unable to verify player details\\u0000\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 2]]}\n"} +{"timestamp": "2026-10-01T07:50:07.742710+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-0153ebd9-server-1 Recreate \n Container minecraft-0153ebd9-server-1 Recreated \n Container minecraft-0153ebd9-proxy-1 Recreate \n Container minecraft-0153ebd9-proxy-1 Recreated \n Container minecraft-0153ebd9-server-1 Starting \n Container minecraft-0153ebd9-server-1 Started \n Container minecraft-0153ebd9-server-1 Waiting \n Container minecraft-0153ebd9-server-1 Healthy \n Container minecraft-0153ebd9-proxy-1 Starting \n Container minecraft-0153ebd9-proxy-1 Started \n Container minecraft-0153ebd9-proxy-1 Waiting \n Container minecraft-0153ebd9-server-1 Waiting \n Container minecraft-0153ebd9-server-1 Healthy \n Container minecraft-0153ebd9-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:50:30.813085+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 47pq03dg/velocity network/tests/login.py", "--port", "37239", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:50:30.862960+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:50:27.309571381Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:50:27 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:50:27 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:50:27 INFO]: Loading localizations...\nproxy-1 | [07:50:27 INFO]: Loading plugins...\nproxy-1 | [07:50:27 INFO]: Loaded 1 plugins\nproxy-1 | [07:50:27 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:50:27 INFO]: Done (0.53s)!\nproxy-1 | [07:50:30 INFO]: [initial connection] /172.19.0.1:33200 has disconnected\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:49 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:50:13.037 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:50:13.042 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:50:14.584201234Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:50:14 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:50:14 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:50:14 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:50:14 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.Me\n[Publication excerpt; repetitive middle omitted.]\nble)\nserver-1 | [07:50:19 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:50:19 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:50:19 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:50:19 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:50:19 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:50:19 INFO]: Default game type: SURVIVAL\nserver-1 | [07:50:19 INFO]: Generating keypair\nserver-1 | [07:50:19 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:50:19 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:50:19 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:50:19 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:50:19 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:50:19 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:50:19 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:50:19 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:50:19 INFO]: Preparing level \"world\"\nserver-1 | [07:50:20 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:50:20 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:50:20 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:50:20 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:50:20 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:50:20 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:50:20 INFO]: Done preparing level \"world\" (0.291s)\nserver-1 | [07:50:20 INFO]: [spark] Starting background profiler...\nserver-1 | [07:50:20 INFO]: Starting remote control listener\nserver-1 | [07:50:20 INFO]: Thread RCON Listener started\nserver-1 | [07:50:20 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:50:20 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:50:20 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:50:20 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:50:20 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:50:20 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:50:20 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:50:20 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:50:20 INFO]: Running delayed init tasks\nserver-1 | [07:50:20 INFO]: Done (6.262s)! For help, type \"help\"\n"} +{"timestamp": "2026-10-01T07:50:31.072026+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\"ContainerName\":\"minecraft-0153ebd9-proxy-1\",\"Repository\":\"itzg/mc-proxy\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":968846183,\"Created\":\"2026-09-18T17:24:52.935406437Z\",\"LastTagTime\":\"2026-10-01T07:26:34.563926288Z\"},{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-0153ebd9-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:50:31.282044+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-0153ebd9-proxy-1 Stopping \n Container minecraft-0153ebd9-proxy-1 Stopped \n Container minecraft-0153ebd9-proxy-1 Removing \n Container minecraft-0153ebd9-proxy-1 Removed \n Container minecraft-0153ebd9-server-1 Stopping \n Container minecraft-0153ebd9-server-1 Stopped \n Container minecraft-0153ebd9-server-1 Removing \n Container minecraft-0153ebd9-server-1 Removed \n Network minecraft-0153ebd9_default Removing \n Network minecraft-0153ebd9_default Removed \n"} +{"timestamp": "2026-10-01T07:50:32.791599+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation 47pq03dg/velocity network/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:32.969514+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation 47pq03dg/latest vanilla/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.127543+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation 47pq03dg/restored server/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.284514+00:00", "cwd": "/tmp/minecraft validation 47pq03dg/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation 47pq03dg/stable paper/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": " Volume minecraft-1e4b2078_database Removing \n Volume minecraft-1e4b2078_database Removed \n"} +{"timestamp": "2026-10-01T07:50:33.440355+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "minecraft-sentinel-809709cf79755181"], "exit": 0, "output": "c4af33f0d8a2e745ea04a364a4fe8a311146cf8c5429e46f79d0edea75da5e9b\n"} +{"timestamp": "2026-10-01T07:50:33.456400+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "rm", "minecraft-sentinel-809709cf79755181"], "exit": 0, "output": "minecraft-sentinel-809709cf79755181\n"} +{"timestamp": "2026-10-01T07:50:33.546340+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-1e4b2078"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.562299+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-1e4b2078"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.578032+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-1e4b2078"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.593927+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-154406dd"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.609236+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-154406dd"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.624285+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-154406dd"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.640611+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-52540139"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.656098+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-52540139"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.671760+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-52540139"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.687362+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-0153ebd9"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.702748+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-0153ebd9"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:50:33.717916+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/final-candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-0153ebd9"], "exit": 0, "output": ""} diff --git a/docs/proof/final-review/final-runtime/overlap-second.log b/docs/proof/final-review/final-runtime/overlap-second.log new file mode 100644 index 0000000..dda0f4d --- /dev/null +++ b/docs/proof/final-review/final-runtime/overlap-second.log @@ -0,0 +1,70 @@ + Container minecraft-1e4b2078-backup-run-2169f5739913 Creating + Container minecraft-1e4b2078-backup-run-2169f5739913 Created +time="2026-10-01T07:47:54Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:47:54+0000 INFO Repository already initialized +2026-10-01T07:47:54+0000 INFO Checking for stale locks +2026-10-01T07:47:55+0000 INFO Checking repo integrity +2026-10-01T07:47:56+0000 INFO waiting initial delay of 0... +2026-10-01T07:47:56+0000 INFO waiting for rcon readiness... +2026-10-01T07:47:56+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:47:57+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:47:57+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:47:57+0000 INFO Command executed successfully sync +2026-10-01T07:47:57+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:47:57+0000 INFO repo already locked, waiting up to 1m0s for the lock +2026-10-01T07:48:03+0000 INFO using parent snapshot 964f0b2a +2026-10-01T07:48:03+0000 INFO +2026-10-01T07:48:03+0000 INFO Files: 0 new, 15 changed, 164 unmodified +2026-10-01T07:48:03+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:48:03+0000 INFO Added to the repository: 31.002 KiB (12.571 KiB stored) +2026-10-01T07:48:03+0000 INFO +2026-10-01T07:48:03+0000 INFO processed 179 files, 174.536 MiB in 0:05 +2026-10-01T07:48:03+0000 INFO snapshot ca2ef50d saved +2026-10-01T07:48:03+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:48:03+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:48:04+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:48:04+0000 INFO keep 2 snapshots: +2026-10-01T07:48:04+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:48:04+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:48:04+0000 INFO dbeaae43 2026-10-01 07:47:21 minecraft mc_backups,server oldest daily snapshot /data 174.536 MiB +2026-10-01T07:48:04+0000 INFO oldest weekly snapshot +2026-10-01T07:48:04+0000 INFO oldest monthly snapshot +2026-10-01T07:48:04+0000 INFO ca2ef50d 2026-10-01 07:47:57 minecraft mc_backups,server daily snapshot /data 174.536 MiB +2026-10-01T07:48:04+0000 INFO weekly snapshot +2026-10-01T07:48:04+0000 INFO monthly snapshot +2026-10-01T07:48:04+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:48:04+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:48:04+0000 INFO 2 snapshots +2026-10-01T07:48:04+0000 INFO +2026-10-01T07:48:04+0000 INFO remove 1 snapshots: +2026-10-01T07:48:04+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:48:04+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:48:04+0000 INFO 964f0b2a 2026-10-01 07:47:56 minecraft mc_backups,server /data 174.536 MiB +2026-10-01T07:48:04+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:48:04+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:48:04+0000 INFO 1 snapshots +2026-10-01T07:48:04+0000 INFO +2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:48:04+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:48:04+0000 INFO loading all snapshots... +2026-10-01T07:48:04+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:48:04+0000 INFO searching used packs... +2026-10-01T07:48:04+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 17 / 17 packs processed +2026-10-01T07:48:04+0000 INFO +2026-10-01T07:48:04+0000 INFO to repack: 8 blobs / 2.325 KiB +2026-10-01T07:48:04+0000 INFO this removes: 7 blobs / 1.479 KiB +2026-10-01T07:48:04+0000 INFO to delete: 17 blobs / 10.161 KiB +2026-10-01T07:48:04+0000 INFO total prune: 24 blobs / 11.641 KiB +2026-10-01T07:48:04+0000 INFO remaining: 613 blobs / 160.154 MiB +2026-10-01T07:48:04+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:48:04+0000 INFO +2026-10-01T07:48:04+0000 INFO repacking packs +2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 1 / 1 packs repacked +2026-10-01T07:48:04+0000 INFO rebuilding index +2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 3 / 3 indexes processed +2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted +2026-10-01T07:48:04+0000 INFO removing 2 old packs +2026-10-01T07:48:04+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:48:04+0000 INFO done diff --git a/docs/proof/final-review/final-runtime/summary.json b/docs/proof/final-review/final-runtime/summary.json new file mode 100644 index 0000000..68f2ca3 --- /dev/null +++ b/docs/proof/final-review/final-runtime/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:46:52.155337+00:00", + "mode": "fullDocker", + "passed": true, + "finished": "2026-10-01T07:50:33.919894+00:00" +} diff --git a/docs/proof/final-review/final-runtime/versions.env b/docs/proof/final-review/final-runtime/versions.env new file mode 100644 index 0000000..16264c6 --- /dev/null +++ b/docs/proof/final-review/final-runtime/versions.env @@ -0,0 +1,13 @@ +SERVER_IMAGE=itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e +PROXY_IMAGE=itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 +BACKUP_IMAGE=itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 +DATABASE_IMAGE=mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1 +WEB_IMAGE=nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 +PAPER_VERSION=26.2 +PAPER_BUILD=129 +VANILLA_VERSION=26.3 +VELOCITY_VERSION=4.2.1-SNAPSHOT +VELOCITY_BUILD_ID=36 +PAPER_SHA256=b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 +VELOCITY_SHA256=62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c +VANILLA_SERVER_SHA1=33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c diff --git a/docs/proof/final-review/final-source-identity.json b/docs/proof/final-review/final-source-identity.json new file mode 100644 index 0000000..d5a65d3 --- /dev/null +++ b/docs/proof/final-review/final-source-identity.json @@ -0,0 +1,26 @@ +{ + "initial_candidate": "5cd63b7688058295198ac32a7f46062bf5d8c873", + "reviewed_followup": "1b6a5eea6e8684d871e76e7bdb53a3797c88b570", + "unchanged_runtime_files": { + "compose.yaml": true, + "Dockerfile.backup": true, + "Dockerfile.backup.dockerignore": true, + "versions.env": true, + "scripts/check-versions": true, + "scripts/status": true, + "scripts/minecraft": true, + "tests/login.py": true + }, + "final_hashes": { + "compose.yaml": "a010a1d910d7c4faa48c3c78cfb6ad67d92449498b748c59df3729652d483a25", + "Dockerfile.backup": "1c6ea31fbca38c60cb9ab8480bb76128c6c3a4f31ca904084d400d285dc7be2d", + "Dockerfile.backup.dockerignore": "e0a0a575a7f69451eab7e5c28bfabd98bb15b7e6b86051d7f3c994480e830027", + "versions.env": "73dbd2e5b0813991ba35171e6899630da3f94774b0e1b5f6c59e48c2d70edcfc", + "scripts/check-versions": "1b17bea02f5b24b8b5959f0d3425284412ee02965ce2d887732b42887fb4e42a", + "scripts/status": "a326245845b7fa44831e4eb0e126614cb4a2d16aeec8d75b26ac5f526b35bcbd", + "scripts/minecraft": "3c8df527f3775fbd21ad0c438ad6b6ef66436493bc799622eb72eb0c4b5757b5", + "tests/login.py": "e92d086ab9e6284cae1147df0d04baba6bdbc93cb27ea4fc3a4e60acdc088004", + "scripts/validate": "b53e4b4f7f1dc890c029dcd99e479b40774286b410d9181195c396e61a5e16df", + "tests/test_cli.py": "52af676c46a5f6f5ea3d09a2e249aef23bcb54d1fbcccc57cc55854693e7da94" + } +} \ No newline at end of file diff --git a/docs/proof/final-review/independent-old-red.json b/docs/proof/final-review/independent-old-red.json new file mode 100644 index 0000000..20fb6c0 --- /dev/null +++ b/docs/proof/final-review/independent-old-red.json @@ -0,0 +1,46 @@ +{ + "reviewed_old_commit": "7cf68b9", + "checks": { + "ambient_project_guard_passed": false, + "ambient_image_guard_passed": false, + "host_network_guard_passed": false, + "proxy_motd_passed": false + }, + "events": [ + { + "args": [ + "setup", + "--accept-eula", + "--network", + "--motd", + "Independent custom lobby" + ], + "exit": 0, + "output": "{\"distribution\": \"paper\", \"network\": true, \"profiles\": [\"proxy\"], \"setup\": \"created\"}\n" + }, + { + "args": [ + "compose", + "config", + "--format", + "json" + ], + "exit": 0, + "output": "{\n \"name\": \"foreign-red-proof\",\n \"networks\": {\n \"default\": {\n \"name\": \"foreign-red-proof_default\",\n \"ipam\": {}\n }\n },\n \"secrets\": {\n \"rcon\": {\n \"name\": \"foreign-red-proof_rcon\",\n \"file\": \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/old-review-fixture/.state/secrets/rcon\"\n }\n },\n \"services\": {\n \"proxy\": {\n \"profiles\": [\n \"proxy\"\n ],\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"depends_on\": {\n \"server\": {\n \"condition\": \"service_healthy\",\n \"required\": true\n }\n },\n \"entrypoint\": null,\n \"environment\": {\n \"ENABLE_RCON\": \"false\",\n \"MEMORY\": \"512M\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"TYPE\": \"VELOCITY\",\n \"VELOCITY_BUILD_ID\": \"36\",\n \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-monitor\",\n \"status\",\n \"--host\",\n \"localhost\",\n \"--port\",\n \"25565\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 12\n },\n \"image\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\n \"mem_limit\": \"1073741824\",\n \"networks\": {\n \"default\": null\n },\n \"ports\": [\n {\n \"mode\": \"ingress\",\n \"host_ip\": \"0.0.0.0\",\n \"target\": 25565,\n \"published\": \"25565\",\n \"protocol\": \"tcp\"\n }\n ],\n \"restart\": \"unless-stopped\",\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"30s\",\n \"user\": \"1001:1002\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/old-review-fixture/data/proxy\",\n \"target\": \"/server\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/old-review-fixture/.state/velocity.toml\",\n \"target\": \"/server/velocity.toml\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/old-review-fixture/.state/secrets/forwarding\",\n \"target\": \"/server/forwarding.secret\",\n \"read_only\": true,\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/old-review-fixture/plugins/proxy\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {}\n }\n ]\n },\n \"server\": {\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"entrypoint\": null,\n \"environment\": {\n \"COPY_CONFIG_DEST\": \"/data\",\n \"ENABLE_QUERY\": \"false\",\n \"ENABLE_RCON\": \"true\",\n \"EULA\": \"TRUE\",\n \"MEMORY\": \"2G\",\n \"MOTD\": \"Independent custom lobby\",\n \"ONLINE_MODE\": \"false\",\n \"PAPER_BUILD\": \"129\",\n \"PAUSE_WHEN_EMPTY_SECONDS\": \"-1\",\n \"RCON_PASSWORD_FILE\": \"/run/secrets/rcon\",\n \"SIMULATION_DISTANCE\": \"4\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"SYNC_SKIP_NEWER_IN_DESTINATION\": \"false\",\n \"TYPE\": \"PAPER\",\n \"VERSION\": \"26.2\",\n \"VIEW_DISTANCE\": \"6\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-health\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 30,\n \"start_period\": \"1m0s\"\n },\n \"image\": \"nginx:alpine\",\n \"mem_limit\": \"3221225472\",\n \"networks\": {\n \"default\": null\n },\n \"restart\": \"unless-stopped\",\n \"secrets\": [\n {\n \"source\": \"rcon\",\n \"target\": \"/run/secrets/rcon\"\n }\n ],\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"2m0s\",\n \"user\": \"1001:1002\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/old-review-fixture/data/server\",\n \"target\": \"/data\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/old-review-fixture/configs/server\",\n \"target\": \"/config\",\n \"read_only\": true,\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/old-review-fixture/plugins/server\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {}\n }\n ]\n }\n }\n}" + }, + { + "args": [ + "doctor" + ], + "exit": 0, + "output": "{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n" + }, + { + "args": [ + "doctor" + ], + "exit": 0, + "output": "{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n" + } + ] +} \ No newline at end of file diff --git a/docs/proof/final-review/local/commands.jsonl b/docs/proof/final-review/local/commands.jsonl new file mode 100644 index 0000000..3f3a803 --- /dev/null +++ b/docs/proof/final-review/local/commands.jsonl @@ -0,0 +1 @@ +{"timestamp": "2026-10-01T07:44:46.071261+00:00", "cwd": "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/candidate", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 0, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_ambient_environment_cannot_redirect_project_or_pins (test_cli.SetupBoundary.test_ambient_environment_cannot_redirect_project_or_pins) ... ok\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_rejects_network_bypasses (test_cli.SetupBoundary.test_doctor_rejects_network_bypasses) ... ok\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_literal_motd_survives_setup_and_compose (test_cli.SetupBoundary.test_literal_motd_survives_setup_and_compose) ... ok\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n----------------------------------------------------------------------\nRan 9 tests in 2.822s\n\nOK\n"} diff --git a/docs/proof/final-review/local/summary.json b/docs/proof/final-review/local/summary.json new file mode 100644 index 0000000..72f2542 --- /dev/null +++ b/docs/proof/final-review/local/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:44:46.071248+00:00", + "mode": "local", + "passed": true, + "finished": "2026-10-01T07:44:48.943008+00:00" +} diff --git a/docs/proof/final-review/pin-derived-protocol.json b/docs/proof/final-review/pin-derived-protocol.json new file mode 100644 index 0000000..fe3afb8 --- /dev/null +++ b/docs/proof/final-review/pin-derived-protocol.json @@ -0,0 +1,5 @@ +{ + "exit": 1, + "output": "{\"error\": \"Unsupported validation client protocol for Minecraft 99.99. Update the client packet mapping before validating this version.\"}\n", + "passed": true +} \ No newline at end of file diff --git a/docs/proof/final-review/pin-final-assertions.json b/docs/proof/final-review/pin-final-assertions.json new file mode 100644 index 0000000..d7f516c --- /dev/null +++ b/docs/proof/final-review/pin-final-assertions.json @@ -0,0 +1,54 @@ +[ + { + "assertion": "ambient variables cannot redirect effective identity or pins", + "passed": true + }, + { + "assertion": "literal MOTD config survives quotes dollars unicode and markup", + "passed": true + }, + { + "assertion": "server host networking rejected", + "passed": true + }, + { + "assertion": "backup host networking rejected", + "passed": true + }, + { + "assertion": "database host networking rejected", + "passed": true + }, + { + "assertion": "unsupported protocol is rejected before socket connection", + "passed": true + }, + { + "assertion": "first start uses the expected derived image", + "passed": true + }, + { + "assertion": "changed base pin produces a new derived config tag despite stale settings.env", + "passed": true + }, + { + "assertion": "public start builds/selects the new derived image and recreates sidecar", + "passed": true + }, + { + "assertion": "derived image has the selected base layers and one patch layer", + "passed": true + }, + { + "assertion": "actual selected image uses list readiness and retains save-on recovery", + "passed": true + }, + { + "assertion": "public build fails closed for a base without the expected script seam", + "passed": true + }, + { + "assertion": "independent fixture scoped containers removed", + "passed": true + } +] \ No newline at end of file diff --git a/docs/proof/final-review/pin-final-events.json b/docs/proof/final-review/pin-final-events.json new file mode 100644 index 0000000..78cc24f --- /dev/null +++ b/docs/proof/final-review/pin-final-events.json @@ -0,0 +1,318 @@ +[ + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "setup", + "--accept-eula", + "--bind", + "127.0.0.1", + "--port", + "41259", + "--memory", + "2G", + "--profile", + "backup", + "--motd", + "Literal \u2603 $HOME ${BACKUP_IMAGE} backslash \\' quote \\\\ tail" + ], + "exit": 0, + "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [\"backup\"], \"setup\": \"created\"}\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "doctor" + ], + "exit": 1, + "output": "{\"error\": \"Unsafe network or privilege bypass for server\"}\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "doctor" + ], + "exit": 1, + "output": "{\"error\": \"Unsafe network or privilege bypass for backup\"}\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "doctor" + ], + "exit": 1, + "output": "{\"error\": \"Unsafe network or privilege bypass for database\"}\n" + }, + { + "command": [ + "python3", + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/tests/login.py", + "--version", + "99.99", + "--port", + "1" + ], + "exit": 1, + "output": "{\"error\": \"Unsupported validation client protocol for Minecraft 99.99. Update the client packet mapping before validating this version.\"}\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "build", + "--progress", + "plain", + "backup" + ], + "exit": 0, + "output": "--progress is a global compose flag, better use `docker compose --progress xx build ...\n Image minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 Building \n#1 [internal] load local bake definitions\n#1 reading from stdin 884B done\n#1 DONE 0.0s\n\n#2 [internal] load build definition from Dockerfile.backup\n#2 transferring dockerfile: 731B done\n#2 WARN: InvalidDefaultArgInFrom: Default value for ARG ${BACKUP_IMAGE} results in empty or invalid base image name (line 2)\n#2 DONE 0.0s\n\n#3 [internal] load metadata for docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\n#3 DONE 0.0s\n\n#4 [1/2] FROM docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\n#4 resolve docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 0.0s done\n#4 DONE 0.0s\n\n#5 [2/2] RUN script=/opt/backup-loop.sh; expected=' retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on'; test \"$(grep -Fxc \"$expected\" \"$script\")\" -eq 2 && awk 'previous == \" log INFO \\\"waiting for rcon readiness...\\\"\" { if ($0 != \" retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on\") exit 1; sub(/save-on$/, \"list\"); changed++ } { print; previous=$0 } END { if (changed != 1) exit 1 }' \"$script\" > /tmp/backup-loop.patched && mv /tmp/backup-loop.patched \"$script\" && chmod +x \"$script\"\n#5 CACHED\n\n#6 exporting to image\n#6 exporting layers done\n#6 exporting manifest sha256:ccf582bcfa0143e59e89864ce860880770a7e1094fdec40cd2431fa532d5ce0a 0.0s done\n#6 exporting config sha256:2d1986c9e07727be2a6e28e88ccbc36a195ba77ae2a05a2fa1bc96cc7a8eff36 0.0s done\n#6 exporting attestation manifest sha256:ae6d6cdf735d3abbbb555ba8ab6458c3717d4d851df479fdbc39147f17193265 0.0s done\n#6 exporting manifest list sha256:45d3a426da1567cd0c22563e191c5ff1f05cd1aeefa706337b3edd96ded9e06a 0.0s done\n#6 naming to docker.io/library/minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 done\n#6 unpacking to docker.io/library/minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 done\n#6 DONE 0.1s\n\n#7 resolving provenance for metadata file\n#7 DONE 0.0s\n Image minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 Built \n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "start", + "--wait", + "240" + ], + "exit": 0, + "output": " Network minecraft-71dbba43_default Creating \n Network minecraft-71dbba43_default Creating \n Network minecraft-71dbba43_default Created \n Network minecraft-71dbba43_default Created \n Container minecraft-71dbba43-server-1 Creating \n Container minecraft-71dbba43-server-1 Created \n Container minecraft-71dbba43-backup-1 Creating \n Container minecraft-71dbba43-backup-1 Created \n Container minecraft-71dbba43-server-1 Starting \n Container minecraft-71dbba43-server-1 Started \n Container minecraft-71dbba43-server-1 Waiting \n Container minecraft-71dbba43-server-1 Healthy \n Container minecraft-71dbba43-backup-1 Starting \n Container minecraft-71dbba43-backup-1 Started \n Container minecraft-71dbba43-server-1 Waiting \n Container minecraft-71dbba43-backup-1 Waiting \n Container minecraft-71dbba43-backup-1 Healthy \n Container minecraft-71dbba43-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "logs", + "--no-color", + "backup" + ], + "exit": 0, + "output": "backup-1 | time=\"2026-10-01T07:43:48Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:43:48+0000 INFO Initializing new restic repository...\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "logs", + "--no-color", + "backup" + ], + "exit": 0, + "output": "backup-1 | time=\"2026-10-01T07:43:48Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:43:48+0000 INFO Initializing new restic repository...\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "logs", + "--no-color", + "backup" + ], + "exit": 0, + "output": "backup-1 | time=\"2026-10-01T07:43:48Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:43:48+0000 INFO Initializing new restic repository...\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "logs", + "--no-color", + "backup" + ], + "exit": 0, + "output": "backup-1 | time=\"2026-10-01T07:43:48Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:43:48+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO created restic repository b647828902 at /backups/repository\nbackup-1 | 2026-10-01T07:43:51+0000 INFO \nbackup-1 | 2026-10-01T07:43:51+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:43:51+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:43:51+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:43:51+0000 INFO waiting initial delay of 0...\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "logs", + "--no-color", + "backup" + ], + "exit": 0, + "output": "backup-1 | time=\"2026-10-01T07:43:48Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:43:48+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO created restic repository b647828902 at /backups/repository\nbackup-1 | 2026-10-01T07:43:51+0000 INFO \nbackup-1 | 2026-10-01T07:43:51+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:43:51+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:43:51+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:43:51+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Backing up content in /data as host minecraft\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "logs", + "--no-color", + "backup" + ], + "exit": 0, + "output": "backup-1 | time=\"2026-10-01T07:43:48Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:43:48+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO created restic repository b647828902 at /backups/repository\nbackup-1 | 2026-10-01T07:43:51+0000 INFO \nbackup-1 | 2026-10-01T07:43:51+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:43:51+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:43:51+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:43:51+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:43:51+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:43:52+0000 INFO \nbackup-1 | 2026-10-01T07:43:52+0000 INFO Files: 181 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:43:52+0000 INFO Dirs: 310 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:43:52+0000 INFO Added to the repository: 174.693 MiB (160.247 MiB stored)\nbackup-1 | 2026-10-01T07:43:52+0000 INFO \nbackup-1 | 2026-10-01T07:43:52+0000 INFO processed 181 files, 174.551 MiB in 0:01\nbackup-1 | 2026-10-01T07:43:52+0000 INFO snapshot 30e0b5bf saved\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "logs", + "--no-color", + "backup" + ], + "exit": 0, + "output": "backup-1 | time=\"2026-10-01T07:43:48Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:43:48+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO created restic repository b647828902 at /backups/repository\nbackup-1 | 2026-10-01T07:43:51+0000 INFO \nbackup-1 | 2026-10-01T07:43:51+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:43:51+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:43:51+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:43:51+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:43:51+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:43:52+0000 INFO \nbackup-1 | 2026-10-01T07:43:52+0000 INFO Files: 181 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:43:52+0000 INFO Dirs: 310 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:43:52+0000 INFO Added to the repository: 174.693 MiB (160.247 MiB stored)\nbackup-1 | 2026-10-01T07:43:52+0000 INFO \nbackup-1 | 2026-10-01T07:43:52+0000 INFO processed 181 files, 174.551 MiB in 0:01\nbackup-1 | 2026-10-01T07:43:52+0000 INFO snapshot 30e0b5bf saved\nbackup-1 | 2026-10-01T07:43:52+0000 INFO Command executed successfully rcon-cli save-on\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "logs", + "--no-color", + "backup" + ], + "exit": 0, + "output": "backup-1 | time=\"2026-10-01T07:43:48Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:43:48+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO created restic repository b647828902 at /backups/repository\nbackup-1 | 2026-10-01T07:43:51+0000 INFO \nbackup-1 | 2026-10-01T07:43:51+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:43:51+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:43:51+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:43:51+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:43:51+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:43:51+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:43:52+0000 INFO \nbackup-1 | 2026-10-01T07:43:52+0000 INFO Files: 181 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:43:52+0000 INFO Dirs: 310 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:43:52+0000 INFO Added to the repository: 174.693 MiB (160.247 MiB stored)\nbackup-1 | 2026-10-01T07:43:52+0000 INFO \nbackup-1 | 2026-10-01T07:43:52+0000 INFO processed 181 files, 174.551 MiB in 0:01\nbackup-1 | 2026-10-01T07:43:52+0000 INFO snapshot 30e0b5bf saved\nbackup-1 | 2026-10-01T07:43:52+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:43:53+0000 INFO sleeping 6h...\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "backup" + ], + "exit": 0, + "output": " Container minecraft-71dbba43-backup-run-169580c9b12b Creating \n Container minecraft-71dbba43-backup-run-169580c9b12b Created \ntime=\"2026-10-01T07:43:54Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:43:54+0000 INFO Repository already initialized\n2026-10-01T07:43:54+0000 INFO Checking for stale locks\n2026-10-01T07:43:55+0000 INFO Checking repo integrity\n2026-10-01T07:43:56+0000 INFO waiting initial delay of 0...\n2026-10-01T07:43:56+0000 INFO waiting for rcon readiness...\n2026-10-01T07:43:56+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:43:56+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:43:56+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:43:56+0000 INFO Command executed successfully sync\n2026-10-01T07:43:56+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:43:56+0000 INFO using parent snapshot 30e0b5bf\n2026-10-01T07:43:56+0000 INFO \n2026-10-01T07:43:56+0000 INFO Files: 0 new, 12 changed, 169 unmodified\n2026-10-01T07:43:56+0000 INFO Dirs: 0 new, 16 changed, 294 unmodified\n2026-10-01T07:43:56+0000 INFO Added to the repository: 30.444 KiB (12.083 KiB stored)\n2026-10-01T07:43:56+0000 INFO \n2026-10-01T07:43:56+0000 INFO processed 181 files, 174.551 MiB in 0:00\n2026-10-01T07:43:56+0000 INFO snapshot 9386d526 saved\n2026-10-01T07:43:56+0000 INFO Command executed successfully rcon-cli save-on\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "ps", + "-q", + "backup" + ], + "exit": 0, + "output": "5f34988b244b42578b21f01edbe40842fedf552d53a4e05eccaf934dffe54a67\n" + }, + { + "command": [ + "docker", + "inspect", + "5f34988b244b42578b21f01edbe40842fedf552d53a4e05eccaf934dffe54a67" + ], + "exit": 0, + "output": "[\n {\n \"Id\": \"5f34988b244b42578b21f01edbe40842fedf552d53a4e05eccaf934dffe54a67\",\n \"Created\": \"2026-10-01T07:43:27.359993701Z\",\n \"Path\": \"/usr/bin/backup\",\n \"Args\": [\n \"loop\"\n ],\n \"State\": {\n \"Status\": \"running\",\n \"Running\": true,\n \"Paused\": false,\n \"Restarting\": false,\n \"OOMKilled\": false,\n \"Dead\": false,\n \"Pid\": 1394628,\n \"ExitCode\": 0,\n \"Error\": \"\",\n \"StartedAt\": \"2026-10-01T07:43:48.075956519Z\",\n \"FinishedAt\": \"0001-01-01T00:00:00Z\"\n },\n \"Image\": \"sha256:45d3a426da1567cd0c22563e191c5ff1f05cd1aeefa706337b3edd96ded9e06a\",\n \"ResolvConfPath\": \"/var/lib/docker/containers/5f34988b244b42578b21f01edbe40842fedf552d53a4e05eccaf934dffe54a67/resolv.conf\",\n \"HostnamePath\": \"/var/lib/docker/containers/5f34988b244b42578b21f01edbe40842fedf552d53a4e05eccaf934dffe54a67/hostname\",\n \"HostsPath\": \"/var/lib/docker/containers/5f34988b244b42578b21f01edbe40842fedf552d53a4e05eccaf934dffe54a67/hosts\",\n \"LogPath\": \"/var/lib/docker/containers/5f34988b244b42578b21f01edbe40842fedf552d53a4e05eccaf934dffe54a67/5f34988b244b42578b21f01edbe40842fedf552d53a4e05eccaf934dffe54a67-json.log\",\n \"Name\": \"/minecraft-71dbba43-backup-1\",\n \"RestartCount\": 0,\n \"Driver\": \"overlayfs\",\n \"Platform\": \"linux\",\n \"MountLabel\": \"\",\n \"ProcessLabel\": \"\",\n \"AppArmorProfile\": \"docker-default\",\n \"ExecIDs\": null,\n \"HostConfig\": {\n \"Binds\": [\n \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/data/server:/data:ro\",\n \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/backups:/backups:rw\"\n ],\n \"ContainerIDFile\": \"\",\n \"LogConfig\": {\n \"Type\": \"json-file\",\n \"Config\": {}\n },\n \"NetworkMode\": \"minecraft-71dbba43_default\",\n \"PortBindings\": {},\n \"RestartPolicy\": {\n \"Name\": \"unless-stopped\",\n \"MaximumRetryCount\": 0\n },\n \"AutoRemove\": false,\n \"VolumeDriver\": \"\",\n \"VolumesFrom\": null,\n \"ConsoleSize\": [\n 0,\n 0\n ],\n \"CapAdd\": null,\n \"CapDrop\": [\n \"ALL\"\n ],\n \"CgroupnsMode\": \"private\",\n \"Dns\": null,\n \"DnsOptions\": null,\n \"DnsSearch\": null,\n \"ExtraHosts\": [],\n \"GroupAdd\": null,\n \"IpcMode\": \"private\",\n \"Cgroup\": \"\",\n \"Links\": null,\n \"OomScoreAdj\": 0,\n \"PidMode\": \"\",\n \"Privileged\": false,\n \"PublishAllPorts\": false,\n \"ReadonlyRootfs\": false,\n \"Sec\n[Publication excerpt; repetitive middle omitted.]\n \"com.docker.compose.project.environment_file\": \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/versions.env,/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/.state/settings.env\",\n \"com.docker.compose.project.working_dir\": \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture\",\n \"com.docker.compose.service\": \"backup\",\n \"com.docker.compose.version\": \"5.5.1\",\n \"org.opencontainers.image.created\": \"2026-09-30T18:56:38.561Z\",\n \"org.opencontainers.image.description\": \"Provides a side-car container to backup itzg/minecraft-server server data\",\n \"org.opencontainers.image.licenses\": \"MIT\",\n \"org.opencontainers.image.revision\": \"4a02d7b8ffc37f678b5641389d303dade53191c4\",\n \"org.opencontainers.image.source\": \"https://github.com/itzg/docker-mc-backup\",\n \"org.opencontainers.image.title\": \"docker-mc-backup\",\n \"org.opencontainers.image.url\": \"https://github.com/itzg/docker-mc-backup\",\n \"org.opencontainers.image.version\": \"2026.9.3\"\n }\n },\n \"NetworkSettings\": {\n \"SandboxID\": \"fc2abd8224e18c17741ffcd018315cee0f556e2f46f83c20e6af569e94caba79\",\n \"SandboxKey\": \"/var/run/docker/netns/fc2abd8224e1\",\n \"Ports\": {},\n \"Networks\": {\n \"minecraft-71dbba43_default\": {\n \"IPAMConfig\": null,\n \"Links\": null,\n \"Aliases\": [\n \"minecraft-71dbba43-backup-1\",\n \"backup\"\n ],\n \"DriverOpts\": null,\n \"GwPriority\": 0,\n \"NetworkID\": \"0299f288ecb1a9d37307d8b51d1a600e0c8de8dbf0b3b2ec4e20dcee9b164887\",\n \"EndpointID\": \"86d650df3f0f771579b6c43d0ea5bfe6bcdd2147e7fe275186d7904ef01c262f\",\n \"Gateway\": \"172.21.0.1\",\n \"IPAddress\": \"172.21.0.3\",\n \"MacAddress\": \"8a:a4:45:63:25:06\",\n \"IPPrefixLen\": 16,\n \"IPv6Gateway\": \"\",\n \"GlobalIPv6Address\": \"\",\n \"GlobalIPv6PrefixLen\": 0,\n \"DNSNames\": [\n \"minecraft-71dbba43-backup-1\",\n \"backup\",\n \"5f34988b244b\"\n ]\n }\n }\n },\n \"ImageManifestDescriptor\": {\n \"mediaType\": \"application/vnd.oci.image.manifest.v1+json\",\n \"digest\": \"sha256:ccf582bcfa0143e59e89864ce860880770a7e1094fdec40cd2431fa532d5ce0a\",\n \"size\": 3329,\n \"platform\": {\n \"architecture\": \"arm64\",\n \"os\": \"linux\"\n }\n }\n }\n]\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "start", + "--wait", + "240" + ], + "exit": 0, + "output": " Container minecraft-71dbba43-server-1 Running \n Container minecraft-71dbba43-backup-1 Recreate \n Container minecraft-71dbba43-backup-1 Recreated \n Container minecraft-71dbba43-server-1 Waiting \n Container minecraft-71dbba43-server-1 Healthy \n Container minecraft-71dbba43-backup-1 Starting \n Container minecraft-71dbba43-backup-1 Started \n Container minecraft-71dbba43-server-1 Waiting \n Container minecraft-71dbba43-backup-1 Waiting \n Container minecraft-71dbba43-backup-1 Healthy \n Container minecraft-71dbba43-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "ps", + "-q", + "backup" + ], + "exit": 0, + "output": "c84794a897cf745196cf0afbc8d739450dfde6d7b0a3beb66ec611642378c47b\n" + }, + { + "command": [ + "docker", + "inspect", + "c84794a897cf745196cf0afbc8d739450dfde6d7b0a3beb66ec611642378c47b" + ], + "exit": 0, + "output": "[\n {\n \"Id\": \"c84794a897cf745196cf0afbc8d739450dfde6d7b0a3beb66ec611642378c47b\",\n \"Created\": \"2026-10-01T07:43:58.678571661Z\",\n \"Path\": \"/usr/bin/backup\",\n \"Args\": [\n \"loop\"\n ],\n \"State\": {\n \"Status\": \"running\",\n \"Running\": true,\n \"Paused\": false,\n \"Restarting\": false,\n \"OOMKilled\": false,\n \"Dead\": false,\n \"Pid\": 1399506,\n \"ExitCode\": 0,\n \"Error\": \"\",\n \"StartedAt\": \"2026-10-01T07:43:59.423849328Z\",\n \"FinishedAt\": \"0001-01-01T00:00:00Z\"\n },\n \"Image\": \"sha256:3a535aeca089af7963aa60eda6dc2afae4a867609c186da3f8e89e32ecee3c1d\",\n \"ResolvConfPath\": \"/var/lib/docker/containers/c84794a897cf745196cf0afbc8d739450dfde6d7b0a3beb66ec611642378c47b/resolv.conf\",\n \"HostnamePath\": \"/var/lib/docker/containers/c84794a897cf745196cf0afbc8d739450dfde6d7b0a3beb66ec611642378c47b/hostname\",\n \"HostsPath\": \"/var/lib/docker/containers/c84794a897cf745196cf0afbc8d739450dfde6d7b0a3beb66ec611642378c47b/hosts\",\n \"LogPath\": \"/var/lib/docker/containers/c84794a897cf745196cf0afbc8d739450dfde6d7b0a3beb66ec611642378c47b/c84794a897cf745196cf0afbc8d739450dfde6d7b0a3beb66ec611642378c47b-json.log\",\n \"Name\": \"/minecraft-71dbba43-backup-1\",\n \"RestartCount\": 0,\n \"Driver\": \"overlayfs\",\n \"Platform\": \"linux\",\n \"MountLabel\": \"\",\n \"ProcessLabel\": \"\",\n \"AppArmorProfile\": \"docker-default\",\n \"ExecIDs\": null,\n \"HostConfig\": {\n \"Binds\": [\n \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/backups:/backups:rw\",\n \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/data/server:/data:ro\"\n ],\n \"ContainerIDFile\": \"\",\n \"LogConfig\": {\n \"Type\": \"json-file\",\n \"Config\": {}\n },\n \"NetworkMode\": \"minecraft-71dbba43_default\",\n \"PortBindings\": {},\n \"RestartPolicy\": {\n \"Name\": \"unless-stopped\",\n \"MaximumRetryCount\": 0\n },\n \"AutoRemove\": false,\n \"VolumeDriver\": \"\",\n \"VolumesFrom\": null,\n \"ConsoleSize\": [\n 0,\n 0\n ],\n \"CapAdd\": null,\n \"CapDrop\": [\n \"ALL\"\n ],\n \"CgroupnsMode\": \"private\",\n \"Dns\": null,\n \"DnsOptions\": null,\n \"DnsSearch\": null,\n \"ExtraHosts\": [],\n \"GroupAdd\": null,\n \"IpcMode\": \"private\",\n \"Cgroup\": \"\",\n \"Links\": null,\n \"OomScoreAdj\": 0,\n \"PidMode\": \"\",\n \"Privileged\": false,\n \"PublishAllPorts\": false,\n \"ReadonlyRootfs\": false,\n \"Sec\n[Publication excerpt; repetitive middle omitted.]\ner/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/versions.env,/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/.state/settings.env\",\n \"com.docker.compose.project.working_dir\": \"/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture\",\n \"com.docker.compose.replace\": \"backup-1\",\n \"com.docker.compose.service\": \"backup\",\n \"com.docker.compose.version\": \"5.5.1\",\n \"org.opencontainers.image.created\": \"2026-09-30T18:56:38.561Z\",\n \"org.opencontainers.image.description\": \"Provides a side-car container to backup itzg/minecraft-server server data\",\n \"org.opencontainers.image.licenses\": \"MIT\",\n \"org.opencontainers.image.revision\": \"4a02d7b8ffc37f678b5641389d303dade53191c4\",\n \"org.opencontainers.image.source\": \"https://github.com/itzg/docker-mc-backup\",\n \"org.opencontainers.image.title\": \"docker-mc-backup\",\n \"org.opencontainers.image.url\": \"https://github.com/itzg/docker-mc-backup\",\n \"org.opencontainers.image.version\": \"2026.9.3\"\n }\n },\n \"NetworkSettings\": {\n \"SandboxID\": \"026cdb7c1ac226857284f07143b31c3ad7eaa52845daca68922b772fb8cadf82\",\n \"SandboxKey\": \"/var/run/docker/netns/026cdb7c1ac2\",\n \"Ports\": {},\n \"Networks\": {\n \"minecraft-71dbba43_default\": {\n \"IPAMConfig\": null,\n \"Links\": null,\n \"Aliases\": [\n \"minecraft-71dbba43-backup-1\",\n \"backup\"\n ],\n \"DriverOpts\": null,\n \"GwPriority\": 0,\n \"NetworkID\": \"0299f288ecb1a9d37307d8b51d1a600e0c8de8dbf0b3b2ec4e20dcee9b164887\",\n \"EndpointID\": \"6a2993300affbb90eb26a78ab9ac0c57f21d9437653605574518f04f3a8f5b7a\",\n \"Gateway\": \"172.21.0.1\",\n \"IPAddress\": \"172.21.0.3\",\n \"MacAddress\": \"9a:17:e3:94:b4:c2\",\n \"IPPrefixLen\": 16,\n \"IPv6Gateway\": \"\",\n \"GlobalIPv6Address\": \"\",\n \"GlobalIPv6PrefixLen\": 0,\n \"DNSNames\": [\n \"minecraft-71dbba43-backup-1\",\n \"backup\",\n \"c84794a897cf\"\n ]\n }\n }\n },\n \"ImageManifestDescriptor\": {\n \"mediaType\": \"application/vnd.oci.image.manifest.v1+json\",\n \"digest\": \"sha256:9364ffed59a74e2c9e78f0a7b5a46ffd5788012f830e48d8f7fc34ad35fa61dc\",\n \"size\": 3329,\n \"platform\": {\n \"architecture\": \"arm64\",\n \"os\": \"linux\"\n }\n }\n }\n]\n" + }, + { + "command": [ + "docker", + "pull", + "itzg/mc-backup:2026.9.3@sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e" + ], + "exit": 0, + "output": "docker.io/itzg/mc-backup@sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e: Pulling from itzg/mc-backup\nDigest: sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e\nStatus: Image is up to date for itzg/mc-backup@sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e\ndocker.io/itzg/mc-backup:2026.9.3@sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e\n" + }, + { + "command": [ + "docker", + "image", + "inspect", + "itzg/mc-backup:2026.9.3@sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e" + ], + "exit": 0, + "output": "[\n {\n \"Id\": \"sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e\",\n \"RepoTags\": [\n \"itzg/mc-backup@sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e\"\n ],\n \"RepoDigests\": [\n \"itzg/mc-backup@sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e\"\n ],\n \"Comment\": \"buildkit.dockerfile.v0\",\n \"Created\": \"2026-09-27T13:29:54.189552669Z\",\n \"Config\": {\n \"Env\": [\n \"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\n \"HOME=/tmp\"\n ],\n \"Entrypoint\": [\n \"/usr/bin/backup\"\n ],\n \"Cmd\": [\n \"loop\"\n ],\n \"Volumes\": {\n \"/backups\": {},\n \"/data\": {}\n },\n \"WorkingDir\": \"/backups\",\n \"Labels\": {\n \"org.opencontainers.image.created\": \"2026-09-30T18:56:38.561Z\",\n \"org.opencontainers.image.description\": \"Provides a side-car container to backup itzg/minecraft-server server data\",\n \"org.opencontainers.image.licenses\": \"MIT\",\n \"org.opencontainers.image.revision\": \"4a02d7b8ffc37f678b5641389d303dade53191c4\",\n \"org.opencontainers.image.source\": \"https://github.com/itzg/docker-mc-backup\",\n \"org.opencontainers.image.title\": \"docker-mc-backup\",\n \"org.opencontainers.image.url\": \"https://github.com/itzg/docker-mc-backup\",\n \"org.opencontainers.image.version\": \"2026.9.3\"\n },\n \"ArgsEscaped\": true\n },\n \"Architecture\": \"arm64\",\n \"Os\": \"linux\",\n \"Size\": 204693685,\n \"RootFS\": {\n \"Type\": \"layers\",\n \"Layers\": [\n \"sha256:1b349a3334531b575b01d409540dd8aca14ef29abddacd50f36643d7c949db4b\",\n \"sha256:7dcd34286a5afa9e661d51008370e79c7217bd1c5880686d8a69ed8bb9850fa3\",\n \"sha256:7a2e9ffbb255c4f4e718444f0a8fc7dac2c3b18581f35bfefeb356b373c9c38f\",\n \"sha256:a3c11cd888dedfb8b9123d5b0ea5d9771c422162d8e942c291b40b1aa10dbff9\",\n \"sha256:686ec6fc17370c51b838fdec45d0a9e110730cda30ab8a60fd2aafcb1ba33371\",\n \"sha256:44a91badb071b0e82f24cb462ae161784435b6c370f1bcd29f3516af6a6f81c4\",\n \"sha256:49e9e78dca24eda50907b65f5246a2a7b8d0a37aa8ac063db2e307a7898d942a\",\n \"sha256:afa073886d330f586f7b10b15d9c488a0eaffcd11a50bce8ff4d269d17788c04\",\n \"sha256:fcbe4169802a925d3f6f792b6fa0edd1183ef889b14da36408ed8b33537486f7\",\n \"sha256:b4c77a8b8ea3b83da27a61163084d8a7bd0a5a42a9a94dd6c73a0b970e6d957d\",\n \"sha256:57d8cd0f05aa36e5da74185aa0368865d82580d9f83bd51dd5970e6152e10085\",\n \"sha256:c8e84cd477e5f438693247ef7e36dd2ade49208264ec21edfda07998efab2bfc\",\n \"sha256:2aa92a38476f4287d1edec21033a8956870db00b307a03f5c026937be6c98281\",\n \"sha256:0cad5a5868b67e0fa92a0d77719b862e5965369690ddbca778427e2992e59ab9\",\n \"sha256:34a912e71c8eeb038d277eaba9a1a5098ebf5f480c5f0a6d559c8a7421f824d5\"\n ]\n },\n \"Metadata\": {\n \"LastTagTime\": \"2026-10-01T07:44:00.643752856Z\"\n },\n \"Descriptor\": {\n \"mediaType\": \"application/vnd.oci.image.manifest.v1+json\",\n \"digest\": \"sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e\",\n \"size\": 3140\n },\n \"Identity\": {\n \"Pull\": [\n {\n \"Repository\": \"docker.io/itzg/mc-backup\"\n }\n ]\n }\n }\n]\n" + }, + { + "command": [ + "docker", + "image", + "inspect", + "minecraft-template-backup:3195676d141fd8af-1c6ea31fbca3" + ], + "exit": 0, + "output": "[\n {\n \"Id\": \"sha256:3a535aeca089af7963aa60eda6dc2afae4a867609c186da3f8e89e32ecee3c1d\",\n \"RepoTags\": [\n \"minecraft-template-backup:3195676d141fd8af-1c6ea31fbca3\"\n ],\n \"RepoDigests\": [\n \"minecraft-template-backup@sha256:3a535aeca089af7963aa60eda6dc2afae4a867609c186da3f8e89e32ecee3c1d\"\n ],\n \"Comment\": \"buildkit.dockerfile.v0\",\n \"Created\": \"2026-10-01T07:19:28.891893344Z\",\n \"Config\": {\n \"Env\": [\n \"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\n \"HOME=/tmp\"\n ],\n \"Entrypoint\": [\n \"/usr/bin/backup\"\n ],\n \"Cmd\": [\n \"loop\"\n ],\n \"Volumes\": {\n \"/backups\": {},\n \"/data\": {}\n },\n \"WorkingDir\": \"/backups\",\n \"Labels\": {\n \"com.docker.compose.project\": \"minecraft-394cd3cb\",\n \"com.docker.compose.service\": \"backup\",\n \"com.docker.compose.version\": \"5.5.1\",\n \"org.opencontainers.image.created\": \"2026-09-30T18:56:38.561Z\",\n \"org.opencontainers.image.description\": \"Provides a side-car container to backup itzg/minecraft-server server data\",\n \"org.opencontainers.image.licenses\": \"MIT\",\n \"org.opencontainers.image.revision\": \"4a02d7b8ffc37f678b5641389d303dade53191c4\",\n \"org.opencontainers.image.source\": \"https://github.com/itzg/docker-mc-backup\",\n \"org.opencontainers.image.title\": \"docker-mc-backup\",\n \"org.opencontainers.image.url\": \"https://github.com/itzg/docker-mc-backup\",\n \"org.opencontainers.image.version\": \"2026.9.3\"\n },\n \"ArgsEscaped\": true\n },\n \"Architecture\": \"arm64\",\n \"Os\": \"linux\",\n \"Size\": 204738892,\n \"RootFS\": {\n \"Type\": \"layers\",\n \"Layers\": [\n \"sha256:1b349a3334531b575b01d409540dd8aca14ef29abddacd50f36643d7c949db4b\",\n \"sha256:7dcd34286a5afa9e661d51008370e79c7217bd1c5880686d8a69ed8bb9850fa3\",\n \"sha256:7a2e9ffbb255c4f4e718444f0a8fc7dac2c3b18581f35bfefeb356b373c9c38f\",\n \"sha256:a3c11cd888dedfb8b9123d5b0ea5d9771c422162d8e942c291b40b1aa10dbff9\",\n \"sha256:686ec6fc17370c51b838fdec45d0a9e110730cda30ab8a60fd2aafcb1ba33371\",\n \"sha256:44a91badb071b0e82f24cb462ae161784435b6c370f1bcd29f3516af6a6f81c4\",\n \"sha256:49e9e78dca24eda50907b65f5246a2a7b8d0a37aa8ac063db2e307a7898d942a\",\n \"sha256:afa073886d330f586f7b10b15d9c488a0eaffcd11a50bce8ff4d269d17788c04\",\n \"sha256:fcbe4169802a925d3f6f792b6fa0edd1183ef889b14da36408ed8b33537486f7\",\n \"sha256:b4c77a8b8ea3b83da27a61163084d8a7bd0a5a42a9a94dd6c73a0b970e6d957d\",\n \"sha256:57d8cd0f05aa36e5da74185aa0368865d82580d9f83bd51dd5970e6152e10085\",\n \"sha256:c8e84cd477e5f438693247ef7e36dd2ade49208264ec21edfda07998efab2bfc\",\n \"sha256:2aa92a38476f4287d1edec21033a8956870db00b307a03f5c026937be6c98281\",\n \"sha256:0cad5a5868b67e0fa92a0d77719b862e5965369690ddbca778427e2992e59ab9\",\n \"sha256:34a912e71c8eeb038d277eaba9a1a5098ebf5f480c5f0a6d559c8a7421f824d5\",\n \"sha256:f28ddb0219aa07f6b1df873657ea0db949af84466deac8db8abc68a8303abde6\"\n ]\n },\n \"Metadata\": {\n \"LastTagTime\": \"2026-10-01T07:37:22.831481444Z\"\n },\n \"Descriptor\": {\n \"mediaType\": \"application/vnd.oci.image.index.v1+json\",\n \"digest\": \"sha256:3a535aeca089af7963aa60eda6dc2afae4a867609c186da3f8e89e32ecee3c1d\",\n \"size\": 856\n },\n \"Identity\": {\n \"Build\": [\n {\n \"Ref\": \"y7e54k2wrlpjps8bih0tgupqt\",\n \"CreatedAt\": \"2026-10-01T07:37:22.858142809Z\"\n }\n ]\n }\n }\n]\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "exec", + "-T", + "backup", + "sh", + "-c", + "grep -A1 \"waiting for rcon readiness\" /opt/backup-loop.sh; grep -Fc \"rcon-cli save-on\" /opt/backup-loop.sh" + ], + "exit": 0, + "output": " log INFO \"waiting for rcon readiness...\"\n retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli list\n2\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "backup" + ], + "exit": 0, + "output": " Container minecraft-71dbba43-backup-run-fae1c6a69f18 Creating \n Container minecraft-71dbba43-backup-run-fae1c6a69f18 Created \ntime=\"2026-10-01T07:44:01Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:44:02+0000 INFO Repository already initialized\n2026-10-01T07:44:02+0000 INFO Checking for stale locks\n2026-10-01T07:44:02+0000 INFO Checking repo integrity\n2026-10-01T07:44:03+0000 INFO waiting initial delay of 0...\n2026-10-01T07:44:03+0000 INFO waiting for rcon readiness...\n2026-10-01T07:44:03+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:44:03+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:44:03+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:44:03+0000 INFO Command executed successfully sync\n2026-10-01T07:44:03+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:44:04+0000 INFO using parent snapshot ee34d47c\n2026-10-01T07:44:04+0000 INFO \n2026-10-01T07:44:04+0000 INFO Files: 0 new, 12 changed, 169 unmodified\n2026-10-01T07:44:04+0000 INFO Dirs: 0 new, 16 changed, 294 unmodified\n2026-10-01T07:44:04+0000 INFO Added to the repository: 30.444 KiB (12.115 KiB stored)\n2026-10-01T07:44:04+0000 INFO \n2026-10-01T07:44:04+0000 INFO processed 181 files, 174.551 MiB in 0:00\n2026-10-01T07:44:04+0000 INFO snapshot 1ad70775 saved\n2026-10-01T07:44:04+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:44:05+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:44:05+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:44:05+0000 INFO keep 2 snapshots:\n2026-10-01T07:44:05+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:44:05+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:44:05+0000 INFO 30e0b5bf 2026-10-01 07:43:51 minecraft mc_backups,server oldest daily snapshot /data 174.551 MiB\n2026-10-01T07:44:05+0000 INFO oldest weekly snapshot\n2026-10-01T07:44:05+0000 INFO oldest monthly snapshot\n2026-10-01T07:44:05+0000 INFO 1ad70775 2026-10-01 07:44:03 minecraft mc_backups,server daily snapshot /data 174.551 MiB\n2026-10-01T07:44:05+0000 INFO weekly snapshot\n2026-10-01T07:44:05+0000 INFO monthly snapshot\n2026-10-01T07:44:05+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:44:05+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:44:05+0000 INFO 2 snapshots\n2026-10-01T07:44:05+0000 INFO \n2026-10-01T07:44:05+0000 INFO remove 1 snapshots:\n2026-10-01T07:44:05+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:44:05+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:44:05+0000 INFO ee34d47c 2026-10-01 07:44:01 minecraft mc_backups,server /data 174.551 MiB\n2026-10-01T07:44:05+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:44:05+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:44:05+0000 INFO 1 snapshots\n2026-10-01T07:44:05+0000 INFO \n2026-10-01T07:44:05+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:44:05+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:44:05+0000 INFO loading all snapshots...\n2026-10-01T07:44:05+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:44:05+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:44:05+0000 INFO searching used packs...\n2026-10-01T07:44:05+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:44:05+0000 INFO [0:00] 100.00% 16 / 16 packs processed\n2026-10-01T07:44:05+0000 INFO \n2026-10-01T07:44:05+0000 INFO to repack: 7 blobs / 1.798 KiB\n2026-10-01T07:44:05+0000 INFO this removes: 5 blobs / 902 B\n2026-10-01T07:44:05+0000 INFO to delete: 18 blobs / 10.284 KiB\n2026-10-01T07:44:05+0000 INFO total prune: 23 blobs / 11.165 KiB\n2026-10-01T07:44:05+0000 INFO remaining: 597 blobs / 160.236 MiB\n2026-10-01T07:44:05+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:44:05+0000 INFO \n2026-10-01T07:44:05+0000 INFO repacking packs\n2026-10-01T07:44:05+0000 INFO [0:00] 100.00% 1 / 1 packs repacked\n2026-10-01T07:44:05+0000 INFO rebuilding index\n2026-10-01T07:44:05+0000 INFO [0:00] 100.00% 3 / 3 indexes processed\n2026-10-01T07:44:05+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted\n2026-10-01T07:44:05+0000 INFO removing 3 old packs\n2026-10-01T07:44:05+0000 INFO [0:00] 100.00% 3 / 3 files deleted\n2026-10-01T07:44:05+0000 INFO done\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "stop" + ], + "exit": 0, + "output": " Container minecraft-71dbba43-backup-1 Stopping \n Container minecraft-71dbba43-backup-1 Stopped \n Container minecraft-71dbba43-backup-1 Removing \n Container minecraft-71dbba43-backup-1 Removed \n Container minecraft-71dbba43-server-1 Stopping \n Container minecraft-71dbba43-server-1 Stopped \n Container minecraft-71dbba43-server-1 Removing \n Container minecraft-71dbba43-server-1 Removed \n Network minecraft-71dbba43_default Removing \n Network minecraft-71dbba43_default Removed \n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "build", + "--progress", + "plain", + "backup" + ], + "exit": 1, + "output": "--progress is a global compose flag, better use `docker compose --progress xx build ...\n Image minecraft-template-backup:0985e772fb9f729e-1c6ea31fbca3 Building \n#1 [internal] load local bake definitions\n#1 reading from stdin 880B done\n#1 DONE 0.0s\n\n#2 [internal] load build definition from Dockerfile.backup\n#2 transferring dockerfile: 731B done\n#2 WARN: InvalidDefaultArgInFrom: Default value for ARG ${BACKUP_IMAGE} results in empty or invalid base image name (line 2)\n#2 DONE 0.0s\n\n#3 [internal] load metadata for docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n#3 DONE 0.0s\n\n#4 [1/2] FROM docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n#4 resolve docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 0.0s done\n#4 DONE 0.0s\n\n#4 [1/2] FROM docker.io/library/nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n#4 DONE 0.2s\n\n#5 [2/2] RUN script=/opt/backup-loop.sh; expected=' retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on'; test \"$(grep -Fxc \"$expected\" \"$script\")\" -eq 2 && awk 'previous == \" log INFO \\\"waiting for rcon readiness...\\\"\" { if ($0 != \" retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on\") exit 1; sub(/save-on$/, \"list\"); changed++ } { print; previous=$0 } END { if (changed != 1) exit 1 }' \"$script\" > /tmp/backup-loop.patched && mv /tmp/backup-loop.patched \"$script\" && chmod +x \"$script\"\n#5 0.140 grep: /opt/backup-loop.sh: No such file or directory\n#5 0.140 sh: out of range\n#5 ERROR: process \"/bin/sh -c script=/opt/backup-loop.sh; expected=' retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on'; test \\\"$(grep -Fxc \\\"$expected\\\" \\\"$script\\\")\\\" -eq 2 && awk 'previous == \\\" log INFO \\\\\\\"waiting for rcon readiness...\\\\\\\"\\\" { if ($0 != \\\" retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on\\\") exit 1; sub(/save-on$/, \\\"list\\\"); changed++ } { print; previous=$0 } END { if (changed != 1) exit 1 }' \\\"$script\\\" > /tmp/backup-loop.patched && mv /tmp/backup-loop.patched \\\"$script\\\" && chmod +x \\\"$script\\\"\" did not complete successfully: exit code: 2\n------\n > [2/2] RUN script=/opt/backup-loop.sh; expected=' retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on'; test \"$(grep -Fxc \"$expected\" \"$script\")\" -eq 2 && awk 'previous == \" log INFO \\\"waiting for rcon readiness...\\\"\" { if ($0 != \" retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on\") exit 1; sub(/save-on$/, \"list\"); changed++ } { print; previous=$0 } END { if (changed != 1) exit 1 }' \"$script\" > /tmp/backup-loop.patched && mv /tmp/backup-loop.patched \"$script\" && chmod +x \"$script\":\n0.140 grep: /opt/backup-loop.sh: No such file or directory\n0.140 sh: out of range\n------\nDockerfile.backup:3\n\n--------------------\n\n 2 | FROM ${BACKUP_IMAGE}\n\n 3 | >>> RUN script=/opt/backup-loop.sh; \\\n\n 4 | >>> expected=' retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on'; \\\n\n 5 | >>> test \"$(grep -Fxc \"$expected\" \"$script\")\" -eq 2 && \\\n\n 6 | >>> awk 'previous == \" log INFO \\\"waiting for rcon readiness...\\\"\" { if ($0 != \" retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on\") exit 1; sub(/save-on$/, \"list\"); changed++ } { print; previous=$0 } END { if (changed != 1) exit 1 }' \"$script\" > /tmp/backup-loop.patched && \\\n\n 7 | >>> mv /tmp/backup-loop.patched \"$script\" && chmod +x \"$script\"\n\n 8 | \n\n--------------------\n\nfailed to solve: process \"/bin/sh -c script=/opt/backup-loop.sh; expected=' retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on'; test \\\"$(grep -Fxc \\\"$expected\\\" \\\"$script\\\")\\\" -eq 2 && awk 'previous == \\\" log INFO \\\\\\\"waiting for rcon readiness...\\\\\\\"\\\" { if ($0 != \\\" retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on\\\") exit 1; sub(/save-on$/, \\\"list\\\"); changed++ } { print; previous=$0 } END { if (changed != 1) exit 1 }' \\\"$script\\\" > /tmp/backup-loop.patched && mv /tmp/backup-loop.patched \\\"$script\\\" && chmod +x \\\"$script\\\"\" did not complete successfully: exit code: 2\n\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-71dbba43', '--project-directory', '/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture', '--env-file', '/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/versions.env', '--env-file', '/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/.state/settings.env', '-f', '/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/compose.yaml', '-f', '/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/.state/compose.yaml', 'build', '--progress', 'plain', 'backup']' returned non-zero exit status 1.\"}\n" + }, + { + "command": [ + "/home/coder/dev/minecraft-server-template/.git/wayfinder/logs/final-review-evidence/pin-transition-stable-fixture/scripts/minecraft", + "compose", + "down", + "--volumes", + "--remove-orphans" + ], + "exit": 0, + "output": "" + }, + { + "command": [ + "docker", + "ps", + "-aq", + "--filter", + "label=com.docker.compose.project=minecraft-71dbba43" + ], + "exit": 0, + "output": "" + } +] diff --git a/docs/proof/final-review/report.md b/docs/proof/final-review/report.md new file mode 100644 index 0000000..bea8317 --- /dev/null +++ b/docs/proof/final-review/report.md @@ -0,0 +1,68 @@ +# Independent final review + +Publication note: adopted from the closed independent review ticket. Relative links point to selected redacted evidence or already committed matching artifacts. Command/probe transcripts retain relevant boundaries with repetitive output excerpted. Source fixtures, generated state, raw configuration, unrelated inventories and redundant CI dumps are omitted. Initial cached evidence is `5cd63b7`; final full/cold evidence is `1b6a5ee`. The original findings remain under `../review-findings/`. + +Verdict: all verified findings are fixed on the reviewed final source. Independent runtime and cold-cache probes pass; native AMD64 CI passes on the identical runtime source. Review is complete. Merge still requires Michael's approval. + +Reviewed the complete diff against `b65b463a674ca0caf9fcf76eca5c07a60b1ab9cd`, the implementation prompt, both original independent reports and their public reproductions, committed proof, and source. Initial ticket candidate was `5cd63b7688058295198ac32a7f46062bf5d8c873`, draft [PR #15](https://github.com/sVoxelDev/minecraft-server-template/pull/15). Review also covers the owner's subsequent `9353a5d`, `1b6a5eea6e8684d871e76e7bdb53a3797c88b570`, and evidence-only final publication `63cdf59a18d70952d67f013e01d12e8245a75b1f`. The application, image patch, image context exclusions, pins and protocol client are byte-identical between those candidates. Changes concern the validator's sentinel identity, archive copying and proof documentation. See [source identity](final-source-identity.json). + +This is a fresh native Codex review. No application code, main branch, other ticket, map, GitHub state or downstream agent was changed. Only this ticket and review artifacts were written. All runtime operations used disposable owned deployments and GNU timeout. + +## Verified regression found during this review + +P2 in initial candidate, `scripts/validate:167-168`, `:287-289`: a cold sentinel image makes the full runtime gate fail and leave its sentinel container behind. `execute` merges stderr into stdout. A successful `docker create` that pulls its image therefore returns pull progress plus its container ID. The validator passes that whole string as one resource identifier to `inspect` and `rm`. The removal fails with `page not found`, bypassing the sentinel assertion, inventory export and final resource checks. + +This is independently reproduced through `scripts/validate fullDocker --scenario network` with an uncached pinned platform reference, without deleting any cached image. All 12 network assertions passed before cleanup failed. The reviewer inspected the exact owned sentinel label, removed that sentinel by its unique name, and confirmed the deployment's containers, networks and volumes were absent. Evidence: [red summary](cold-image-runtime/summary.json), [red commands](cold-image-runtime/commands.jsonl), [reviewer cleanup](reviewer-scoped-cleanup.json). + +The original candidate's real AMD64 GitHub run failed the same way after passing all 43 application assertions. Its artifact and job logs were retrieved independently, not inferred from the builder's report. [Run](https://github.com/sVoxelDev/minecraft-server-template/actions/runs/36831029316), [downloaded commands](../review-findings/ci-amd64-cold-image-failure/commands.jsonl), [failure log](../review-findings/ci-amd64-cold-image-failure/summary.json). + +The owner committed `1b6a5ee` during review. It uses the uniquely generated sentinel name for Docker operations and separately inspects and validates its 64-character hex ID for the survival assertion. Fixed and independently confirmed. The cold-cache public rerun passed all 14 assertions, including sentinel survival/removal and complete scoped resource cleanup. [Green summary](final-cold-runtime/summary.json), [green commands](final-cold-runtime/commands.jsonl). + +## Original findings + +Each row names the finding in its original report. Shared findings are listed separately so none disappears into a summary. + +| Original finding | Independently confirmed disposition and evidence | +| --- | --- | +| Standards S1, ambient project identity and pins | Fixed. Fresh public setup/config with contaminated managed variables retained generated identity and exact pins. Old `7cf68b9` independently reproduced both failures. Full runtime stop/down inherited a separate sentinel identity without selecting it. [Old red](independent-old-red.json), [green boundary assertions](pin-final-assertions.json), [runtime commands](final-runtime/commands.jsonl). | +| Standards S2, actual Restic failure reported as success | Fixed. Actual invalid Restic upload limit returned nonzero, retained useful stderr, and saves resumed. The restored server returned the snapshot's original scoreboard value. [Runtime assertions and commands](runtime/assertions.json), [commands](final-runtime/commands.jsonl). | +| Standards S3, concurrent readiness re-enables saves | Fixed. Two actual overlapping jobs passed. The second completed `list` readiness while the first held the post-flush lock; `save-off` reported already disabled. Both snapshots completed and saves resumed. Actual selected derived script retains nonmutating readiness and the remaining recovery commands. [Overlap logs](runtime/overlap-second.log), [assertions](runtime/assertions.json), [image probe](pin-final-events.json). | +| Standards S4, host-network privacy bypass | Fixed. Public doctor rejected server, backup and database host networking. Local gate also checked container, foreign/external and non-bridge networks. Independent old-tree doctor accepted host networking. [Red](independent-old-red.json), [green](pin-final-assertions.json), [local gate](local/commands.jsonl). | +| Standards S5, missing stable external cleanup proof | Fixed on the final source. The survival assertion independently passed in both the full run and the cold-cache rerun. The cold-cache regression discovered during review is also fixed. [Cached cleanup](runtime/cleanup.json), [assertions](runtime/assertions.json), [cold red](cold-image-runtime/summary.json). | +| Standards S6, backslash/apostrophe MOTD makes setup unusable | Fixed. Fresh config preserves literal quotes, backslashes, dollars, unicode and markup. Actual Paper and Velocity status matched the exact requested MOTD. [Boundaries](pin-final-assertions.json), [runtime](runtime/assertions.json). | +| Standards S7, stale GitHub action pins | Pins fixed. Independently checked both official latest-release APIs and tag commits. Current checkout and upload-artifact v7.0.1 identities match the workflows. Local and version CI succeeded. Original runtime CI failed for the separate verified cleanup bug; the final-source AMD64 runtime CI subsequently passed all 45 assertions, including cleanup. [Checkout release](https://github.com/actions/checkout/releases/tag/v7.0.1), [upload release](https://github.com/actions/upload-artifact/releases/tag/v7.0.1), [API records](checkout-tag.json), [upload tag](upload-tag.json), [CI records](final-ci-jobs.json). | +| Spec F1, ambient project/pins and cleanup | Fixed, same independent red/green evidence as Standards S1. | +| Spec F2, inner snapshot failure | Fixed, same real Restic and save-recovery evidence as Standards S2. | +| Spec F3, concurrent consistent backups | Fixed, same two-job evidence as Standards S3. | +| Spec F4, requested proxy MOTD ignored | Fixed. Independent old-tree custom MOTD was absent from generated Velocity config. The candidate's exact literal MOTD reached live proxy status. [Red](independent-old-red.json), [runtime green](runtime/assertions.json). | +| Spec F5, hardcoded version identity and unsupported protocol | Fixed. Reviewed runtime expectations derive versions/builds/jar names/checksums from `versions.env`. Changing the Paper pin to `99.99` made the client use that default and reject it before any connection. Fresh version verification succeeded. [Pin-derived protocol probe](pin-derived-protocol.json), [version verification](version-check.json). | + +## Derived backup image and new risks + +The Dockerfile-specific ignore file excludes everything except the Dockerfile and its ignore file. Three actual Docker builds using that exact ignore file failed to copy benign world, backup-repository and generated-secret canaries because those paths were absent from the context. No real secret was printed. [Context probes](context-probes.json). + +A fresh deployment completed its initial scheduled snapshot and a manual snapshot. Changing only `BACKUP_IMAGE` from the current index digest to its pinned ARM64 child digest changed the effective derived tag even though `settings.env` retained the original tag. Public `start` built/selected that new tag and recreated the sidecar. The resulting image's layers matched the selected base plus the single patch layer. A manual backup then succeeded. Changing the base to the pinned NGINX image made the public build fail the script patch guard. These are real config/start/build operations, not calculations of what a tag should be. [Reproduction](pin-final-events.json), [events](pin-final-events.json), [13 passing boundary assertions](pin-final-assertions.json). + +The changed base reference intentionally selects the same platform software contents through a different digest identity. It proves stale generated settings cannot select the old derived identity. It does not certify an arbitrary future upstream backup version; the exact patch guard and a repeated full gate remain necessary for such an update. + +Exploratory failures are retained rather than hidden. One check assumed a BuildKit-fetched digest would already be available to Docker image inspect; an explicit pull corrected that inspection. Another expected one remaining textual save-on statement; the actual patched script correctly retains two other statements. An early interrupted fixture later reported repository integrity errors. No cause was established and no source bug is asserted from that fixture. The fresh completed-initial-snapshot transition passed, including another manual snapshot. + +## Proof gate and limits + +The exact `5cd63b7` archive independently passed all nine public CLI/config tests and all 45 runtime assertions from 07:35:03 to 07:38:40 UTC. The standalone local gate and fresh publisher version verifier also passed. Source hashes match the committed proof identity. The reports include actual protocol/RCON, persistence, restored contents, real forwarding login/denials, authentication challenges, database persistence/authentication, web serving, inner Restic failure, overlap and scoped cleanup. [Summary](runtime/summary.json), [local summary](local/summary.json), [proof-source comparison](candidate-source-proof-comparison.json). + +Original public red artifacts remain in the candidate's `docs/proof/review-findings`. Independent old-tree red checks supplement them. CLI transcripts are the user-facing behavior artifact, as specified by the implementation ticket. No assertion was skipped. This review does not substitute for the separately dispatched skill evaluator. + +Account-authenticated production play, arbitrary plugin compatibility, a production 1.17 migration, SQL/off-host backup and a six-hour elapsed scheduled tick remain explicitly outside the claimed proof. Native local runtime is ARM64. The final-source real GitHub AMD64 run passed all 45 assertions. Its independently downloaded artifacts exactly match the committed AMD64 proof. Final evidence-only publication retains every tested source hash. Any newer unreviewed source change would need fresh proof. Michael's final merge approval remains mandatory. Review closure does not authorize a merge. + +## Final verdict + +No concrete unresolved bugs remain in the reviewed final source. All original findings are independently confirmed fixed. The new cold-cache cleanup regression found on the ticket's initial candidate is fixed in `1b6a5ee`; its cold-image reproduction now passes. No finding required acceptance in place of a fix. + +The final-source archive independently passed nine CLI/config tests and all 45 runtime assertions from 2026-10-01T07:46:52 through 07:50:34 UTC. The separate uncached-image network run passed nine CLI/config tests and all 14 network/cleanup assertions from 07:46:59 through 07:48:40 UTC. [Final full summary](final-runtime/summary.json), [final assertions](final-runtime/assertions.json), [final cleanup](final-runtime/cleanup.json), [cold-image green](final-cold-runtime/summary.json). Both exported zero remaining owned resources. + +Final-source GitHub AMD64 [runtime CI](https://github.com/sVoxelDev/minecraft-server-template/actions/runs/36831801041) and [version CI](https://github.com/sVoxelDev/minecraft-server-template/actions/runs/36831801029) succeeded. The runtime artifact was downloaded through GitHub, and all eight files exactly matched the subsequent committed proof. The final proof identity matches all ten independently tested source files. [Downloaded AMD64 summary](../review-fixes/runtime-amd64/summary.json), [committed-artifact comparison](ci-committed-proof-comparison.json), [final source comparison](final-committed-proof-comparison.json), [CI jobs](final-ci-jobs.json). + +The SHIP proof gate is satisfied for the reviewed runtime source: preserved old red evidence, independent red/green boundary reproductions, a green complete local/runtime gate, real public behavior transcripts, and closure of every verified finding. Subsequent `63cdf59` only publishes matching proof/documentation, and was also reviewed. Michael's merge approval is still mandatory. This task closes review, not the implementation ticket or merge decision. + +Publication-only commit `63cdf59` had a further CI rerun pending at review closure. Publication addendum: that [final HEAD CI](https://github.com/sVoxelDev/minecraft-server-template/actions/runs/36832545535) subsequently passed local, version and full runtime gates. The green AMD64/full-source result above is for `1b6a5ee`, with identical application/harness hashes. The pending-publication condition has been resolved; Michael's merge approval remains required. [Current publication runs](../../validation.md). diff --git a/docs/proof/final-review/reviewer-scoped-cleanup.json b/docs/proof/final-review/reviewer-scoped-cleanup.json new file mode 100644 index 0000000..a4909af --- /dev/null +++ b/docs/proof/final-review/reviewer-scoped-cleanup.json @@ -0,0 +1,4 @@ +{ + "removed_owned_cold_cache_sentinel": "minecraft-sentinel-a77adf4a1c66ea81", + "remaining": [] +} \ No newline at end of file diff --git a/docs/proof/final-review/runtime/assertions.json b/docs/proof/final-review/runtime/assertions.json new file mode 100644 index 0000000..428c80a --- /dev/null +++ b/docs/proof/final-review/runtime/assertions.json @@ -0,0 +1,182 @@ +[ + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "custom MOTD reached protocol", + "passed": true + }, + { + "assertion": "Paper exact build", + "passed": true + }, + { + "assertion": "Paper downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective standalone authentication and query settings", + "passed": true + }, + { + "assertion": "standalone requires account authentication", + "passed": true + }, + { + "assertion": "wrong RCON password denied", + "passed": true + }, + { + "assertion": "world survives container recreation", + "passed": true + }, + { + "assertion": "encrypted snapshot created", + "passed": true + }, + { + "assertion": "backup flushed world and resumed saves", + "passed": true + }, + { + "assertion": "scheduled backup interval active", + "passed": true + }, + { + "assertion": "backup failure is reported", + "passed": true + }, + { + "assertion": "backup failure resumes automatic saving", + "passed": true + }, + { + "assertion": "inner Restic failure returns nonzero with useful output", + "passed": true + }, + { + "assertion": "inner Restic failure resumes saves", + "passed": true + }, + { + "assertion": "first backup holds lock after flush", + "passed": true + }, + { + "assertion": "second backup completed nonmutating readiness while first locked", + "passed": true + }, + { + "assertion": "overlap cannot enable saving while first holds lock", + "passed": true + }, + { + "assertion": "overlap-first succeeded", + "passed": true + }, + { + "assertion": "overlap-second succeeded", + "passed": true + }, + { + "assertion": "both overlapping backups resume saves", + "passed": true + }, + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "restored server contains snapshot world", + "passed": true + }, + { + "assertion": "database authenticates and round trips data", + "passed": true + }, + { + "assertion": "database survives recreation", + "passed": true + }, + { + "assertion": "database wrong password denied", + "passed": true + }, + { + "assertion": "optional web serves files", + "passed": true + }, + { + "assertion": "26.3 Minecraft status", + "passed": true + }, + { + "assertion": "Vanilla RCON works", + "passed": true + }, + { + "assertion": "Vanilla downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective Vanilla authentication and query settings", + "passed": true + }, + { + "assertion": "Velocity Minecraft status", + "passed": true + }, + { + "assertion": "literal Velocity MOTD reached protocol", + "passed": true + }, + { + "assertion": "backend has no published port", + "passed": true + }, + { + "assertion": "production Velocity online authentication", + "passed": true + }, + { + "assertion": "forwarding secret reaches effective Paper config", + "passed": true + }, + { + "assertion": "Velocity downloaded artifact checksum", + "passed": true + }, + { + "assertion": "production proxy requires account authentication", + "passed": true + }, + { + "assertion": "real client enters play through authenticated modern forwarding", + "passed": true + }, + { + "assertion": "backend logged the real client join", + "passed": true + }, + { + "assertion": "direct backend client denied without forwarding", + "passed": true + }, + { + "assertion": "wrong forwarding secret denies client login", + "passed": true + }, + { + "assertion": "production online authentication restored", + "passed": true + }, + { + "assertion": "unrelated stable sentinel survives contaminated cleanup", + "passed": true + }, + { + "assertion": "owned containers networks and volumes removed", + "passed": true + } +] diff --git a/docs/proof/final-review/runtime/cleanup.json b/docs/proof/final-review/runtime/cleanup.json new file mode 100644 index 0000000..943c2d4 --- /dev/null +++ b/docs/proof/final-review/runtime/cleanup.json @@ -0,0 +1,3 @@ +{ + "remaining": [] +} diff --git a/docs/proof/final-review/runtime/overlap-second.log b/docs/proof/final-review/runtime/overlap-second.log new file mode 100644 index 0000000..f41a491 --- /dev/null +++ b/docs/proof/final-review/runtime/overlap-second.log @@ -0,0 +1,70 @@ + Container minecraft-5cf51e40-backup-run-578c110e55a4 Creating + Container minecraft-5cf51e40-backup-run-578c110e55a4 Created +time="2026-10-01T07:36:02Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:36:03+0000 INFO Repository already initialized +2026-10-01T07:36:03+0000 INFO Checking for stale locks +2026-10-01T07:36:03+0000 INFO Checking repo integrity +2026-10-01T07:36:04+0000 INFO waiting initial delay of 0... +2026-10-01T07:36:04+0000 INFO waiting for rcon readiness... +2026-10-01T07:36:04+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:36:05+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:36:05+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:36:05+0000 INFO Command executed successfully sync +2026-10-01T07:36:05+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:36:05+0000 INFO repo already locked, waiting up to 1m0s for the lock +2026-10-01T07:36:11+0000 INFO using parent snapshot 5abe8541 +2026-10-01T07:36:11+0000 INFO +2026-10-01T07:36:11+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:36:11+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:36:11+0000 INFO Added to the repository: 30.536 KiB (12.360 KiB stored) +2026-10-01T07:36:11+0000 INFO +2026-10-01T07:36:11+0000 INFO processed 182 files, 174.579 MiB in 0:05 +2026-10-01T07:36:11+0000 INFO snapshot 66750d17 saved +2026-10-01T07:36:11+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:36:11+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:36:12+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:36:12+0000 INFO keep 2 snapshots: +2026-10-01T07:36:12+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:36:12+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:36:12+0000 INFO e04df64c 2026-10-01 07:35:30 minecraft mc_backups,server oldest daily snapshot /data 174.579 MiB +2026-10-01T07:36:12+0000 INFO oldest weekly snapshot +2026-10-01T07:36:12+0000 INFO oldest monthly snapshot +2026-10-01T07:36:12+0000 INFO 66750d17 2026-10-01 07:36:05 minecraft mc_backups,server daily snapshot /data 174.579 MiB +2026-10-01T07:36:12+0000 INFO weekly snapshot +2026-10-01T07:36:12+0000 INFO monthly snapshot +2026-10-01T07:36:12+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:36:12+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:36:12+0000 INFO 2 snapshots +2026-10-01T07:36:12+0000 INFO +2026-10-01T07:36:12+0000 INFO remove 1 snapshots: +2026-10-01T07:36:12+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:36:12+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:36:12+0000 INFO 5abe8541 2026-10-01 07:36:04 minecraft mc_backups,server /data 174.579 MiB +2026-10-01T07:36:12+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:36:12+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:36:12+0000 INFO 1 snapshots +2026-10-01T07:36:12+0000 INFO +2026-10-01T07:36:12+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:36:12+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:36:12+0000 INFO loading all snapshots... +2026-10-01T07:36:12+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:36:12+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:36:12+0000 INFO searching used packs... +2026-10-01T07:36:12+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:36:12+0000 INFO [0:00] 100.00% 17 / 17 packs processed +2026-10-01T07:36:12+0000 INFO +2026-10-01T07:36:12+0000 INFO to repack: 8 blobs / 2.309 KiB +2026-10-01T07:36:12+0000 INFO this removes: 7 blobs / 1.469 KiB +2026-10-01T07:36:12+0000 INFO to delete: 17 blobs / 9.947 KiB +2026-10-01T07:36:12+0000 INFO total prune: 24 blobs / 11.416 KiB +2026-10-01T07:36:12+0000 INFO remaining: 607 blobs / 160.184 MiB +2026-10-01T07:36:12+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:36:12+0000 INFO +2026-10-01T07:36:12+0000 INFO repacking packs +2026-10-01T07:36:12+0000 INFO [0:00] 100.00% 1 / 1 packs repacked +2026-10-01T07:36:12+0000 INFO rebuilding index +2026-10-01T07:36:12+0000 INFO [0:00] 100.00% 3 / 3 indexes processed +2026-10-01T07:36:12+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted +2026-10-01T07:36:12+0000 INFO removing 2 old packs +2026-10-01T07:36:12+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:36:12+0000 INFO done diff --git a/docs/proof/final-review/runtime/summary.json b/docs/proof/final-review/runtime/summary.json new file mode 100644 index 0000000..760e37a --- /dev/null +++ b/docs/proof/final-review/runtime/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:35:03.098902+00:00", + "mode": "fullDocker", + "passed": true, + "finished": "2026-10-01T07:38:40.526470+00:00" +} diff --git a/docs/proof/final-review/runtime/versions.env b/docs/proof/final-review/runtime/versions.env new file mode 100644 index 0000000..16264c6 --- /dev/null +++ b/docs/proof/final-review/runtime/versions.env @@ -0,0 +1,13 @@ +SERVER_IMAGE=itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e +PROXY_IMAGE=itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 +BACKUP_IMAGE=itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 +DATABASE_IMAGE=mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1 +WEB_IMAGE=nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 +PAPER_VERSION=26.2 +PAPER_BUILD=129 +VANILLA_VERSION=26.3 +VELOCITY_VERSION=4.2.1-SNAPSHOT +VELOCITY_BUILD_ID=36 +PAPER_SHA256=b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 +VELOCITY_SHA256=62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c +VANILLA_SERVER_SHA1=33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c diff --git a/docs/proof/final-review/upload-tag.json b/docs/proof/final-review/upload-tag.json new file mode 100644 index 0000000..f7faaed --- /dev/null +++ b/docs/proof/final-review/upload-tag.json @@ -0,0 +1 @@ +{"ref":"refs/tags/v7.0.1","node_id":"MDM6UmVmMTkyNjI1OTU1OnJlZnMvdGFncy92Ny4wLjE=","url":"https://api.github.com/repos/actions/upload-artifact/git/refs/tags/v7.0.1","object":{"sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","type":"commit","url":"https://api.github.com/repos/actions/upload-artifact/git/commits/043fb46d1a93c77aae656e7c1c64a875d1fc6a0a"}} \ No newline at end of file diff --git a/docs/proof/final-review/version-check.json b/docs/proof/final-review/version-check.json new file mode 100644 index 0000000..f965183 --- /dev/null +++ b/docs/proof/final-review/version-check.json @@ -0,0 +1,77 @@ +{ + "images": { + "BACKUP_IMAGE": { + "platforms": { + "amd64": "sha256:67af7cc0b97936effa07ab7b24bc957e3b7562f9bbe30ff0ebc731ad1fd0a00a", + "arm": "sha256:b1ca897693f9ec08f34d50a6c86caeded408ca582861671ec6edc67fa78ff1dd", + "arm64": "sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e" + }, + "reference": "itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16" + }, + "DATABASE_IMAGE": { + "platforms": { + "amd64": "sha256:2f4f46f80e7251990bfdc601ae3f7f2964ddb4dc1868f7deca699fc1ece8c35e", + "arm64": "sha256:6b01a23e2550ac37036c3dd6187f790b56832832b53ce4173b8e2b2fed51e3a5", + "ppc64le": "sha256:31c7afbe80e196dec8aaaed602811b6902e09e70ec9a03ac64372760d1eb4a51", + "s390x": "sha256:d6addcff7350368b777769ed002b9a6b773723034edb85959c0b4aa9fd834945" + }, + "reference": "mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1" + }, + "PROXY_IMAGE": { + "platforms": { + "amd64": "sha256:0dca6fbd141e9623057d396922efbb3b31224737bd8a8bbb15461e2a5746164d", + "arm64": "sha256:6869fe181f33f394d96cc43c60bfac02293c75eaf77f9080e2290317d444e85f" + }, + "reference": "itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411" + }, + "SERVER_IMAGE": { + "platforms": { + "amd64": "sha256:fb2f45007e63d33322cc9c3e1c87d1aef533197889e88c5d4e6b2138f4d86620", + "arm64": "sha256:11fb5d3a9eac50eaab80926a90a948b1ba6714122d55e36c704e5bbd086a0429", + "riscv64": "sha256:744be55957502885613c65b213537d04b0e5baaa8f2ec6c10e59fde8ed8e20d2" + }, + "reference": "itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e" + }, + "WEB_IMAGE": { + "platforms": { + "386": "sha256:6b7a4f13aa1cb05946e90cfa70933418e51f99a9604305eec0779737077fa64d", + "amd64": "sha256:8f84ed99befc3891b8f329c5c202785278a2cfb7c25107d57fb2a134a3117433", + "arm": "sha256:3a46b783293cbd9f24fba2fbafdf391b8c8953e8dcbb0da23b841b4783be3c9e", + "arm64": "sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83", + "ppc64le": "sha256:a2056a035f0ae2caef33df498ee2f22756955da24d89cc7840a500356fc1b099", + "riscv64": "sha256:d0f15a8a48f14a06d10b50ab988842126c0d769bd8f7d9f3b27b101b2d6b8ec6", + "s390x": "sha256:b2cc574e70799bfa87616aa5f6f734bef5a36c2822c7cb5efd639b28688c632a" + }, + "reference": "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94" + } + }, + "software": { + "paper": { + "build": "129", + "channel": "STABLE", + "download": "https://fill-data.papermc.io/v1/objects/b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083/paper-26.2-129.jar", + "sha256": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083", + "source": "https://fill.papermc.io/v3/projects/paper/versions/26.2/builds/129", + "version": "26.2" + }, + "vanilla": { + "latest_release": "26.3", + "server": { + "sha1": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c", + "size": 62294556, + "url": "https://piston-data.mojang.com/v1/objects/33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c/server.jar" + }, + "source": "https://piston-meta.mojang.com/v1/packages/4fe1aa1ef8da1cb95c5bad1fb98890ca56dd8ca3/26.3.json", + "version": "26.3" + }, + "velocity": { + "build": "36", + "channel": "STABLE", + "download": "https://fill-data.papermc.io/v1/objects/62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c/velocity-4.2.1-SNAPSHOT-36.jar", + "sha256": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c", + "source": "https://fill.papermc.io/v3/projects/velocity/versions/4.2.1-SNAPSHOT/builds/36", + "version": "4.2.1-SNAPSHOT" + } + }, + "verified_at": "2026-10-01T07:44:46.065109+00:00" +} diff --git a/docs/proof/identity.json b/docs/proof/identity.json new file mode 100644 index 0000000..e739124 --- /dev/null +++ b/docs/proof/identity.json @@ -0,0 +1,12 @@ +{ + "validated_runtime_commit": "bde5ede", + "application_commit": "989aac3", + "fresh_checkout": "git clone --no-hardlinks --single-branch --branch modernize/agent-ready-template", + "source_sha256": { + "compose.yaml": "4c832da5101a5640c2944c90a33e87ae0e5e2098fef0bff1199e985c611c8e05", + "versions.env": "73dbd2e5b0813991ba35171e6899630da3f94774b0e1b5f6c59e48c2d70edcfc", + "scripts/minecraft": "c889dc4aca15b0b13ebde03e713e5fe071773d2a8c7545c403061f6d1f71ef51", + "scripts/status": "a326245845b7fa44831e4eb0e126614cb4a2d16aeec8d75b26ac5f526b35bcbd", + "tests/login.py": "cbb6b114b9500dedc214b210a68b25c8a5a4df90a7641fd34e369c36d211e18b" + } +} diff --git a/docs/proof/local/commands.jsonl b/docs/proof/local/commands.jsonl new file mode 100644 index 0000000..30af21a --- /dev/null +++ b/docs/proof/local/commands.jsonl @@ -0,0 +1 @@ +{"timestamp": "2026-10-01T06:54:59.155326+00:00", "cwd": "/tmp/minecraft-modernize", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 0, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n----------------------------------------------------------------------\nRan 6 tests in 1.405s\n\nOK\n"} diff --git a/docs/proof/local/summary.json b/docs/proof/local/summary.json new file mode 100644 index 0000000..ab6921f --- /dev/null +++ b/docs/proof/local/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T06:54:59.155310+00:00", + "mode": "local", + "passed": true, + "finished": "2026-10-01T06:55:00.612728+00:00" +} diff --git a/docs/proof/one-prompt/cleanup-verification.json b/docs/proof/one-prompt/cleanup-verification.json new file mode 100644 index 0000000..29c59a8 --- /dev/null +++ b/docs/proof/one-prompt/cleanup-verification.json @@ -0,0 +1,18 @@ +{ + "containers": { + "command": "docker ps -a --filter label=com.docker.compose.project=minecraft-c56fd5f6 --format {{.ID}} {{.Names}}", + "exit": 0, + "remaining": [] + }, + "networks": { + "command": "docker network ls --filter label=com.docker.compose.project=minecraft-c56fd5f6 --format {{.ID}} {{.Name}}", + "exit": 0, + "remaining": [] + }, + "volumes": { + "command": "docker volume ls --filter label=com.docker.compose.project=minecraft-c56fd5f6 --format {{.Name}}", + "exit": 0, + "remaining": [] + }, + "gameplay_port_connect_result": 111 +} \ No newline at end of file diff --git a/docs/proof/one-prompt/cleanup.log b/docs/proof/one-prompt/cleanup.log new file mode 100644 index 0000000..1c3e4f5 --- /dev/null +++ b/docs/proof/one-prompt/cleanup.log @@ -0,0 +1,13 @@ +$ /tmp/minecraft-one-prompt-0ampoe4d/scripts/minecraft stop + Container minecraft-c56fd5f6-backup-1 Stopping + Container minecraft-c56fd5f6-backup-1 Stopped + Container minecraft-c56fd5f6-backup-1 Removing + Container minecraft-c56fd5f6-backup-1 Removed + Container minecraft-c56fd5f6-server-1 Stopping + Container minecraft-c56fd5f6-server-1 Stopped + Container minecraft-c56fd5f6-server-1 Removing + Container minecraft-c56fd5f6-server-1 Removed + Network minecraft-c56fd5f6_default Removing + Network minecraft-c56fd5f6_default Removed + +exit=0 diff --git a/docs/proof/one-prompt/credential-paths.json b/docs/proof/one-prompt/credential-paths.json new file mode 100644 index 0000000..8183e08 --- /dev/null +++ b/docs/proof/one-prompt/credential-paths.json @@ -0,0 +1,27 @@ +[ + { + "path": "/tmp/minecraft-one-prompt-0ampoe4d/.state/secrets/database", + "mode": "0o600", + "nonempty": true + }, + { + "path": "/tmp/minecraft-one-prompt-0ampoe4d/.state/secrets/forwarding", + "mode": "0o600", + "nonempty": true + }, + { + "path": "/tmp/minecraft-one-prompt-0ampoe4d/.state/secrets/rcon", + "mode": "0o600", + "nonempty": true + }, + { + "path": "/tmp/minecraft-one-prompt-0ampoe4d/.state/secrets/restic", + "mode": "0o600", + "nonempty": true + }, + { + "path": "/tmp/minecraft-one-prompt-0ampoe4d/.state/secrets/database_root", + "mode": "0o600", + "nonempty": true + } +] \ No newline at end of file diff --git a/docs/proof/one-prompt/doctor.log b/docs/proof/one-prompt/doctor.log new file mode 100644 index 0000000..1cd0262 --- /dev/null +++ b/docs/proof/one-prompt/doctor.log @@ -0,0 +1,4 @@ +$ /tmp/minecraft-one-prompt-0ampoe4d/scripts/minecraft doctor +{"architecture": "arm64", "compose": "5.5.1", "configuration": "valid", "docker": "29.8.0", "pins": {"BACKUP_IMAGE": "itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16", "DATABASE_IMAGE": "mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1", "PAPER_BUILD": "129", "PAPER_SHA256": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083", "PAPER_VERSION": "26.2", "PROXY_IMAGE": "itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411", "SERVER_IMAGE": "itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e", "VANILLA_SERVER_SHA1": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c", "VANILLA_VERSION": "26.3", "VELOCITY_BUILD_ID": "36", "VELOCITY_SHA256": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c", "VELOCITY_VERSION": "4.2.1-SNAPSHOT", "WEB_IMAGE": "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94"}} + +exit=0 diff --git a/docs/proof/one-prompt/evidence-audit.json b/docs/proof/one-prompt/evidence-audit.json new file mode 100644 index 0000000..4502692 --- /dev/null +++ b/docs/proof/one-prompt/evidence-audit.json @@ -0,0 +1,9 @@ +{ + "secret_value_matches": 0, + "generated_fixture_paths_removed": [ + ".state", + "data", + "backups" + ], + "completed": "2026-10-01T07:38:39.118970+00:00" +} \ No newline at end of file diff --git a/docs/proof/one-prompt/heap-process.log b/docs/proof/one-prompt/heap-process.log new file mode 100644 index 0000000..b24edbb --- /dev/null +++ b/docs/proof/one-prompt/heap-process.log @@ -0,0 +1,4 @@ +$ docker top minecraft-c56fd5f6-server-1 -eo args +Error response from daemon: Couldn't find PID field in ps output + +exit=1 diff --git a/docs/proof/one-prompt/java-version.log b/docs/proof/one-prompt/java-version.log new file mode 100644 index 0000000..f8764ed --- /dev/null +++ b/docs/proof/one-prompt/java-version.log @@ -0,0 +1,6 @@ +$ /tmp/minecraft-one-prompt-0ampoe4d/scripts/minecraft compose exec -T server java -version +openjdk version "25.0.4" 2026-07-21 LTS +OpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS) +OpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing) + +exit=0 diff --git a/docs/proof/one-prompt/manual-backup.log b/docs/proof/one-prompt/manual-backup.log new file mode 100644 index 0000000..4a87e14 --- /dev/null +++ b/docs/proof/one-prompt/manual-backup.log @@ -0,0 +1,25 @@ +$ /tmp/minecraft-one-prompt-0ampoe4d/scripts/minecraft backup + Container minecraft-c56fd5f6-backup-run-851a9138e881 Creating + Container minecraft-c56fd5f6-backup-run-851a9138e881 Created +time="2026-10-01T07:36:36Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:36:37+0000 INFO Repository already initialized +2026-10-01T07:36:37+0000 INFO Checking for stale locks +2026-10-01T07:36:37+0000 INFO Checking repo integrity +2026-10-01T07:36:38+0000 INFO waiting initial delay of 0... +2026-10-01T07:36:38+0000 INFO waiting for rcon readiness... +2026-10-01T07:36:38+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:36:38+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:36:38+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:36:38+0000 INFO Command executed successfully sync +2026-10-01T07:36:38+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:36:39+0000 INFO using parent snapshot bca2308a +2026-10-01T07:36:39+0000 INFO +2026-10-01T07:36:39+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:36:39+0000 INFO Dirs: 0 new, 19 changed, 290 unmodified +2026-10-01T07:36:39+0000 INFO Added to the repository: 31.959 KiB (13.171 KiB stored) +2026-10-01T07:36:39+0000 INFO +2026-10-01T07:36:39+0000 INFO processed 182 files, 174.543 MiB in 0:00 +2026-10-01T07:36:39+0000 INFO snapshot b68ac97f saved +2026-10-01T07:36:39+0000 INFO Command executed successfully rcon-cli save-on + +exit=0 diff --git a/docs/proof/one-prompt/protocol.log b/docs/proof/one-prompt/protocol.log new file mode 100644 index 0000000..5d85786 --- /dev/null +++ b/docs/proof/one-prompt/protocol.log @@ -0,0 +1,4 @@ +$ /tmp/minecraft-one-prompt-0ampoe4d/scripts/status --host 127.0.0.1 --port 35673 +{"description": "Minecraft server", "enforcesSecureChat": true, "players": {"max": 20, "online": 0}, "version": {"name": "Paper 26.2", "protocol": 776}} + +exit=0 diff --git a/docs/proof/one-prompt/rcon.log b/docs/proof/one-prompt/rcon.log new file mode 100644 index 0000000..f032cc5 --- /dev/null +++ b/docs/proof/one-prompt/rcon.log @@ -0,0 +1,4 @@ +$ /tmp/minecraft-one-prompt-0ampoe4d/scripts/minecraft command list +There are 0 of a max of 20 players online: + +exit=0 diff --git a/docs/proof/one-prompt/report.md b/docs/proof/one-prompt/report.md new file mode 100644 index 0000000..4ce036b --- /dev/null +++ b/docs/proof/one-prompt/report.md @@ -0,0 +1,43 @@ +# One-prompt independent setup review + +Publication note: this source-blind execution used archive `5cd63b7`, not the final `1b6a5ee` validation harness. Its genuine shipped-skill/START setup proof is distinct from the later independent full/cold review. Selected evidence is redacted; no fixture, generated state, secret value or unrelated host inventory is published. + +Result: passed the requested disposable-server workflow. No setup-material or workflow finding reproduced. Review complete; no code changes or downstream dispatch. + +The clean fixture `/tmp/minecraft-one-prompt-0ampoe4d` archived candidate `5cd63b7688058295198ac32a7f46062bf5d8c873`. Inputs read were the local setup skill, START.md, README.md, routed operations.md, and public CLI help. No implementation, tests, diffs, other reviews or builder proof were read. Explicit disposable EULA consent came from the supplied prompt. Native Codex executed the review, with GNU timeout bounding setup to 420 seconds and subsequent operator commands to 60 seconds. The review completed within its ten-minute cap. + +## Setup and readiness + +The host had Python 3.12.3, Docker Engine 29.8.0, Compose 5.5.1, arm64, about 50 GiB available memory and 29 GiB free disk. The fixture had no existing deployment state or world data. A socket bind selected free port 35673 before setup. + +Command, also retained in [setup-command.txt](setup-command.txt): + +```sh +timeout --signal=TERM --kill-after=15s 420s /tmp/minecraft-one-prompt-0ampoe4d/scripts/minecraft setup --accept-eula --distribution paper --memory 2G --bind 127.0.0.1 --port 35673 --profile backup --start --wait 360 +``` + +Setup exited 0. Doctor reported valid configuration. Server status and Docker health were healthy. The backup sidecar was running and has no Docker healthcheck; its completed snapshot and six-hour sleep prove operational readiness. Only the backup optional profile was enabled. Docker published only `127.0.0.1:35673 -> 25565/tcp`; no RCON port was published. + +Live `scripts/status --host 127.0.0.1 --port 35673` returned Paper 26.2, protocol 776, secure chat enabled, and 0/20 players. Authenticated `scripts/minecraft command list` returned `There are 0 of a max of 20 players online` and exited 0. These were direct checks, not setup-banner inference. See [protocol.log](protocol.log), [rcon.log](rcon.log), [status.log](status.log), [doctor.log](doctor.log) and [runtime.json](runtime.json). + +## Runtime identities and heap + +Server logs identify Paper `26.2-129-ver/26.2@9240f58`, API `26.2.build.129-stable`, and initial/max heap 2G. Container inspection confirms MEMORY=2G. Java reports Temurin `25.0.4+7-LTS`. The server reference and actual image ID are `itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e` and `sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e`. + +The backup base pin is `itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16`. Its running derived image is `minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3`, actual image ID `sha256:651da33a96d3c7e07d82271e6a2170a68c94a19c7b6b22b414087edfae3dc5bd`. Snapshots report restic 0.19.1. See [server-logs.log](server-logs.log), [java-version.log](java-version.log) and [runtime.json](runtime.json). + +Two extra diagnostic commands had limited results. RCON `version` returned its asynchronous checking message; exact Paper identity comes from runtime server logs. `docker top ... -eo args` failed because Docker requires a PID field. No JVM flag listing was obtained; heap evidence is the startup log and container configuration. Neither diagnostic blocked a requested success check. The failed command is retained in [heap-process.log](heap-process.log). + +## Backup proof + +The scheduled sidecar saved snapshot `bca2308a` at 2026-10-01 07:35:39 UTC, enabled saving again and logged `sleeping 6h...`. Its next interval was six hours, approximately 13:35:40 UTC. The operator docs specify retention of seven daily, four weekly and six monthly snapshots. + +Manual `scripts/minecraft backup` exited 0 and saved `b68ac97f` at 07:36:39 UTC. Logs show authenticated readiness, save-off, save-all flush, 182 files processed, snapshot saved and save-on. `scripts/minecraft snapshots` independently listed both snapshot records. The full manual ID is `b68ac97fdbde214c3271f6b0213ca6ae818141590bf3f625ec6bdcadc7928533`. See [scheduled-backup.log](scheduled-backup.log), [manual-backup.log](manual-backup.log) and [snapshots.log](snapshots.log). Restore was not requested and was not tested. + +## Data, secrets and cleanup + +Runtime data used fixture-local `data/server`; the encrypted restic repository used `backups/repository`. Generated settings and five credentials used `.state/` and `.state/secrets/`. Every credential file was nonempty and mode 0600. Only paths and permissions were retained in [credential-paths.json](credential-paths.json). + +`scripts/minecraft stop` exited 0 and removed the two project containers plus `minecraft-c56fd5f6_default`. Project-filtered Docker queries confirm zero containers, networks and volumes. The one-off backup/snapshot containers removed themselves. Port 35673 refused connections after cleanup. Runtime mounts were bind mounts, with no project named volumes. See [cleanup.log](cleanup.log) and [cleanup-verification.json](cleanup-verification.json). + +After checking retained artifacts against all generated secret values, this review removed its fixture's generated `.state`, `data` and `backups` directories. Only redacted evidence and the supplied clean fixture material remain. No host software, firewall, DNS, production data, Docker pruning or unrelated Docker resource mutation occurred. Publication omits unrelated host inventories and isolation comparisons. The retained cleanup verification records only the owned project and gameplay port. Concurrent lanes could independently change other resources. Container images were retained and were not pruned. diff --git a/docs/proof/one-prompt/run.json b/docs/proof/one-prompt/run.json new file mode 100644 index 0000000..bb89dfd --- /dev/null +++ b/docs/proof/one-prompt/run.json @@ -0,0 +1 @@ +{"fixture": "/tmp/minecraft-one-prompt-0ampoe4d", "port": 35673, "started": "2026-10-01T07:35:13.424070+00:00"} \ No newline at end of file diff --git a/docs/proof/one-prompt/runtime.json b/docs/proof/one-prompt/runtime.json new file mode 100644 index 0000000..6e8d374 --- /dev/null +++ b/docs/proof/one-prompt/runtime.json @@ -0,0 +1,124 @@ +[ + { + "name": "minecraft-c56fd5f6-server-1", + "image_reference": "itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e", + "image_id": "sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e", + "state": { + "Status": "running", + "Running": true, + "ExitCode": 0, + "Health": { + "Status": "healthy", + "FailingStreak": 0, + "Log": [ + { + "Start": "2026-10-01T07:35:55.151646345Z", + "End": "2026-10-01T07:35:55.177208189Z", + "ExitCode": 0, + "Output": "localhost:25565 : version=Paper 26.2 online=0 max=20 motd='Minecraft server'\n" + }, + { + "Start": "2026-10-01T07:36:05.178352061Z", + "End": "2026-10-01T07:36:05.203310018Z", + "ExitCode": 0, + "Output": "localhost:25565 : version=Paper 26.2 online=0 max=20 motd='Minecraft server'\n" + }, + { + "Start": "2026-10-01T07:36:15.204073336Z", + "End": "2026-10-01T07:36:15.22922864Z", + "ExitCode": 0, + "Output": "localhost:25565 : version=Paper 26.2 online=0 max=20 motd='Minecraft server'\n" + }, + { + "Start": "2026-10-01T07:36:25.229784334Z", + "End": "2026-10-01T07:36:25.254614103Z", + "ExitCode": 0, + "Output": "localhost:25565 : version=Paper 26.2 online=0 max=20 motd='Minecraft server'\n" + }, + { + "Start": "2026-10-01T07:36:35.255036251Z", + "End": "2026-10-01T07:36:35.294874231Z", + "ExitCode": 0, + "Output": "localhost:25565 : version=Paper 26.2 online=0 max=20 motd='Minecraft server'\n" + } + ] + } + }, + "ports": { + "25565/tcp": [ + { + "HostIp": "127.0.0.1", + "HostPort": "35673" + } + ] + }, + "heap": { + "MEMORY": "2G" + }, + "mounts": [ + { + "type": "bind", + "source": "/tmp/minecraft-one-prompt-0ampoe4d/configs/server", + "destination": "/config", + "rw": false + }, + { + "type": "bind", + "source": "/tmp/minecraft-one-prompt-0ampoe4d/data/server", + "destination": "/data", + "rw": true + }, + { + "type": "bind", + "source": "/tmp/minecraft-one-prompt-0ampoe4d/plugins/server", + "destination": "/plugins", + "rw": false + }, + { + "type": "bind", + "source": "/tmp/minecraft-one-prompt-0ampoe4d/.state/secrets/rcon", + "destination": "/run/secrets/rcon", + "rw": false + } + ] + }, + { + "name": "minecraft-c56fd5f6-backup-1", + "image_reference": "minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3", + "image_id": "sha256:651da33a96d3c7e07d82271e6a2170a68c94a19c7b6b22b414087edfae3dc5bd", + "state": { + "Status": "running", + "Running": true, + "ExitCode": 0, + "Health": null + }, + "ports": {}, + "heap": {}, + "mounts": [ + { + "type": "bind", + "source": "/tmp/minecraft-one-prompt-0ampoe4d/backups", + "destination": "/backups", + "rw": true + }, + { + "type": "bind", + "source": "/tmp/minecraft-one-prompt-0ampoe4d/data/server", + "destination": "/data", + "rw": false + }, + { + "type": "bind", + "source": "/tmp/minecraft-one-prompt-0ampoe4d/.state/secrets/rcon", + "destination": "/run/secrets/rcon", + "rw": false + }, + { + "type": "bind", + "source": "/tmp/minecraft-one-prompt-0ampoe4d/.state/secrets/restic", + "destination": "/run/secrets/restic", + "rw": false + } + ] + } +] \ No newline at end of file diff --git a/docs/proof/one-prompt/scheduled-backup.log b/docs/proof/one-prompt/scheduled-backup.log new file mode 100644 index 0000000..4da52a9 --- /dev/null +++ b/docs/proof/one-prompt/scheduled-backup.log @@ -0,0 +1,27 @@ +$ /tmp/minecraft-one-prompt-0ampoe4d/scripts/minecraft compose logs --tail 100 backup +backup-1 | time="2026-10-01T07:35:35Z" level=info msg="Skipping uid/gid change since current user is not root" +backup-1 | 2026-10-01T07:35:35+0000 INFO Initializing new restic repository... +backup-1 | 2026-10-01T07:35:38+0000 INFO created restic repository aa64663ba2 at /backups/repository +backup-1 | 2026-10-01T07:35:38+0000 INFO +backup-1 | 2026-10-01T07:35:38+0000 INFO Please note that knowledge of your password is required to access +backup-1 | 2026-10-01T07:35:38+0000 INFO the repository. Losing your password means that your data is +backup-1 | 2026-10-01T07:35:38+0000 INFO irrecoverably lost. +backup-1 | 2026-10-01T07:35:38+0000 INFO waiting initial delay of 0... +backup-1 | 2026-10-01T07:35:38+0000 INFO waiting for rcon readiness... +backup-1 | 2026-10-01T07:35:38+0000 INFO Command executed successfully rcon-cli list +backup-1 | 2026-10-01T07:35:38+0000 INFO Command executed successfully rcon-cli save-off +backup-1 | 2026-10-01T07:35:38+0000 INFO Command executed successfully rcon-cli save-all flush +backup-1 | 2026-10-01T07:35:38+0000 INFO Command executed successfully sync +backup-1 | 2026-10-01T07:35:38+0000 INFO Backing up content in /data as host minecraft +backup-1 | 2026-10-01T07:35:39+0000 INFO no parent snapshot found, will read all files +backup-1 | 2026-10-01T07:35:39+0000 INFO +backup-1 | 2026-10-01T07:35:39+0000 INFO Files: 182 new, 0 changed, 0 unmodified +backup-1 | 2026-10-01T07:35:39+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified +backup-1 | 2026-10-01T07:35:39+0000 INFO Added to the repository: 174.706 MiB (160.251 MiB stored) +backup-1 | 2026-10-01T07:35:39+0000 INFO +backup-1 | 2026-10-01T07:35:39+0000 INFO processed 182 files, 174.543 MiB in 0:01 +backup-1 | 2026-10-01T07:35:39+0000 INFO snapshot bca2308a saved +backup-1 | 2026-10-01T07:35:39+0000 INFO Command executed successfully rcon-cli save-on +backup-1 | 2026-10-01T07:35:40+0000 INFO sleeping 6h... + +exit=0 diff --git a/docs/proof/one-prompt/server-logs.log b/docs/proof/one-prompt/server-logs.log new file mode 100644 index 0000000..523dbb8 --- /dev/null +++ b/docs/proof/one-prompt/server-logs.log @@ -0,0 +1,113 @@ +$ /tmp/minecraft-one-prompt-0ampoe4d/scripts/minecraft compose logs --tail 250 server +server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 2 1001 1002 4096 Oct 1 07:35 /data' +server-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0 +server-1 | [init] Resolving type given PAPER +server-1 | [mc-image-helper] 07:35:16.712 INFO : Downloaded /data/paper-26.2-129.jar +server-1 | [init] Copying any plugins from /plugins to /data/plugins +server-1 | [init] Copying any configs from /config to /data +server-1 | [init] Creating server properties in /data/server.properties +server-1 | [init] Disabling whitelist functionality +server-1 | [mc-image-helper] 07:35:19.427 INFO : Created/updated 10 properties in /data/server.properties +server-1 | [init] Setting initial memory to 2G and max to 2G +server-1 | [init] Starting the Minecraft server... +server-1 | Downloading mojang_26.2.jar +server-1 | Applying patches +server-1 | Starting org.bukkit.craftbukkit.Main +server-1 | 2026-10-01T07:35:25.341129546Z ServerMain WARN Advanced terminal features are not available in this environment +server-1 | [07:35:25 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64) +server-1 | [07:35:25 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2 +server-1 | [07:35:25 INFO]: [PluginInitializerManager] Initializing plugins... +server-1 | [07:35:25 INFO]: [PluginInitializerManager] Initialized 0 plugins +server-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called +server-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar) +server-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe +server-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release +server-1 | [07:35:28 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter... +server-1 | [07:35:28 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD] +server-1 | [07:35:28 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 271.3ms +server-1 | [07:35:28 INFO]: Found new data pack paper, loading it automatically +server-1 | [07:35:29 INFO]: No existing world data, creating new world +server-1 | [07:35:29 INFO]: Loaded 1585 recipes +server-1 | [07:35:29 INFO]: Loaded 1688 advancements +server-1 | [07:35:29 INFO]: Starting minecraft server version 26.2 +server-1 | [07:35:29 INFO]: Loading properties +server-1 | [07:35:29 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable) +server-1 | [07:35:29 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling +server-1 | [07:35:30 INFO]: Server Ping Player Sample Count: 12 +server-1 | [07:35:30 INFO]: Using 4 threads for Netty based IO +server-1 | [07:35:30 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads +server-1 | [07:35:30 INFO]: Default game type: SURVIVAL +server-1 | [07:35:30 INFO]: Generating keypair +server-1 | [07:35:30 INFO]: Starting Minecraft server on *:25565 +server-1 | [07:35:30 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity. +server-1 | [07:35:30 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity. +server-1 | [07:35:30 INFO]: Preparing level "world" +server-1 | [07:35:30 INFO]: Selecting spawn point for level 'minecraft:overworld'... +server-1 | [07:35:32 INFO]: Selecting spawn point for level 'minecraft:the_nether'... +server-1 | [07:35:32 INFO]: Selecting spawn point for level 'minecraft:the_end'... +server-1 | [07:35:32 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'... +server-1 | [07:35:32 INFO]: Preparing spawn area: 100% +server-1 | [07:35:32 INFO]: Prepared spawn area in 2171 ms +server-1 | [07:35:32 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'... +server-1 | [07:35:32 INFO]: Preparing spawn area: 100% +server-1 | [07:35:32 INFO]: Prepared spawn area in 400 ms +server-1 | [07:35:32 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'... +server-1 | [07:35:32 INFO]: Preparing spawn area: 100% +server-1 | [07:35:32 INFO]: Prepared spawn area in 111 ms +server-1 | [07:35:32 INFO]: Done preparing level "world" (2.410s) +server-1 | [07:35:33 INFO]: [spark] Starting background profiler... +server-1 | [07:35:33 INFO]: Starting remote control listener +server-1 | [07:35:33 INFO]: Thread RCON Listener started +server-1 | [07:35:33 INFO]: RCON running on 0.0.0.0:25575 +server-1 | [07:35:33 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld +server-1 | [07:35:33 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether +server-1 | [07:35:33 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end +server-1 | [07:35:33 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved +server-1 | [07:35:33 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved +server-1 | [07:35:33 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved +server-1 | [07:35:33 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved +server-1 | [07:35:33 INFO]: Running delayed init tasks +server-1 | [07:35:33 INFO]: Done (8.290s)! For help, type "help" +server-1 | [07:35:33 INFO]: ************************************************************************************* +server-1 | [07:35:33 INFO]: This is the first time you're starting this server. +server-1 | [07:35:33 INFO]: It's recommended you read our 'Getting Started' documentation for guidance. +server-1 | [07:35:33 INFO]: View this and more helpful information here: https://docs.papermc.io/paper/next-steps +server-1 | [07:35:33 INFO]: ************************************************************************************* +server-1 | [07:35:36 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started +server-1 | [07:35:36 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down +server-1 | [07:35:38 INFO]: Thread RCON Client /172.20.0.3 started +server-1 | [07:35:38 INFO]: Thread RCON Client /172.20.0.3 shutting down +server-1 | [07:35:38 INFO]: Thread RCON Client /172.20.0.3 started +server-1 | [07:35:38 INFO]: [Rcon: Automatic saving is now disabled] +server-1 | [07:35:38 INFO]: Thread RCON Client /172.20.0.3 shutting down +server-1 | [07:35:38 INFO]: Thread RCON Client /172.20.0.3 started +server-1 | [07:35:38 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved +server-1 | [07:35:38 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved +server-1 | [07:35:38 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved +server-1 | [07:35:38 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved +server-1 | [07:35:38 INFO]: [Rcon: Saved the game] +server-1 | [07:35:38 INFO]: Thread RCON Client /172.20.0.3 shutting down +server-1 | [07:35:39 INFO]: Thread RCON Client /172.20.0.3 started +server-1 | [07:35:39 INFO]: [Rcon: Automatic saving is now enabled] +server-1 | [07:35:39 INFO]: Thread RCON Client /172.20.0.3 shutting down +server-1 | [07:36:06 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started +server-1 | [07:36:06 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down +server-1 | [07:36:06 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started +server-1 | [07:36:06 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down +server-1 | [07:36:38 INFO]: Thread RCON Client /172.20.0.4 started +server-1 | [07:36:38 INFO]: Thread RCON Client /172.20.0.4 shutting down +server-1 | [07:36:38 INFO]: Thread RCON Client /172.20.0.4 started +server-1 | [07:36:38 INFO]: [Rcon: Automatic saving is now disabled] +server-1 | [07:36:38 INFO]: Thread RCON Client /172.20.0.4 shutting down +server-1 | [07:36:38 INFO]: Thread RCON Client /172.20.0.4 started +server-1 | [07:36:38 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved +server-1 | [07:36:38 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved +server-1 | [07:36:38 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved +server-1 | [07:36:38 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved +server-1 | [07:36:38 INFO]: [Rcon: Saved the game] +server-1 | [07:36:38 INFO]: Thread RCON Client /172.20.0.4 shutting down +server-1 | [07:36:39 INFO]: Thread RCON Client /172.20.0.4 started +server-1 | [07:36:39 INFO]: [Rcon: Automatic saving is now enabled] +server-1 | [07:36:39 INFO]: Thread RCON Client /172.20.0.4 shutting down + +exit=0 diff --git a/docs/proof/one-prompt/setup-command.txt b/docs/proof/one-prompt/setup-command.txt new file mode 100644 index 0000000..af9256f --- /dev/null +++ b/docs/proof/one-prompt/setup-command.txt @@ -0,0 +1 @@ +timeout --signal=TERM --kill-after=15s 420s /tmp/minecraft-one-prompt-0ampoe4d/scripts/minecraft setup --accept-eula --distribution paper --memory 2G --bind 127.0.0.1 --port 35673 --profile backup --start --wait 360 diff --git a/docs/proof/one-prompt/setup.log b/docs/proof/one-prompt/setup.log new file mode 100644 index 0000000..042c760 --- /dev/null +++ b/docs/proof/one-prompt/setup.log @@ -0,0 +1,24 @@ +There are 0 of a max of 20 players online: +{"distribution": "paper", "network": false, "profiles": ["backup"], "setup": "created"} +{"architecture": "arm64", "compose": "5.5.1", "configuration": "valid", "docker": "29.8.0", "pins": {"BACKUP_IMAGE": "itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16", "DATABASE_IMAGE": "mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1", "PAPER_BUILD": "129", "PAPER_SHA256": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083", "PAPER_VERSION": "26.2", "PROXY_IMAGE": "itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411", "SERVER_IMAGE": "itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e", "VANILLA_SERVER_SHA1": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c", "VANILLA_VERSION": "26.3", "VELOCITY_BUILD_ID": "36", "VELOCITY_SHA256": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c", "VELOCITY_VERSION": "4.2.1-SNAPSHOT", "WEB_IMAGE": "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94"}} +{"ready": true} + Network minecraft-c56fd5f6_default Creating + Network minecraft-c56fd5f6_default Creating + Network minecraft-c56fd5f6_default Created + Network minecraft-c56fd5f6_default Created + Container minecraft-c56fd5f6-server-1 Creating + Container minecraft-c56fd5f6-server-1 Created + Container minecraft-c56fd5f6-backup-1 Creating + Container minecraft-c56fd5f6-backup-1 Created + Container minecraft-c56fd5f6-server-1 Starting + Container minecraft-c56fd5f6-server-1 Started + Container minecraft-c56fd5f6-server-1 Waiting + Container minecraft-c56fd5f6-server-1 Healthy + Container minecraft-c56fd5f6-backup-1 Starting + Container minecraft-c56fd5f6-backup-1 Started + Container minecraft-c56fd5f6-backup-1 Waiting + Container minecraft-c56fd5f6-server-1 Waiting + Container minecraft-c56fd5f6-backup-1 Healthy + Container minecraft-c56fd5f6-server-1 Healthy + +exit=0 diff --git a/docs/proof/one-prompt/snapshots.log b/docs/proof/one-prompt/snapshots.log new file mode 100644 index 0000000..8b106b0 --- /dev/null +++ b/docs/proof/one-prompt/snapshots.log @@ -0,0 +1,6 @@ +$ /tmp/minecraft-one-prompt-0ampoe4d/scripts/minecraft snapshots +[{"time":"2026-10-01T07:35:38.631911195Z","tree":"d36c2268c57cce23d600e28696e3c58a1bf41b5d83b534a1d2ad5b44542ad0fa","paths":["/data"],"hostname":"minecraft","excludes":["cache","logs","*.tmp"],"tags":["mc_backups","server"],"program_version":"restic 0.19.1","summary":{"backup_start":"2026-10-01T07:35:38.631911195Z","backup_end":"2026-10-01T07:35:39.773255378Z","files_new":182,"files_changed":0,"files_unmodified":0,"dirs_new":309,"dirs_changed":0,"dirs_unmodified":0,"data_blobs":279,"tree_blobs":308,"data_added":183192093,"data_added_packed":168035618,"total_files_processed":182,"total_bytes_processed":183021885},"id":"bca2308a6c38b4d7af8bed559505212011760630bdaa6e7cc8d77ddf6b8b8f63","short_id":"bca2308a"},{"time":"2026-10-01T07:36:38.76601058Z","parent":"bca2308a6c38b4d7af8bed559505212011760630bdaa6e7cc8d77ddf6b8b8f63","tree":"f826f4f7429f2c37d791bb7e412c11d80842d4f2148e3964170be18f12eb2c4e","paths":["/data"],"hostname":"minecraft","excludes":["cache","logs","*.tmp"],"tags":["mc_backups","server"],"program_version":"restic 0.19.1","summary":{"backup_start":"2026-10-01T07:36:38.76601058Z","backup_end":"2026-10-01T07:36:39.511982508Z","files_new":0,"files_changed":15,"files_unmodified":167,"dirs_new":0,"dirs_changed":19,"dirs_unmodified":290,"data_blobs":7,"tree_blobs":19,"data_added":32726,"data_added_packed":13487,"total_files_processed":182,"total_bytes_processed":183021910},"id":"b68ac97fdbde214c3271f6b0213ca6ae818141590bf3f625ec6bdcadc7928533","short_id":"b68ac97f"}] + Container minecraft-c56fd5f6-backup-run-f32138c8b0cd Creating + Container minecraft-c56fd5f6-backup-run-f32138c8b0cd Created + +exit=0 diff --git a/docs/proof/one-prompt/status.log b/docs/proof/one-prompt/status.log new file mode 100644 index 0000000..a88bd24 --- /dev/null +++ b/docs/proof/one-prompt/status.log @@ -0,0 +1,5 @@ +$ /tmp/minecraft-one-prompt-0ampoe4d/scripts/minecraft status +{"Command":"\"/usr/bin/backup loop\"","CreatedAt":"2026-10-01 07:35:14 +0000 UTC","Engine":"","ExitCode":0,"Health":"","ID":"0a600ec56bf7","Image":"minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3","Labels":"com.docker.compose.version=5.5.1,com.docker.compose.config-hash=9885b370231c41088b0ef4c50632c57a8155d7a7bc69f85e9341eab74d1783bc,com.docker.compose.image=sha256:876315e26cd178dc5b490d9000fd18d5e14f863ab5620fe803f07cd4366e1f03,com.docker.compose.project.config_files=/tmp/minecraft-one-prompt-0ampoe4d/compose.yaml,/tmp/minecraft-one-prompt-0ampoe4d/.state/compose.yaml,com.docker.compose.project.environment_file=/tmp/minecraft-one-prompt-0ampoe4d/versions.env,/tmp/minecraft-one-prompt-0ampoe4d/.state/settings.env,com.docker.compose.service=backup,org.opencontainers.image.revision=4a02d7b8ffc37f678b5641389d303dade53191c4,org.opencontainers.image.source=https://github.com/itzg/docker-mc-backup,com.docker.compose.container-number=1,com.docker.compose.oneoff=False,org.opencontainers.image.version=2026.9.3,org.opencontainers.image.created=2026-09-30T18:56:38.561Z,org.opencontainers.image.description=Provides a side-car container to backup itzg/minecraft-server server data,org.opencontainers.image.licenses=MIT,com.docker.compose.depends_on=server:service_healthy:false,com.docker.compose.project=minecraft-c56fd5f6,com.docker.compose.project.working_dir=/tmp/minecraft-one-prompt-0ampoe4d,org.opencontainers.image.title=docker-mc-backup,org.opencontainers.image.url=https://github.com/itzg/docker-mc-backup","LocalVolumes":"0","Mounts":"/tmp/minecraft…,/tmp/minecraft…,/tmp/minecraft…,/tmp/minecraft…","Name":"minecraft-c56fd5f6-backup-1","Names":"minecraft-c56fd5f6-backup-1","Networks":"minecraft-c56fd5f6_default","Ports":"","Project":"minecraft-c56fd5f6","Publishers":[],"RunningFor":"52 seconds ago","Service":"backup","Size":"0B","State":"running","Status":"Up 30 seconds"} +{"Command":"\"/image/scripts/start\"","CreatedAt":"2026-10-01 07:35:13 +0000 UTC","Engine":"","ExitCode":0,"Health":"healthy","ID":"6bcb72ab109e","Image":"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e","Labels":"com.docker.compose.service=server,org.opencontainers.image.url=https://github.com/itzg/docker-minecraft-server,com.docker.compose.image=sha256:11fb5d3a9eac50eaab80926a90a948b1ba6714122d55e36c704e5bbd086a0429,com.docker.compose.version=5.5.1,org.opencontainers.image.created=2026-09-25T14:21:11.555Z,org.opencontainers.image.description=Docker image that provides a Minecraft Server for Java Edition that automatically installs/upgrades versions, modloaders, modpacks and more at startup,org.opencontainers.image.licenses=Apache-2.0,org.opencontainers.image.title=docker-minecraft-server,com.docker.compose.config-hash=6afac81bb054ed33969242069dc2b998df24ea22c561db45e02d998da3eec2c3,org.opencontainers.image.authors=Geoff Bourne \u003citzgeoff@gmail.com\u003e,com.docker.compose.depends_on=,com.docker.compose.project=minecraft-c56fd5f6,com.docker.compose.project.environment_file=/tmp/minecraft-one-prompt-0ampoe4d/versions.env,/tmp/minecraft-one-prompt-0ampoe4d/.state/settings.env,com.docker.compose.project.working_dir=/tmp/minecraft-one-prompt-0ampoe4d,org.opencontainers.image.revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0,org.opencontainers.image.source=https://github.com/itzg/docker-minecraft-server,org.opencontainers.image.version=2026.9.2,com.docker.compose.container-number=1,com.docker.compose.oneoff=False,com.docker.compose.project.config_files=/tmp/minecraft-one-prompt-0ampoe4d/compose.yaml,/tmp/minecraft-one-prompt-0ampoe4d/.state/compose.yaml","LocalVolumes":"0","Mounts":"/tmp/minecraft…,/tmp/minecraft…,/tmp/minecraft…,/tmp/minecraft…","Name":"minecraft-c56fd5f6-server-1","Names":"minecraft-c56fd5f6-server-1","Networks":"minecraft-c56fd5f6_default","Ports":"127.0.0.1:35673-\u003e25565/tcp","Project":"minecraft-c56fd5f6","Publishers":[{"URL":"127.0.0.1","TargetPort":25565,"PublishedPort":35673,"Protocol":"tcp"}],"RunningFor":"53 seconds ago","Service":"server","Size":"0B","State":"running","Status":"Up 51 seconds (healthy)"} + +exit=0 diff --git a/docs/proof/review-findings/baseline-report.md b/docs/proof/review-findings/baseline-report.md new file mode 100644 index 0000000..ffc879b --- /dev/null +++ b/docs/proof/review-findings/baseline-report.md @@ -0,0 +1,60 @@ +# Docker baseline and validation contract + +Captured 2026-10-01 UTC from `/tmp/minecraft-baseline`, branch `task/docker-baseline`, commit `b65b463a674ca0caf9fcf76eca5c07a60b1ab9cd`. No template code changed. Only `environment.md` and this ticket's baseline artifacts were written. No stack was started, no merge or external message was sent, and no unrelated container, volume, image, network or host setting was changed. + +## Host facts + +- Docker client and daemon 29.8.0 are reachable, both Linux ARM64. Compose plugin 5.5.1 works as `docker compose`; `docker-compose` is absent. +- Daemon reports 16 CPUs and 66,190,868,480 bytes of RAM. `free` reports 61 GiB total, 45 GiB available, and no swap. Root filesystem has 28 GB available of 193 GB, 86% used. Download and world sizes must fit that limited disk budget. +- There are 23 unrelated containers, 11 running, primarily PostHog and development routers. Existing bridge networks are `bridge` and `posthog_default`, plus `host` and `none`. No cached Minecraft, proxy, backup or MariaDB image was listed. ARM64 support and image download success for those images remain unverified. +- At capture, `ss` showed no host listeners on 80, 443, 25565, 25566, 25575, 25577, 5005 or 8080. Existing services use 8123, 8443, 9000, 9009, 9440, 5432, 2181, 9093, 19000 and 19001, among others. Recheck before launch; absence of a listener is not a port reservation. Dynmap's internal default 8123 overlaps a host service if a future override publishes it unchanged. +- A disposable cached `redis:7.2-alpine` shell probe used `--pull=never`, no network, no published port, a read-only filesystem, dropped capabilities and 32 MB memory. It timed out after 20 seconds with exit 124 and no shell output. A later event showed container creation, and a later `ps` found it in `Created` state after an earlier empty `ps` result. Exact-name removal succeeded; the final absence log is authoritative. Container execution has not been proven on this host. Allow bounded daemon startup time and reconcile delayed resource creation before declaring cleanup complete. + +Evidence: [host](host.log), [inventory and listeners](docker-inventory.log), [tiny probe](tiny-container.log), [delayed create event](tiny-container-events.log), [exact-name removal](tiny-container-cleanup.log), [final absence](tiny-container-final-absence.log). + +## Reproduced failures + +| Probe | Result | Meaning | +| --- | --- | --- | +| `bash dc.sh config --quiet` | Exit 127 | Obsolete `docker-compose` invocation prevents the documented production launch. | +| `bash minimal.sh config --quiet` | Exit 127 | Same failure blocks the documented development launch. | +| `docker compose -f docker-compose.main.yml config --quiet` | Exit 1 | Duplicate `CFG_SERVER_NAME` keys at lines 13 and 15 prevent parsing. | +| All production fragments with modern Compose | Exit 1 | Main fragment's duplicate key prevents full-stack resolution before runtime. | +| Fresh minimal fragment with modern Compose | Exit 1 | Missing `sql.secrets.env`; unset `CURRENT_USER` also warns. | +| `bash init.sh ] 116B/116B\n d1f1d0a4cd2c Verifying Checksum \n d1f1d0a4cd2c Download complete \n b4bd6fae5549 Downloading [==================================================>] 1.341kB/1.341kB\n b4bd6fae5549 Verifying Checksum \n b4bd6fae5549 Download complete \n b4bd6fae5549 Extracting [==================================================>] 1.341kB/1.341kB\n b4bd6fae5549 Extracting [==================================================>] 1.341kB/1.341kB\n 3b72eb79f0f5 Downloading [> ] 64.94kB/5.246MB\n 3b72eb79f0f5 Download complete \n b4bd6fae5549 Pull complete \n 3b72eb79f0f5 Extracting [> ] 65.54kB/5.246MB\n 3b72eb79f0f5 Extracting [========================> ] 2.556MB/5.246MB\n 60e6ed308d6f Downloading [==================================================>] 327B/327B\n 60e6ed308d6f Verifying Checksum \n 60e6ed308d6f Download complete \n dd4a227feb44 Downloading [> ] 525.2kB/70.4MB\n 50521443ed25 Downloading [===========================================> ] 3.5kB/4.035kB\n 50521443ed25 Downloading [==================================================>] 4.035kB/4.035kB\n 50521443ed25 Verifying Checksum \n 50521443ed25 Download complete \n 3b72eb79f0f5 Extracting [============================================> ] 4.653MB/5.246MB\n dd4a227feb44 Downloading [=====> ] 7.901MB/70.4MB\n 3b72eb79f0f5 Extracting [=============================================> ] 4.784MB/5.246MB\n dd4a227feb44 Downloading [============> ] 16.91MB/70.4MB\n 67227d402a14 Downloading [====================> ] 3.5kB/8.494kB\n 67227d402a14 Downloading [==================================================>] 8.494kB/8.494kB\n 67227d402a14 Verifying Checksum \n 67227d402a14 Download complete \n 3b72eb79f0f5 Extracting [==================================================>] 5.246MB/5.246MB\n 6feed5b2ec5c Downloading [> ] 130.5kB/11.44MB\n 6feed5b2ec5c Verifying Checksum \n 6feed5b2ec5c Download complete \n 6feed5b2ec5c Extracting [> ] 131.1kB/11.44MB\n 3b72eb79f0f5 Pull complete \n d1f1d0a4cd2c Extracting [==================================================>] 116B/116B\n d1f1d0a4cd2c Extracting [==================================================>] 116B/116B\n dd4a227feb44 Downloading [==============================> ] 42.54MB/70.4MB\n d1f1d0a4cd2c Pull complete \n 60e6ed308d6f Extracting [==================================================>] 327B/327B\n 60e6ed308d6f Extracting [==================================================>] 327B/327B\n 60e6ed308d6f Pull complete \n 6feed5b2ec5c Extracting [=> ] 393.2kB/11.44MB\n dd4a227feb44 Verifying Checksum \n dd4a227feb44 Download complete \n ae73d3b72fc6 Downloading [> ] 540.1kB/63.08MB\n dd4a227feb44 Extracting [> ] 557.1kB/70.4MB\n 4f4fb700ef54 Downloading [==================================================>] 32B/32B\n 4f4fb700ef54 Verifying Checksum \n 4f4fb700ef54 Download complete \n 6feed5b2ec5c Extracting [================> ] 3.67MB/11.44MB\n ae73d3b72fc6 Downloading [======================> ] 28.11MB/63.08MB\n dd4a227feb44 Extracting [===> ] 4.456MB/70.4MB\n 6feed5b2ec5c Extracting [==========================> ] 6.16MB/11.44MB\n d53e85d07d74 Downloading [==================================================>] 2.465kB/2.465kB\n d53e85d07d74 Verifying Checksum \n d53e85d07d74 Download complete \n ae73d3b72fc6 Downloading [=========================================> ] 52.44MB/63.08MB\n dd4a227feb44 Extracting [=====> ] 7.799MB/70.4MB\n ae73d3b72fc6 Download complete \n 6feed5b2ec5c Extracting [=====================================> ] 8.52MB/11.44MB\n b848944be864 Downloading [> ] 540.5kB/171.5MB\n dd4a227feb44 Extracting [=========> ] 13.93MB/70.4MB\n 6feed5b2ec5c Extracting [============================================> ] 10.09MB/11.44MB\n b848944be864 Downloading [=======> ] 26.64MB/171.5MB\n 9ebe4816f1dd Downloading [=> ] 16.38kB/783.6kB\n 9ebe4816f1dd Downloading [==================================================>] 783.6kB/783.6kB\n 9ebe4816f1dd Verifying Checksum \n 9ebe4816f1dd Download complete \n dd4a227feb44 Extracting [=============> ] 18.38MB/70.4MB\n 23b9d66badbc Downloading [==================================================>] 1.294kB/1.294kB\n 23b9d66badbc Verifying Checksum \n 23b9d66badbc Download complete \n b848944be864 Downloading [================> ] 56.53MB/171.5MB\n dd4a227feb44 Extracting [===============> ] 22.28MB/70.4MB\n b848944be864 Downloading [========================> ] 84.87MB/171.5MB\n 6feed5b2ec5c Extracting [===============================================> ] 10.88MB/11.44MB\n 952cc891a60e Downloading [> ] 49.15kB/3.557MB\n dd4a227feb44 Extracting [==================> ] 26.18MB/70.4MB\n aac82a21e07d Downloading [> ] 49.15kB/3.557MB\n b848944be864 Downloading [================================> ] 112.6MB/171.5MB\n aac82a21e07d Verifying Checksum \n aac82a21e07d Download complete \n 952cc891a60e Verifying Checksum \n 952cc891a60e Download complete \n 6feed5b2ec5c Extracting [==================================================>] 11.44MB/11.44MB\n b848944be864 Downloading [========================================> ] 139.8MB/171.5MB\n dd4a227feb44 Extracting [====================> ] 29.52MB/70.4MB\n b848944be864 Downloading [==========================================> ] 147.2MB/171.5MB\n dd4a227feb44 Extracting [=====================> ] 30.64MB/70.4MB\n d3e7be5328a5 Downloading [> ] 32.17kB/2.427MB\n 69adc395f642 Downloading [> ] 49.15kB/3.519MB\n d3e7be5328a5 Verifying Checksum \n d3e7be5328a5 Download complete \n 69adc395f642 Verifying Checksum \n 69adc395f642 Download complete \n b848944be864 Verifying Checksum \n b848944be864 Download complete \n dd4a227feb44 Extracting [==========================> ] 37.32MB/70.4MB\n 53a34cf230ea Downloading [> ] 48.55kB/3.396MB\n c21d27a13af2 Downloading [> ] 65.54kB/6.348MB\n 3c03da64f274 Downloading [> ] 524.9kB/54.9MB\n 53a34cf230ea Verifying Checksum \n 53a34cf230ea Download complete \n c21d27a13af2 Verifying Checksum \n c21d27a13af2 Download complete \n dd4a227feb44 Extracting [===============================> ] 44.56MB/70.4MB\n 3c03da64f274 Downloading [========> ] 8.947MB/54.9MB\n dd4a227feb44 Extracting [==================================> ] 48.46MB/70.4MB\n 6feed5b2ec5c Pull complete \n 3c03da64f274 Downloading [======================> ] 24.86MB/54.9MB\n 2751382ff006 Downloading [====> ] 3.5kB/42.82kB\n 2751382ff006 Downloading [==================================================>] 42.82kB/42.82kB\n 2751382ff006 Verifying Checksum \n 2751382ff006 Download complete \n b35ea58ffaca Downloading [==================================================>] 134B/134B\n b35ea58ffaca Verifying Checksum \n b35ea58ffaca Download complete \n dd4a227feb44 Extracting [===================================> ] 50.14MB/70.4MB\n ae73d3b72fc6 Extracting [> ] 557.1kB/63.08MB\n 3c03da64f274 Download complete \n ae73d3b72fc6 Extracting [=====> ] 7.242MB/63.08MB\n dd4a227feb44 Extracting [=====================================> ] 53.48MB/70.4MB\n e9154a98649b Downloading [==================================================>] 1.026kB/1.026kB\n e9154a98649b Verifying Checksum \n e9154a98649b Download complete \n 2bcd55e54e2e Downloading [============================================> ] 2.856kB/3.229kB\n 2bcd55e54e2e Downloading [==================================================>] 3.229kB/3.229kB\n 2bcd55e54e2e Verifying Checksum \n 2bcd55e54e2e Download complete \n ae73d3b72fc6 Extracting [==========> ] 13.37MB/63.08MB\n dd4a227feb44 Extracting [=========================================> ] 58.49MB/70.4MB\n dbe8bf0adba7 Downloading [==================================================>] 229B/229B\n dbe8bf0adba7 Verifying Checksum \n dbe8bf0adba7 Download complete \n ae73d3b72fc6 Extracting [===============> ] 20.05MB/63.08MB\n dd4a227feb44 Extracting [=============================================> ] 64.06MB/70.4MB\n b4a4674a0291 Downloading [==================================================>] 4.821kB/4.821kB\n b4a4674a0291 Verifying Checksum \n b4a4674a0291 Download complete \n ab3e69122a26 Downloading [====> ] 16.38kB/171.4kB\n ae73d3b72fc6 Extracting [=====================> ] 26.74MB/63.08MB\n ab3e69122a26 Downloading [==================================================>] 171.4kB/171.4kB\n ab3e69122a26 Verifying Checksum \n ab3e69122a26 Download complete \n f64b25968e12 Downloading [===> ] 3.5kB/45.46kB\n f64b25968e12 Downloading [==================================================>] 45.46kB/45.46kB\n f64b25968e12 Verifying Checksum \n f64b25968e12 Download complete \n dd4a227feb44 Extracting [==============================================> ] 65.73MB/70.4MB\n ae73d3b72fc6 Extracting [==========================> ] 33.42MB/63.08MB\n 08bd7e2acf12 Downloading [==================================================>] 220B/220B\n 08bd7e2acf12 Verifying Checksum \n 08bd7e2acf12 Download complete \n dd4a227feb44 Extracting [===============================================> ] 67.4MB/70.4MB\n ae73d3b72fc6 Extracting [===============================> ] 39.55MB/63.08MB\n ae73d3b72fc6 Extracting [====================================> ] 45.68MB/63.08MB\n dd4a227feb44 Extracting [================================================> ] 68.52MB/70.4MB\n ae73d3b72fc6 Extracting [=========================================> ] 51.81MB/63.08MB\n ae73d3b72fc6 Extracting [===============================================> ] 59.6MB/63.08MB\n dd4a227feb44 Extracting [=================================================> ] 70.19MB/70.4MB\n ae73d3b72fc6 Extracting [==================================================>] 63.08MB/63.08MB\n dd4a227feb44 Extracting [==================================================>] 70.4MB/70.4MB\n ae73d3b72fc6 Pull complete \n dd4a227feb44 Pull complete \n 4f4fb700ef54 Extracting [==================================================>] 32B/32B\n 4f4fb700ef54 Extracting [==================================================>] 32B/32B\n 50521443ed25 Extracting [==================================================>] 4.035kB/4.035kB\n 50521443ed25 Extracting [==================================================>] 4.035kB/4.035kB\n 4f4fb700ef54 Pull complete \n d53e85d07d74 Extracting [==================================================>] 2.465kB/2.465kB\n d53e85d07d74 Extracting [==================================================>] 2.465kB/2.465kB\n 50521443ed25 Pull complete \n 67227d402a14 Extracting [==================================================>] 8.494kB/8.494kB\n 67227d402a14 Extracting [==================================================>] 8.494kB/8.494kB\n d53e85d07d74 Pull complete \n 67227d402a14 Pull complete \n database Pulled \n b848944be864 Extracting [> ] 557.1kB/171.5MB\n b848944be864 Extracting [==> ] 8.356MB/171.5MB\n b848944be864 Extracting [====> ] 15.6MB/171.5MB\n b848944be864 Extracting [======> ] 23.4MB/171.5MB\n b848944be864 Extracting [========> ] 28.41MB/171.5MB\n b848944be864 Extracting [=========> ] 33.42MB/171.5MB\n b848944be864 Extracting [===========> ] 38.99MB/171.5MB\n b848944be864 Extracting [============> ] 43.45MB/171.5MB\n b848944be864 Extracting [=============> ] 45.12MB/171.5MB\n b848944be864 Extracting [=============> ] 47.91MB/171.5MB\n b848944be864 Extracting [==============> ] 50.14MB/171.5MB\n b848944be864 Extracting [================> ] 55.15MB/171.5MB\n b848944be864 Extracting [==================> ] 63.5MB/171.5MB\n b848944be864 Extracting [====================> ] 69.07MB/171.5MB\n b848944be864 Extracting [=======================> ] 79.1MB/171.5MB\n b848944be864 Extracting [=========================> ] 87.46MB/171.5MB\n b848944be864 Extracting [===========================> ] 94.7MB/171.5MB\n b848944be864 Extracting [============================> ] 98.04MB/171.5MB\n b848944be864 Extracting [=============================> ] 100.3MB/171.5MB\n b848944be864 Extracting [=============================> ] 100.8MB/171.5MB\n b848944be864 Extracting [==============================> ] 103.1MB/171.5MB\n b848944be864 Extracting [==============================> ] 104.2MB/171.5MB\n b848944be864 Extracting [================================> ] 112MB/171.5MB\n b848944be864 Extracting [===================================> ] 122MB/171.5MB\n b848944be864 Extracting [===================================> ] 123.1MB/171.5MB\n b848944be864 Extracting [====================================> ] 124.2MB/171.5MB\n b848944be864 Extracting [====================================> ] 125.9MB/171.5MB\n b848944be864 Extracting [=====================================> ] 128.1MB/171.5MB\n b848944be864 Extracting [======================================> ] 132.6MB/171.5MB\n b848944be864 Extracting [=========================================> ] 141.5MB/171.5MB\n b848944be864 Extracting [============================================> ] 153.2MB/171.5MB\n b848944be864 Extracting [================================================> ] 164.9MB/171.5MB\n b848944be864 Extracting [==================================================>] 171.5MB/171.5MB\n b848944be864 Pull complete \n 9ebe4816f1dd Extracting [==> ] 32.77kB/783.6kB\n 9ebe4816f1dd Extracting [==================================================>] 783.6kB/783.6kB\n 9ebe4816f1dd Extracting [==================================================>] 783.6kB/783.6kB\n 9ebe4816f1dd Pull complete \n 23b9d66badbc Extracting [==================================================>] 1.294kB/1.294kB\n 23b9d66badbc Extracting [==================================================>] 1.294kB/1.294kB\n 23b9d66badbc Pull complete \n 952cc891a60e Extracting [> ] 65.54kB/3.557MB\n 952cc891a60e Extracting [==================================================>] 3.557MB/3.557MB\n 952cc891a60e Pull complete \n aac82a21e07d Extracting [> ] 65.54kB/3.557MB\n aac82a21e07d Extracting [==================================================>] 3.557MB/3.557MB\n aac82a21e07d Pull complete \n 69adc395f642 Extracting [> ] 65.54kB/3.519MB\n 69adc395f642 Extracting [==================================================>] 3.519MB/3.519MB\n 69adc395f642 Extracting [==================================================>] 3.519MB/3.519MB\n 69adc395f642 Pull complete \n d3e7be5328a5 Extracting [> ] 32.77kB/2.427MB\n d3e7be5328a5 Extracting [==================================================>] 2.427MB/2.427MB\n d3e7be5328a5 Pull complete \n c21d27a13af2 Extracting [> ] 65.54kB/6.348MB\n c21d27a13af2 Extracting [==================================================>] 6.348MB/6.348MB\n c21d27a13af2 Pull complete \n 53a34cf230ea Extracting [> ] 65.54kB/3.396MB\n 53a34cf230ea Extracting [==================================================>] 3.396MB/3.396MB\n 53a34cf230ea Extracting [==================================================>] 3.396MB/3.396MB\n 53a34cf230ea Pull complete \n 3c03da64f274 Extracting [> ] 557.1kB/54.9MB\n 3c03da64f274 Extracting [===================> ] 21.73MB/54.9MB\n 3c03da64f274 Extracting [=======================================> ] 42.89MB/54.9MB\n 3c03da64f274 Extracting [==================================================>] 54.9MB/54.9MB\n 3c03da64f274 Pull complete \n 2751382ff006 Extracting [======================================> ] 32.77kB/42.82kB\n 2751382ff006 Extracting [==================================================>] 42.82kB/42.82kB\n 2751382ff006 Pull complete \n b35ea58ffaca Extracting [==================================================>] 134B/134B\n b35ea58ffaca Extracting [==================================================>] 134B/134B\n b35ea58ffaca Pull complete \n 2bcd55e54e2e Extracting [==================================================>] 3.229kB/3.229kB\n 2bcd55e54e2e Extracting [==================================================>] 3.229kB/3.229kB\n 2bcd55e54e2e Pull complete \n e9154a98649b Extracting [==================================================>] 1.026kB/1.026kB\n e9154a98649b Extracting [==================================================>] 1.026kB/1.026kB\n e9154a98649b Pull complete \n dbe8bf0adba7 Extracting [==================================================>] 229B/229B\n dbe8bf0adba7 Extracting [==================================================>] 229B/229B\n dbe8bf0adba7 Pull complete \n b4a4674a0291 Extracting [==================================================>] 4.821kB/4.821kB\n b4a4674a0291 Extracting [==================================================>] 4.821kB/4.821kB\n b4a4674a0291 Pull complete \n ab3e69122a26 Extracting [=========> ] 32.77kB/171.4kB\n ab3e69122a26 Extracting [==================================================>] 171.4kB/171.4kB\n ab3e69122a26 Extracting [==================================================>] 171.4kB/171.4kB\n ab3e69122a26 Pull complete \n f64b25968e12 Extracting [====================================> ] 32.77kB/45.46kB\n f64b25968e12 Extracting [==================================================>] 45.46kB/45.46kB\n f64b25968e12 Pull complete \n 08bd7e2acf12 Extracting [==================================================>] 220B/220B\n 08bd7e2acf12 Extracting [==================================================>] 220B/220B\n 08bd7e2acf12 Pull complete \n server Pulled \n#1 [internal] load local bake definitions\n#1 reading from stdin 592B done\n#1 DONE 0.0s\n\n#2 [internal] load build definition from Dockerfile.backup\n#2 transferring dockerfile: 731B 0.0s done\n#2 WARN: InvalidDefaultArgInFrom: Default value for ARG ${BACKUP_IMAGE} results in empty or invalid base image name (line 2)\n#2 DONE 0.0s\n\n#3 [internal] load metadata for docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\n#3 ...\n\n#4 [auth] itzg/mc-backup:pull token for registry-1.docker.io\n#4 DONE 0.0s\n\n#3 [internal] load metadata for docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\n#3 DONE 0.9s\n\n#5 [1/2] FROM docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\n#5 resolve docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 done\n#5 sha256:1722eeb3dd13ba9f9cf5088324ba31b728697fb322126c6a06119f02a814fb14 0B / 2.43MB 0.1s\n#5 sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 2.38kB / 2.38kB done\n#5 sha256:0e7e1b6bfd91ec67d295c42c825b88e54d83e58d2fef5c4218ea3033fd24067b 5.00kB / 5.00kB done\n#5 sha256:67af7cc0b97936effa07ab7b24bc957e3b7562f9bbe30ff0ebc731ad1fd0a00a 3.14kB / 3.14kB done\n#5 sha256:db55201be050ce35939491a7fcd73384337adf61ea25f36d8dd1a0dc435158db 0B / 8.40MB 0.1s\n#5 sha256:2f1c6308cf870da7ecb2b34237f7b3d8afc6e8204b8854f6a80c6fdd86031ba1 146B / 146B 0.1s done\n#5 sha256:87010e4033ef983674ded4ab649d4f0f04d7f0702a36f3c9f1b507c23d26bf3f 0B / 6.35MB 0.1s\n#5 sha256:db55201be050ce35939491a7fcd73384337adf61ea25f36d8dd1a0dc435158db 8.40MB / 8.40MB 0.2s done\n#5 extracting sha256:db55201be050ce35939491a7fcd73384337adf61ea25f36d8dd1a0dc435158db 0.1s\n#5 sha256:97528720ab13819a52072d2f420584e248378f1ac1a8c9a3e18db4d2e2f22540 0B / 151B 0.2s\n#5 sha256:1722eeb3dd13ba9f9cf5088324ba31b728697fb322126c6a06119f02a814fb14 2.43MB / 2.43MB 0.2s done\n#5 sha256:87010e4033ef983674ded4ab649d4f0f04d7f0702a36f3c9f1b507c23d26bf3f 6.35MB / 6.35MB 0.2s done\n#5 sha256:97528720ab13819a52072d2f420584e248378f1ac1a8c9a3e18db4d2e2f22540 151B / 151B 0.3s done\n#5 sha256:786e45e8ca43ce65183867a788dba8ca191d91938a5d6566f4501f8b48014a2c 1.21MB / 1.21MB 0.4s done\n#5 sha256:f1b5fd2badbd1ebc8bd78039587b08514ae6e3bfa1e0306eb9596a85584eee98 6.29MB / 11.24MB 0.4s\n#5 sha256:2c78adffe8a7e6588bc2ffa36b08aa32b6bb84aa6c58b287be6b84067a810cea 147B / 147B 0.3s done\n#5 sha256:25069bfd3042c08cf604e15e5301f842f55334a592abc847d68e2556d106fc31 0B / 23.71MB 0.4s\n#5 sha256:5207b5f7343469fcb533b4aa0c57ba58d69544f5ee6d2c01b05c396f7355b476 0B / 159B 0.4s\n#5 extracting sha256:db55201be050ce35939491a7fcd73384337adf61ea25f36d8dd1a0dc435158db 0.2s done\n#5 sha256:f1b5fd2badbd1ebc8bd78039587b08514ae6e3bfa1e0306eb9596a85584eee98 11.24MB / 11.24MB 0.5s done\n#5 sha256:25069bfd3042c08cf604e15e5301f842f55334a592abc847d68e2556d106fc31 18.87MB / 23.71MB 0.5s\n#5 sha256:5207b5f7343469fcb533b4aa0c57ba58d69544f5ee6d2c01b05c396f7355b476 159B / 159B 0.4s done\n#5 sha256:d27d7298f4c7166e137ddc6c2dff327d3da84ffa79e4b917d5531b797da92dd8 148B / 148B 0.5s done\n#5 sha256:ebfa261bc7840cd306d627fb15a4c2d1682b62a0fd8881b75a4c81514f57eeea 0B / 7.25kB 0.5s\n#5 sha256:0f3cb0f1efd21258b8180dea5454d2c5b3aa3afbe7f4c4179284a87ae0ccb85e 0B / 1.31kB 0.5s\n#5 sha256:25069bfd3042c08cf604e15e5301f842f55334a592abc847d68e2556d106fc31 23.71MB / 23.71MB 0.5s done\n#5 sha256:ebfa261bc7840cd306d627fb15a4c2d1682b62a0fd8881b75a4c81514f57eeea 7.25kB / 7.25kB 0.6s done\n#5 sha256:0f3cb0f1efd21258b8180dea5454d2c5b3aa3afbe7f4c4179284a87ae0ccb85e 1.31kB / 1.31kB 0.6s done\n#5 extracting sha256:1722eeb3dd13ba9f9cf5088324ba31b728697fb322126c6a06119f02a814fb14 0.0s done\n#5 extracting sha256:2f1c6308cf870da7ecb2b34237f7b3d8afc6e8204b8854f6a80c6fdd86031ba1 done\n#5 sha256:005ce725ec492ebdac5850cab1a6e99efce8b2111b52d0aeea493bae01af3a3d 97B / 97B 0.6s done\n#5 extracting sha256:87010e4033ef983674ded4ab649d4f0f04d7f0702a36f3c9f1b507c23d26bf3f 0.1s done\n#5 extracting sha256:97528720ab13819a52072d2f420584e248378f1ac1a8c9a3e18db4d2e2f22540 done\n#5 extracting sha256:f1b5fd2badbd1ebc8bd78039587b08514ae6e3bfa1e0306eb9596a85584eee98\n#5 extracting sha256:f1b5fd2badbd1ebc8bd78039587b08514ae6e3bfa1e0306eb9596a85584eee98 0.1s done\n#5 extracting sha256:2c78adffe8a7e6588bc2ffa36b08aa32b6bb84aa6c58b287be6b84067a810cea done\n#5 extracting sha256:786e45e8ca43ce65183867a788dba8ca191d91938a5d6566f4501f8b48014a2c 0.0s done\n#5 extracting sha256:5207b5f7343469fcb533b4aa0c57ba58d69544f5ee6d2c01b05c396f7355b476 done\n#5 extracting sha256:25069bfd3042c08cf604e15e5301f842f55334a592abc847d68e2556d106fc31\n#5 extracting sha256:25069bfd3042c08cf604e15e5301f842f55334a592abc847d68e2556d106fc31 0.3s done\n#5 extracting sha256:d27d7298f4c7166e137ddc6c2dff327d3da84ffa79e4b917d5531b797da92dd8\n#5 extracting sha256:d27d7298f4c7166e137ddc6c2dff327d3da84ffa79e4b917d5531b797da92dd8 done\n#5 extracting sha256:ebfa261bc7840cd306d627fb15a4c2d1682b62a0fd8881b75a4c81514f57eeea done\n#5 extracting sha256:0f3cb0f1efd21258b8180dea5454d2c5b3aa3afbe7f4c4179284a87ae0ccb85e done\n#5 extracting sha256:005ce725ec492ebdac5850cab1a6e99efce8b2111b52d0aeea493bae01af3a3d done\n#5 DONE 1.3s\n\n#6 [2/2] RUN script=/opt/backup-loop.sh; expected=' retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on'; test \"$(grep -Fxc \"$expected\" \"$script\")\" -eq 2 && awk 'previous == \" log INFO \\\"waiting for rcon readiness...\\\"\" { if ($0 != \" retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on\") exit 1; sub(/save-on$/, \"list\"); changed++ } { print; previous=$0 } END { if (changed != 1) exit 1 }' \"$script\" > /tmp/backup-loop.patched && mv /tmp/backup-loop.patched \"$script\" && chmod +x \"$script\"\n#6 DONE 0.4s\n\n#7 exporting to image\n#7 exporting layers\n#7 exporting layers 0.6s done\n#7 writing image sha256:79ad7fb7789f7d5b645217d9d245dc1bb2fbe4d20f16907bb310468d7b0a5a94 done\n#7 naming to docker.io/library/minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 done\n#7 DONE 0.6s\n\n#8 resolving provenance for metadata file\n#8 DONE 0.0s\n backup Built\n Network minecraft-f2e84856_default Creating\n Network minecraft-f2e84856_default Created\n Volume \"minecraft-f2e84856_database\" Creating\n Volume \"minecraft-f2e84856_database\" Created\n Container minecraft-f2e84856-server-1 Creating\n Container minecraft-f2e84856-database-1 Creating\n Container minecraft-f2e84856-web-1 Creating\n Container minecraft-f2e84856-server-1 Created\n Container minecraft-f2e84856-web-1 Created\n Container minecraft-f2e84856-database-1 Created\n Container minecraft-f2e84856-backup-1 Creating\n Container minecraft-f2e84856-backup-1 Created\n Container minecraft-f2e84856-web-1 Starting\n Container minecraft-f2e84856-database-1 Starting\n Container minecraft-f2e84856-server-1 Starting\n Container minecraft-f2e84856-database-1 Started\n Container minecraft-f2e84856-server-1 Started\n Container minecraft-f2e84856-server-1 Waiting\n Container minecraft-f2e84856-web-1 Started\n Container minecraft-f2e84856-server-1 Healthy\n Container minecraft-f2e84856-backup-1 Starting\n Container minecraft-f2e84856-backup-1 Started\n Container minecraft-f2e84856-web-1 Waiting\n Container minecraft-f2e84856-server-1 Waiting\n Container minecraft-f2e84856-backup-1 Waiting\n Container minecraft-f2e84856-database-1 Waiting\n Container minecraft-f2e84856-web-1 Healthy\n Container minecraft-f2e84856-database-1 Healthy\n Container minecraft-f2e84856-backup-1 Healthy\n Container minecraft-f2e84856-server-1 Healthy\nThere are 0 of a max of 20 players online: \n{\"distribution\": \"paper\", \"network\": false, \"setup\": \"unchanged\"}\n{\"architecture\": \"amd64\", \"compose\": \"2.38.2\", \"configuration\": \"valid\", \"docker\": \"28.0.4\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:34:58.548948+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/status", "--port", "49455"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:34:58.605554+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 2 1001 1001 4096 Oct 1 07:34 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | \u001b[39m[mc-image-helper] 07:34:25.242 INFO : Downloaded /data/paper-26.2-129.jar\nserver-1 | \u001b[0;39m[init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:34:29.569 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Applying patches\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:34:34.829042651Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:34:35 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nserver-1 | [07:34:35 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:34:35 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:34:35 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:34:39 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:34:39 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:34:39 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 599.2ms\nserver-1 | [07:34:40 INFO]: Found new data pack paper, loading it automatically\nserver-1 | [07:34:41 INFO]: No existing world data, creating new world\nserver-1 | [07:34:42 INFO]: Loaded 1585 recipes\nserver-1 | [07:34:42 INFO]: Loaded 1688 advancements\nserver-1 | [07:34:42 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:34:42 INFO]: Loading properties\nserver-1 | [07:34:42 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:34:42 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:34:42 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:34:42 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:34:42 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:34:42 INFO]: Default game type: SURVIVAL\nserver-1 | [07:34:42 INFO]: Generating keypair\nserver-1 | [07:34:43 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:34:43 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:34:43 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:34:43 INFO]: Preparing level \"world\"\nserver-1 | [07:34:43 INFO]: Selecting spawn point for level 'minecraft:overworld'...\nserver-1 | [07:34:51 INFO]: Selecting spawn point for level 'minecraft:the_nether'...\nserver-1 | [07:34:51 INFO]: Selecting spawn point for level 'minecraft:the_end'...\nserver-1 | [07:34:52 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:34:52 INFO]: Preparing spawn area: 100%\nserver-1 | [07:34:52 INFO]: Prepared spawn area in 8631 ms\nserver-1 | [07:34:52 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:34:52 INFO]: Preparing spawn area: 100%\nserver-1 | [07:34:52 INFO]: Prepared spawn area in 1026 ms\nserver-1 | [07:34:52 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:34:52 INFO]: Preparing spawn area: 100%\nserver-1 | [07:34:52 INFO]: Prepared spawn area in 263 ms\nserver-1 | [07:34:52 INFO]: Done preparing level \"world\" (8.989s)\nserver-1 | [07:34:52 INFO]: [spark] Starting background profiler...\nserver-1 | [07:34:52 INFO]: Starting remote control listener\nserver-1 | [07:34:52 INFO]: Thread RCON Listener started\nserver-1 | [07:34:52 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:34:52 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:34:52 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:34:52 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:34:52 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:34:52 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:34:52 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:34:52 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:34:52 INFO]: Running delayed init tasks\nserver-1 | [07:34:52 INFO]: Done (18.251s)! For help, type \"help\"\nserver-1 | [07:34:52 INFO]: *************************************************************************************\nserver-1 | [07:34:52 INFO]: This is the first time you're starting this server.\nserver-1 | [07:34:52 INFO]: It's recommended you read our 'Getting Started' documentation for guidance.\nserver-1 | [07:34:52 INFO]: View this and more helpful information here: https://docs.papermc.io/paper/next-steps\nserver-1 | [07:34:52 INFO]: *************************************************************************************\nserver-1 | [07:34:58 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:34:58 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:34:58.883567+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sha256sum", "/data/paper-26.2-129.jar"], "exit": 0, "output": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 /data/paper-26.2-129.jar\n"} +{"timestamp": "2026-10-01T07:34:59.269476+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:34:59.548405+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation wa49gbdi/stable paper/tests/login.py", "--port", "49455", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:34:59.612252+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:34:59.983016+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "rcon-cli", "--password", "wrong", "list"], "exit": 1, "output": "2026/10/01 07:35:00 Failed to connect to RCON serverrcon: authentication failed\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-f2e84856', '--project-directory', '/tmp/minecraft validation wa49gbdi/stable paper', '--env-file', '/tmp/minecraft validation wa49gbdi/stable paper/versions.env', '--env-file', '/tmp/minecraft validation wa49gbdi/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation wa49gbdi/stable paper/compose.yaml', '-f', '/tmp/minecraft validation wa49gbdi/stable paper/.state/compose.yaml', 'exec', '-T', 'server', 'rcon-cli', '--password', 'wrong', 'list']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:35:00.305135+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "command", "scoreboard objectives add proof dummy"], "exit": 0, "output": "Created new objective [proof]\n"} +{"timestamp": "2026-10-01T07:35:00.572152+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 42"], "exit": 0, "output": "Set [proof] for Proof to 42\n"} +{"timestamp": "2026-10-01T07:35:01.015788+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "command", "save-all flush"], "exit": 0, "output": "Saving the game (this may take a moment!)Saved the game\n"} +{"timestamp": "2026-10-01T07:35:01.570506+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-f2e84856-server-1 Recreate\n Container minecraft-f2e84856-server-1 Recreated\n Container minecraft-f2e84856-server-1 Starting\n Container minecraft-f2e84856-server-1 Started\n Container minecraft-f2e84856-server-1 Waiting\n Container minecraft-f2e84856-server-1 Healthy\n"} +{"timestamp": "2026-10-01T07:35:23.096651+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:35:23.410878+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "backup"], "exit": 0, "output": "time=\"2026-10-01T07:35:23Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:35:24+0000 INFO Repository already initialized\n2026-10-01T07:35:24+0000 INFO Checking for stale locks\n2026-10-01T07:35:24+0000 INFO Checking repo integrity\n2026-10-01T07:35:25+0000 INFO waiting initial delay of 0...\n2026-10-01T07:35:25+0000 INFO waiting for rcon readiness...\n2026-10-01T07:35:25+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:35:25+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:35:25+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:35:25+0000 INFO Command executed successfully sync\n2026-10-01T07:35:25+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:35:26+0000 INFO using parent snapshot d6efb74b\n2026-10-01T07:35:26+0000 INFO \n2026-10-01T07:35:26+0000 INFO Files: 0 new, 56 changed, 126 unmodified\n2026-10-01T07:35:26+0000 INFO Dirs: 0 new, 28 changed, 281 unmodified\n2026-10-01T07:35:26+0000 INFO Added to the repository: 1.803 MiB (108.969 KiB stored)\n2026-10-01T07:35:26+0000 INFO \n2026-10-01T07:35:26+0000 INFO processed 182 files, 174.610 MiB in 0:00\n2026-10-01T07:35:26+0000 INFO snapshot 507cb8dc saved\n2026-10-01T07:35:26+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:35:26.792496+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "snapshots"], "exit": 0, "output": "[{\"time\":\"2026-10-01T07:34:59.955561218Z\",\"tree\":\"52852cf2c7e0c2ee45b415d99b32a3eb48c923337328862bc80e7c710a3d4ccd\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:34:59.955561218Z\",\"backup_end\":\"2026-10-01T07:35:01.600388091Z\",\"files_new\":182,\"files_changed\":0,\"files_unmodified\":0,\"dirs_new\":309,\"dirs_changed\":0,\"dirs_unmodified\":0,\"data_blobs\":257,\"tree_blobs\":308,\"data_added\":183103341,\"data_added_packed\":167985931,\"total_files_processed\":182,\"total_bytes_processed\":183046477},\"id\":\"d6efb74b33734b4614ab4ae5554ce1592565c7e06016147f188f49bfeace4791\",\"short_id\":\"d6efb74b\"},{\"time\":\"2026-10-01T07:35:25.463057056Z\",\"parent\":\"d6efb74b33734b4614ab4ae5554ce1592565c7e06016147f188f49bfeace4791\",\"tree\":\"6d5b1ed8d222e6e502fb471790d04c25388b4690345e759327c66776116cde49\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:35:25.463057056Z\",\"backup_end\":\"2026-10-01T07:35:26.102333665Z\",\"files_new\":0,\"files_changed\":56,\"files_unmodified\":126,\"dirs_new\":0,\"dirs_changed\":28,\"dirs_unmodified\":281,\"data_blobs\":19,\"tree_blobs\":28,\"data_added\":1890691,\"data_added_packed\":111584,\"total_files_processed\":182,\"total_bytes_processed\":183091711},\"id\":\"507cb8dc34a9ac00b31041e1d67a8c90985781c375fec0502cab6112f4ac9f8c\",\"short_id\":\"507cb8dc\"}]\n"} +{"timestamp": "2026-10-01T07:35:27.862026+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server", "backup"], "exit": 0, "output": "backup-1 | time=\"2026-10-01T07:34:57Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:34:57+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:34:59+0000 INFO created restic repository f68748f711 at /backups/repository\nbackup-1 | 2026-10-01T07:34:59+0000 INFO \nbackup-1 | 2026-10-01T07:34:59+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:34:59+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:34:59+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:34:59+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:34:59+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:34:59+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:34:59+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:34:59+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:34:59+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:34:59+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:35:00+0000 INFO no parent snapshot found, will read all files\nserver-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 11 1001 1001 4096 Oct 1 07:34 /data'\nbackup-1 | 2026-10-01T07:35:01+0000 INFO \nbackup-1 | 2026-10-01T07:35:01+0000 INFO Files: 182 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:35:01+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:35:01+0000 INFO Added to the repository: 174.621 MiB (160.204 MiB stored)\nbackup-1 | 2026-10-01T07:35:01+0000 INFO \nbackup-1 | 2026-10-01T07:35:01+0000 INFO processed 182 files, 174.567 MiB in 0:01\nbackup-1 | 2026-10-01T07:35:01+0000 INFO snapshot d6efb74b saved\nbackup-1 | 2026-10-01T07:35:01+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:35:02+0000 INFO sleeping 6h...\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:35:09.642174781Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:35:09 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nserver-1 | [07:35:09 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:35:09 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:35:10 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:35:14 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:35:14 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:35:14 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 715.0ms\nserver-1 | [07:35:16 INFO]: Loaded 1585 recipes\nserver-1 | [07:35:16 INFO]: Loaded 1688 advancements\nserver-1 | [07:35:17 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:35:17 INFO]: Loading properties\nserver-1 | [07:35:17 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:35:17 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:35:17 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:35:17 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:35:17 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:35:17 INFO]: Default game type: SURVIVAL\nserver-1 | [07:35:17 INFO]: Generating keypair\nserver-1 | [07:35:17 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:35:17 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:35:17 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:35:17 INFO]: Preparing level \"world\"\nserver-1 | [07:35:18 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:35:18 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:35:18 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:35:18 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:35:18 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:35:18 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:35:18 INFO]: Done preparing level \"world\" (0.464s)\nserver-1 | [07:35:18 INFO]: [spark] Starting background profiler...\nserver-1 | [07:35:18 INFO]: Starting remote control listener\nserver-1 | [07:35:18 INFO]: Thread RCON Listener started\nserver-1 | [07:35:18 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:35:18 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:35:18 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:35:18 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:35:18 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:35:18 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:35:18 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:35:18 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:35:18 INFO]: Running delayed init tasks\nserver-1 | [07:35:18 INFO]: Done (9.578s)! For help, type \"help\"\nserver-1 | [07:35:23 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:35:23 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:25 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:25 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:35:25 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:35:25 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:35:25 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:35:25 INFO]: [Rcon: Saved the game]\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:26 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:26 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:35:26 INFO]: Thread RCON Client /172.18.0.6 shutting down\n"} +{"timestamp": "2026-10-01T07:35:28.117625+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "PRE_BACKUP_SCRIPT=exit 73", "backup"], "exit": 1, "output": "time=\"2026-10-01T07:35:28Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:35:29+0000 INFO Repository already initialized\n2026-10-01T07:35:29+0000 INFO Checking for stale locks\n2026-10-01T07:35:29+0000 INFO Checking repo integrity\n2026-10-01T07:35:30+0000 INFO waiting initial delay of 0...\n2026-10-01T07:35:30+0000 INFO waiting for rcon readiness...\n2026-10-01T07:35:30+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:35:30+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:35:30+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:35:30+0000 INFO Command executed successfully sync\n2026-10-01T07:35:30+0000 INFO Command executed successfully rcon-cli save-on\n\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-f2e84856', '--project-directory', '/tmp/minecraft validation wa49gbdi/stable paper', '--env-file', '/tmp/minecraft validation wa49gbdi/stable paper/versions.env', '--env-file', '/tmp/minecraft validation wa49gbdi/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation wa49gbdi/stable paper/compose.yaml', '-f', '/tmp/minecraft validation wa49gbdi/stable paper/.state/compose.yaml', 'run', '--rm', '--no-deps', '-e', 'BACKUP_INTERVAL=0', '-e', 'INITIAL_DELAY=0', '-e', 'PRE_BACKUP_SCRIPT=exit 73', 'backup']' returned non-zero exit status 73.\"}\n"} +{"timestamp": "2026-10-01T07:35:30.283589+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:35:30.541678+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "backup"], "exit": 1, "output": "{\"error\": \"Backup reported an error; inspect service logs.\"}\ntime=\"2026-10-01T07:35:30Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:35:31+0000 INFO Repository already initialized\n2026-10-01T07:35:31+0000 INFO Checking for stale locks\n2026-10-01T07:35:31+0000 INFO Checking repo integrity\n2026-10-01T07:35:32+0000 INFO waiting initial delay of 0...\n2026-10-01T07:35:32+0000 INFO waiting for rcon readiness...\n2026-10-01T07:35:32+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:35:32+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:35:32+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:35:32+0000 INFO Command executed successfully sync\n2026-10-01T07:35:32+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:35:32+0000 INFO invalid argument \"invalid-proof\" for \"--limit-upload\" flag: strconv.ParseInt: parsing \"invalid-proof\": invalid syntax\n2026-10-01T07:35:32+0000 ERROR Backup failed with exit code 1\n2026-10-01T07:35:32+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:35:33.328119+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:35:37.696245+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "command", "save-off"], "exit": 0, "output": "Saving is already turned off\n"} +{"timestamp": "2026-10-01T07:35:40.672642+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "-e", "PRE_BACKUP_SCRIPT=touch /backups/first-locked; timeout 60 sh -c 'until test -f /backups/release-first; do sleep 0.2; done'", "backup"], "exit": 0, "output": "time=\"2026-10-01T07:35:33Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:35:34+0000 INFO Repository already initialized\n2026-10-01T07:35:34+0000 INFO Checking for stale locks\n2026-10-01T07:35:34+0000 INFO Checking repo integrity\n2026-10-01T07:35:35+0000 INFO waiting initial delay of 0...\n2026-10-01T07:35:35+0000 INFO waiting for rcon readiness...\n2026-10-01T07:35:35+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:35:35+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:35:35+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:35:35+0000 INFO Command executed successfully sync\n2026-10-01T07:35:38+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:35:38+0000 INFO using parent snapshot 507cb8dc\n2026-10-01T07:35:38+0000 INFO \n2026-10-01T07:35:38+0000 INFO Files: 0 new, 15 changed, 167 unmodified\n2026-10-01T07:35:38+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:35:38+0000 INFO Added to the repository: 30.973 KiB (12.900 KiB stored)\n2026-10-01T07:35:38+0000 INFO \n2026-10-01T07:35:38+0000 INFO processed 182 files, 174.610 MiB in 0:00\n2026-10-01T07:35:38+0000 INFO snapshot 9b0bc016 saved\n2026-10-01T07:35:38+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:35:39+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:35:39+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:35:39+0000 INFO keep 2 snapshots:\n2026-10-01T07:35:39+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:35:39+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:35:39+0000 INFO d6efb74b 2026-10-01 07:34:59 minecraft mc_backups,server oldest daily snapshot /data 174.567 MiB\n2026-10-01T07:35:39+0000 INFO oldest weekly snapshot\n2026-10-01T07:35:39+0000 INFO oldest monthly snapshot\n2026-10-01T07:35:39+0000 INFO 9b0bc016 2026-10-01 07:35:38 minecraft mc_backups,server daily snapshot /data 174.610 MiB\n2026-10-01T07:35:39+0000 INFO weekly snapshot\n2026-10-01T07:35:39+0000 INFO monthly snapshot\n2026-10-01T07:35:39+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:35:39+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:35:39+0000 INFO 2 snapshots\n2026-10-01T07:35:39+0000 INFO \n2026-10-01T07:35:39+0000 INFO remove 1 snapshots:\n2026-10-01T07:35:39+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:35:39+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:35:39+0000 INFO 507cb8dc 2026-10-01 07:35:25 minecraft mc_backups,server /data 174.610 MiB\n2026-10-01T07:35:39+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:35:39+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:35:39+0000 INFO 1 snapshots\n2026-10-01T07:35:39+0000 INFO \n2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:35:39+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:35:39+0000 INFO loading all snapshots...\n2026-10-01T07:35:39+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:35:39+0000 INFO searching used packs...\n2026-10-01T07:35:39+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 15 / 15 packs processed\n2026-10-01T07:35:39+0000 INFO \n2026-10-01T07:35:39+0000 INFO to repack: 47 blobs / 109.039 KiB\n2026-10-01T07:35:39+0000 INFO this removes: 24 blobs / 11.768 KiB\n2026-10-01T07:35:39+0000 INFO to delete: 0 blobs / 0 B\n2026-10-01T07:35:39+0000 INFO total prune: 24 blobs / 11.768 KiB\n2026-10-01T07:35:39+0000 INFO remaining: 613 blobs / 160.286 MiB\n2026-10-01T07:35:39+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:35:39+0000 INFO \n2026-10-01T07:35:39+0000 INFO repacking packs\n2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 2 / 2 packs repacked\n2026-10-01T07:35:39+0000 INFO rebuilding index\n2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 4 / 4 indexes processed\n2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted\n2026-10-01T07:35:39+0000 INFO removing 2 old packs\n2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:35:39+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:35:46.402437+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "backup"], "exit": 0, "output": "time=\"2026-10-01T07:35:36Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:35:36+0000 INFO Repository already initialized\n2026-10-01T07:35:36+0000 INFO Checking for stale locks\n2026-10-01T07:35:37+0000 INFO Checking repo integrity\n2026-10-01T07:35:37+0000 INFO waiting initial delay of 0...\n2026-10-01T07:35:37+0000 INFO waiting for rcon readiness...\n2026-10-01T07:35:37+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:35:38+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:35:38+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:35:38+0000 INFO Command executed successfully sync\n2026-10-01T07:35:38+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:35:39+0000 INFO repo already locked, waiting up to 1m0s for the lock\n2026-10-01T07:35:44+0000 INFO using parent snapshot 9b0bc016\n2026-10-01T07:35:44+0000 INFO \n2026-10-01T07:35:44+0000 INFO Files: 0 new, 15 changed, 167 unmodified\n2026-10-01T07:35:44+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:35:44+0000 INFO Added to the repository: 30.536 KiB (12.354 KiB stored)\n2026-10-01T07:35:44+0000 INFO \n2026-10-01T07:35:44+0000 INFO processed 182 files, 174.610 MiB in 0:05\n2026-10-01T07:35:44+0000 INFO snapshot a7d3dfae saved\n2026-10-01T07:35:44+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:35:45+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:35:45+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:35:45+0000 INFO keep 2 snapshots:\n2026-10-01T07:35:45+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:35:45+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:35:45+0000 INFO d6efb74b 2026-10-01 07:34:59 minecraft mc_backups,server oldest daily snapshot /data 174.567 MiB\n2026-10-01T07:35:45+0000 INFO oldest weekly snapshot\n2026-10-01T07:35:45+0000 INFO oldest monthly snapshot\n2026-10-01T07:35:45+0000 INFO a7d3dfae 2026-10-01 07:35:38 minecraft mc_backups,server daily snapshot /data 174.610 MiB\n2026-10-01T07:35:45+0000 INFO weekly snapshot\n2026-10-01T07:35:45+0000 INFO monthly snapshot\n2026-10-01T07:35:45+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:35:45+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:35:45+0000 INFO 2 snapshots\n2026-10-01T07:35:45+0000 INFO \n2026-10-01T07:35:45+0000 INFO remove 1 snapshots:\n2026-10-01T07:35:45+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:35:45+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:35:45+0000 INFO 9b0bc016 2026-10-01 07:35:38 minecraft mc_backups,server /data 174.610 MiB\n2026-10-01T07:35:45+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:35:45+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:35:45+0000 INFO 1 snapshots\n2026-10-01T07:35:45+0000 INFO \n2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:35:45+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:35:45+0000 INFO loading all snapshots...\n2026-10-01T07:35:45+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:35:45+0000 INFO searching used packs...\n2026-10-01T07:35:45+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 17 / 17 packs processed\n2026-10-01T07:35:45+0000 INFO \n2026-10-01T07:35:45+0000 INFO to repack: 8 blobs / 2.315 KiB\n2026-10-01T07:35:45+0000 INFO this removes: 7 blobs / 1.475 KiB\n2026-10-01T07:35:45+0000 INFO to delete: 17 blobs / 9.939 KiB\n2026-10-01T07:35:45+0000 INFO total prune: 24 blobs / 11.414 KiB\n2026-10-01T07:35:45+0000 INFO remaining: 613 blobs / 160.286 MiB\n2026-10-01T07:35:45+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:35:45+0000 INFO \n2026-10-01T07:35:45+0000 INFO repacking packs\n2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 1 / 1 packs repacked\n2026-10-01T07:35:45+0000 INFO rebuilding index\n2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 3 / 3 indexes processed\n2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted\n2026-10-01T07:35:45+0000 INFO removing 2 old packs\n2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:35:45+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:35:46.402855+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:35:46.656390+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 99"], "exit": 0, "output": "Set [proof] for Proof to 99\n"} +{"timestamp": "2026-10-01T07:35:46.907453+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "restore", "/tmp/minecraft validation wa49gbdi/restored snapshot"], "exit": 0, "output": "restoring snapshot a7d3dfae of [/data] at 2026-10-01 07:35:38.786579721 +0000 UTC by @minecraft to /restore\nSummary: Restored 491 files/dirs (174.610 MiB) in 0:00\n{\"restored\": \"/tmp/minecraft validation wa49gbdi/restored snapshot/data\", \"snapshot\": \"latest\"}\n"} +{"timestamp": "2026-10-01T07:35:48.376550+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/restored server/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "56947", "--web-port", "48689", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:35:48.531097+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/restored server/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-db526a38_default Creating\n Network minecraft-db526a38_default Created\n Container minecraft-db526a38-server-1 Creating\n Container minecraft-db526a38-server-1 Created\n Container minecraft-db526a38-server-1 Starting\n Container minecraft-db526a38-server-1 Started\n Container minecraft-db526a38-server-1 Waiting\n Container minecraft-db526a38-server-1 Healthy\nThere are 0 of a max of 20 players online: \n{\"architecture\": \"amd64\", \"compose\": \"2.38.2\", \"configuration\": \"valid\", \"docker\": \"28.0.4\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:36:10.104258+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation wa49gbdi/restored server/scripts/status", "--port", "56947"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:36:10.148715+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation wa49gbdi/restored server/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:36:10.479635+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation wa49gbdi/restored server/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 9 1001 1001 4096 Oct 1 07:34 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:35:55.251 INFO : Created/updated 1 property in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:35:57.379456889Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:35:57 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nserver-1 | [07:35:57 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:35:57 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:35:57 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:36:01 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:36:02 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:36:02 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 720.7ms\nserver-1 | [07:36:04 INFO]: Loaded 1585 recipes\nserver-1 | [07:36:04 INFO]: Loaded 1688 advancements\nserver-1 | [07:36:04 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:36:04 INFO]: Loading properties\nserver-1 | [07:36:04 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:36:05 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:36:05 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:36:05 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:36:05 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:36:05 INFO]: Default game type: SURVIVAL\nserver-1 | [07:36:05 INFO]: Generating keypair\nserver-1 | [07:36:05 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:36:05 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:36:05 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:36:05 INFO]: Preparing level \"world\"\nserver-1 | [07:36:06 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:36:06 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:36:06 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:36:06 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:36:06 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:36:06 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:36:06 INFO]: Done preparing level \"world\" (0.431s)\nserver-1 | [07:36:06 INFO]: [spark] Starting background profiler...\nserver-1 | [07:36:06 INFO]: Starting remote control listener\nserver-1 | [07:36:06 INFO]: Thread RCON Listener started\nserver-1 | [07:36:06 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:36:06 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:36:06 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:36:06 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:36:06 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:36:06 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:36:06 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:36:06 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:36:06 INFO]: Running delayed init tasks\nserver-1 | [07:36:06 INFO]: Done (9.729s)! For help, type \"help\"\nserver-1 | [07:36:10 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:36:10 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:36:10 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:36:10 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:36:10.756648+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation wa49gbdi/restored server/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:77cf7afee4256e350761abe7a70f823b2e42742d5ab724e9fa75f0f13dfbfed2\",\"ContainerName\":\"minecraft-db526a38-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":870684768,\"LastTagTime\":\"0001-01-01T00:00:00Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:36:11.026570+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/restored server/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-db526a38-server-1 Stopping\n Container minecraft-db526a38-server-1 Stopped\n Container minecraft-db526a38-server-1 Removing\n Container minecraft-db526a38-server-1 Removed\n Network minecraft-db526a38_default Removing\n Network minecraft-db526a38_default Removed\n"} +{"timestamp": "2026-10-01T07:36:11.948217+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"CREATE TABLE proof (value INT); INSERT INTO proof VALUES (42); SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:36:12.259259+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "300", "database"], "exit": 0, "output": " Container minecraft-f2e84856-database-1 Recreate\n Container minecraft-f2e84856-database-1 Recreated\n Container minecraft-f2e84856-database-1 Starting\n Container minecraft-f2e84856-database-1 Started\n Container minecraft-f2e84856-database-1 Waiting\n Container minecraft-f2e84856-database-1 Healthy\n"} +{"timestamp": "2026-10-01T07:36:18.275969+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:36:18.582793+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "mariadb", "-uminecraft", "-pwrong", "minecraft", "-e", "SELECT 1"], "exit": 1, "output": "ERROR 1045 (28000): Access denied for user 'minecraft'@'localhost' (using password: YES)\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-f2e84856', '--project-directory', '/tmp/minecraft validation wa49gbdi/stable paper', '--env-file', '/tmp/minecraft validation wa49gbdi/stable paper/versions.env', '--env-file', '/tmp/minecraft validation wa49gbdi/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation wa49gbdi/stable paper/compose.yaml', '-f', '/tmp/minecraft validation wa49gbdi/stable paper/.state/compose.yaml', 'exec', '-T', 'database', 'mariadb', '-uminecraft', '-pwrong', 'minecraft', '-e', 'SELECT 1']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:36:18.912860+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "python3", "-c", "import urllib.request; print(urllib.request.urlopen(\"http://127.0.0.1:50433\").read().decode())"], "exit": 0, "output": "Minecraft files

Minecraft files

\n\n"} +{"timestamp": "2026-10-01T07:36:18.992494+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "database-1 | 2026-10-01 07:36:12+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\ndatabase-1 | 2026-10-01 07:36:12+00:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB\ndatabase-1 | 2026-10-01 07:36:12+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'\ndatabase-1 | 2026-10-01 07:36:12+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\ndatabase-1 | 2026-10-01 07:36:13+00:00 [Note] [Entrypoint]: MariaDB upgrade not required\nweb-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration\nweb-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf\nweb-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh\nweb-1 | /docker-entrypoint.sh: Configuration complete; ready for start up\nweb-1 | 2026/10/01 07:34:21 [notice] 1#1: using the \"epoll\" event method\nweb-1 | 2026/10/01 07:34:21 [notice] 1#1: nginx/1.30.5\nweb-1 | 2026/10/01 07:34:21 [notice] 1#1: built by gcc 15.2.0 (Alpine 15.2.0) \nweb-1 | 2026/10/01 07:34:21 [notice] 1#1: OS: Linux 6.17.0-1022-azure\nweb-1 | 2026/10/01 07:34:21 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 65536:65536\nweb-1 | 2026/10/01 07:34:21 [notice] 1#1: start worker processes\nbackup-1 | time=\"2026-10-01T07:34:57Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:34:57+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:34:59+0000 INFO created restic repository f68748f711 at /backups/repository\nbackup-1 | 2026-10-01T07:34:59+0000 INFO \nbackup-1 | 2026-10-01T07:34:59+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:34:59+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:34:59+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:34:59+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:34:59+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:34:59+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:34:59+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:34:59+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:34:59+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:34:59+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:35:00+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:35:01+0000 INFO \nbackup-1 | 2026-10-01T07:35:01+0000 INFO Files: 182 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:35:01+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:35:01+0000 INFO Added to the repository: 174.621 MiB (160.204 MiB stored)\nbackup-1 | 2026-10-01T07:35:01+0000 INFO \nbackup-1 | 2026-10-01T07:35:01+0000 INFO processed 182 files, 174.567 MiB in 0:01\nbackup-1 | 2026-10-01T07:35:01+0000 INFO snapshot d6efb74b saved\nbackup-1 | 2026-10-01T07:35:01+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:35:02+0000 INFO sleeping 6h...\nweb-1 | 2026/10/01 07:34:21 [notice] 1#1: start worker process 30\nweb-1 | 2026/10/01 07:34:21 [notice] 1#1: start worker process 31\nweb-1 | 2026/10/01 07:34:21 [notice] 1#1: start worker process 32\nweb-1 | 2026/10/01 07:34:21 [notice] 1#1: start worker process 33\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:34:31 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:34:41 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:34:51 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:35:01 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:35:11 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:35:21 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:35:31 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:35:41 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nserver-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 11 1001 1001 4096 Oct 1 07:34 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Setting initial memory to 2G and max to 2G\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] Starting MariaDB 12.3.3-MariaDB-ubu2404 source revision 83e909fc2a0dbc394b4b683fb3fa2d7dcf26cc5e server_uid bKixcIFW5NX9U4T7/9kQWX4qQbE= as process 1\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: Compressed tables use zlib 1.3\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: Number of transaction pools: 1\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions\ndatabase-1 | 2026-10-01 7:36:13 0 [Warning] mariadbd: io_uring_queue_init() failed with EPERM: sysctl kernel.io_uring_disabled has the value 2, or 1 and the user of the process is not a member of sysctl kernel.io_uring_group. (see man 2 io_uring_setup).\ndatabase-1 | create_uring failed: falling back to libaio\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: Using Linux native AIO\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: innodb_buffer_pool_size_max=8388608m, innodb_buffer_pool_size=128m\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: Completed initialization of buffer pool\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: File system buffers for log disabled (block size=4096 bytes)\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: End of log at LSN=47598\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: Opened 3 undo tablespaces\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: 128 rollback segments in 3 undo tablespaces are active.\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: log sequence number 47598; transaction id 23\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] Plugin 'FEEDBACK' is disabled.\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] Plugin 'wsrep-provider' is disabled.\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] InnoDB: Buffer pool(s) load completed at 261001 7:36:13\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] Server socket created on IP: '0.0.0.0', port: '3306'.\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] Server socket created on IP: '::', port: '3306'.\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] mariadbd: Event Scheduler: Loaded 0 events\ndatabase-1 | 2026-10-01 7:36:13 0 [Note] mariadbd: ready for connections.\ndatabase-1 | Version: '12.3.3-MariaDB-ubu2404' socket: '/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution\ndatabase-1 | 2026-10-01 7:36:18 6 [Warning] Access denied for user 'minecraft'@'localhost' (using password: YES)\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:35:52 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:36:02 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:36:12 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 172.18.0.1 - - [01/Oct/2026:07:36:18 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Python-urllib/3.12\" \"-\"\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:35:09.642174781Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:35:09 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nserver-1 | [07:35:09 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:35:09 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:35:10 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:35:14 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:35:14 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:35:14 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 715.0ms\nserver-1 | [07:35:16 INFO]: Loaded 1585 recipes\nserver-1 | [07:35:16 INFO]: Loaded 1688 advancements\nserver-1 | [07:35:17 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:35:17 INFO]: Loading properties\nserver-1 | [07:35:17 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:35:17 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:35:17 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:35:17 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:35:17 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:35:17 INFO]: Default game type: SURVIVAL\nserver-1 | [07:35:17 INFO]: Generating keypair\nserver-1 | [07:35:17 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:35:17 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:35:17 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:35:17 INFO]: Preparing level \"world\"\nserver-1 | [07:35:18 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:35:18 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:35:18 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:35:18 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:35:18 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:35:18 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:35:18 INFO]: Done preparing level \"world\" (0.464s)\nserver-1 | [07:35:18 INFO]: [spark] Starting background profiler...\nserver-1 | [07:35:18 INFO]: Starting remote control listener\nserver-1 | [07:35:18 INFO]: Thread RCON Listener started\nserver-1 | [07:35:18 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:35:18 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:35:18 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:35:18 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:35:18 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:35:18 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:35:18 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:35:18 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:35:18 INFO]: Running delayed init tasks\nserver-1 | [07:35:18 INFO]: Done (9.578s)! For help, type \"help\"\nserver-1 | [07:35:23 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:35:23 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:25 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:25 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:35:25 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:35:25 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:35:25 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:35:25 INFO]: [Rcon: Saved the game]\nserver-1 | [07:35:25 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:26 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:26 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:35:26 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:30 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:30 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:30 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:30 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:35:30 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:30 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:30 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:35:30 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:35:30 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:35:30 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:35:30 INFO]: [Rcon: Saved the game]\nserver-1 | [07:35:30 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:30 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:30 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:35:30 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:30 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:35:30 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:35:32 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:32 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:32 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:32 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:35:32 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:32 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:32 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:35:32 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:35:32 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:35:32 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:35:32 INFO]: [Rcon: Saved the game]\nserver-1 | [07:35:32 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:32 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:32 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:35:32 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:33 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:35:33 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:35:35 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:35 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:35 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:35 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:35:35 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:35 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:35 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:35:35 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:35:35 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:35:35 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:35:35 INFO]: [Rcon: Saved the game]\nserver-1 | [07:35:35 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:37 INFO]: Thread RCON Client /172.18.0.7 started\nserver-1 | [07:35:37 INFO]: Thread RCON Client /172.18.0.7 shutting down\nserver-1 | [07:35:37 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:35:37 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:35:38 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:35:38 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:35:38 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:35:38 INFO]: Thread RCON Client /172.18.0.7 started\nserver-1 | [07:35:38 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:35:38 INFO]: Thread RCON Client /172.18.0.7 shutting down\nserver-1 | [07:35:38 INFO]: Thread RCON Client /172.18.0.7 started\nserver-1 | [07:35:38 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:35:38 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:35:38 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:35:38 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:35:38 INFO]: [Rcon: Saved the game]\nserver-1 | [07:35:38 INFO]: Thread RCON Client /172.18.0.7 shutting down\nserver-1 | [07:35:44 INFO]: Thread RCON Client /172.18.0.7 started\nserver-1 | [07:35:44 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:35:44 INFO]: Thread RCON Client /172.18.0.7 shutting down\nserver-1 | [07:35:46 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:35:46 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:35:46 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:35:46 INFO]: [Rcon: Set [proof] for Proof to 99]\nserver-1 | [07:35:46 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:36:19.248422+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:43d9d8c1f8968f09df8c1aa6c136ecc617e62d64fe4c0b24c97de4eb210bd973\",\"ContainerName\":\"minecraft-f2e84856-web-1\",\"Repository\":\"nginx\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":62374029,\"LastTagTime\":\"0001-01-01T00:00:00Z\"},{\"ID\":\"sha256:dfff46ef3f9d674ab66853ee68066e495af7942bfa4255dc39ce2ff64ac05cbe\",\"ContainerName\":\"minecraft-f2e84856-database-1\",\"Repository\":\"mariadb\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":333796770,\"LastTagTime\":\"0001-01-01T00:00:00Z\"},{\"ID\":\"sha256:77cf7afee4256e350761abe7a70f823b2e42742d5ab724e9fa75f0f13dfbfed2\",\"ContainerName\":\"minecraft-f2e84856-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":870684768,\"LastTagTime\":\"0001-01-01T00:00:00Z\"},{\"ID\":\"sha256:79ad7fb7789f7d5b645217d9d245dc1bb2fbe4d20f16907bb310468d7b0a5a94\",\"ContainerName\":\"minecraft-f2e84856-backup-1\",\"Repository\":\"minecraft-template-backup\",\"Tag\":\"3ff6a1e8fa15ca4e-1c6ea31fbca3\",\"Platform\":\"linux/amd64\",\"Size\":153672059,\"LastTagTime\":\"2026-10-01T07:34:21.005190026Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:36:19.501127+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-f2e84856-backup-1 Stopping\n Container minecraft-f2e84856-database-1 Stopping\n Container minecraft-f2e84856-web-1 Stopping\n Container minecraft-f2e84856-backup-1 Stopped\n Container minecraft-f2e84856-backup-1 Removing\n Container minecraft-f2e84856-backup-1 Removed\n Container minecraft-f2e84856-server-1 Stopping\n Container minecraft-f2e84856-database-1 Stopped\n Container minecraft-f2e84856-database-1 Removing\n Container minecraft-f2e84856-database-1 Removed\n Container minecraft-f2e84856-web-1 Stopped\n Container minecraft-f2e84856-web-1 Removing\n Container minecraft-f2e84856-web-1 Removed\n Container minecraft-f2e84856-server-1 Stopped\n Container minecraft-f2e84856-server-1 Removing\n Container minecraft-f2e84856-server-1 Removed\n Network minecraft-f2e84856_default Removing\n Network minecraft-f2e84856_default Removed\n"} +{"timestamp": "2026-10-01T07:36:20.464589+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/latest vanilla/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "37533", "--web-port", "56929", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--distribution", "vanilla"], "exit": 0, "output": "{\"distribution\": \"vanilla\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:36:20.519057+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/latest vanilla/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-83273ef0_default Creating\n Network minecraft-83273ef0_default Created\n Container minecraft-83273ef0-server-1 Creating\n Container minecraft-83273ef0-server-1 Created\n Container minecraft-83273ef0-server-1 Starting\n Container minecraft-83273ef0-server-1 Started\n Container minecraft-83273ef0-server-1 Waiting\n Container minecraft-83273ef0-server-1 Healthy\nThere are 0 of a max of 20 players online: \n{\"architecture\": \"amd64\", \"compose\": \"2.38.2\", \"configuration\": \"valid\", \"docker\": \"28.0.4\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:36:41.813383+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation wa49gbdi/latest vanilla/scripts/status", "--port", "37533"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"26.3\", \"protocol\": 777}}\n"} +{"timestamp": "2026-10-01T07:36:41.856076+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation wa49gbdi/latest vanilla/scripts/minecraft", "command", "list"], "exit": 0, "output": "There are 0 of a max of 20 players online: \n"} +{"timestamp": "2026-10-01T07:36:42.111676+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "find /data -maxdepth 1 -name \"*.jar\" -exec sha1sum {} \\;"], "exit": 0, "output": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c /data/minecraft_server.26.3.jar\n"} +{"timestamp": "2026-10-01T07:36:42.468122+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:36:42.742114+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:36:43.046620+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation wa49gbdi/latest vanilla/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 2 1001 1001 4096 Oct 1 07:36 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given VANILLA\nserver-1 | [init] Successfully setup vanilla Minecraft version 26.3\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:36:25.838 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Unpacking 26.3/server-26.3.jar (versions:26.3) to versions/26.3/server-26.3.jar\nserver-1 | Unpacking at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar (libraries:at.yawk.lz4:lz4-java:1.10.1) to libraries/at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar\nserver-1 | Unpacking com/azure/azure-json/1.4.0/azure-json-1.4.0.jar (libraries:com.azure:azure-json:1.4.0) to libraries/com/azure/azure-json/1.4.0/azure-json-1.4.0.jar\nserver-1 | Unpacking com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar (libraries:com.github.oshi:oshi-core:6.9.0) to libraries/com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar\nserver-1 | Unpacking com/google/code/gson/gson/2.14.0/gson-2.14.0.jar (libraries:com.google.code.gson:gson:2.14.0) to libraries/com/google/code/gson/gson/2.14.0/gson-2.14.0.jar\nserver-1 | Unpacking com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar (libraries:com.google.guava:failureaccess:1.0.3) to libraries/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\nserver-1 | Unpacking com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar (libraries:com.google.guava:guava:33.6.0-jre) to libraries/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar\nserver-1 | Unpacking com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar (libraries:com.microsoft.azure:msal4j:1.24.1) to libraries/com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar\nserver-1 | Unpacking com/mojang/authlib/10.0.77/authlib-10.0.77.jar (libraries:com.mojang:authlib:10.0.77) to libraries/com/mojang/authlib/10.0.77/authlib-10.0.77.jar\nserver-1 | Unpacking com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar (libraries:com.mojang:brigadier:1.3.11) to libraries/com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar\nserver-1 | Unpacking com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar (libraries:com.mojang:datafixerupper:10.0.21) to libraries/com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar\nserver-1 | Unpacking com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar (libraries:com.mojang:jtracy:1.14.38) to libraries/com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar\nserver-1 | Unpacking com/mojang/logging/1.7.12/logging-1.7.12.jar (libraries:com.mojang:logging:1.7.12) to libraries/com/mojang/logging/1.7.12/logging-1.7.12.jar\nserver-1 | Unpacking commons-io/commons-io/2.20.0/commons-io-2.20.0.jar (libraries:commons-io:commons-io:2.20.0) to libraries/commons-io/commons-io/2.20.0/commons-io-2.20.0.jar\nserver-1 | Unpacking io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar (libraries:io.netty:netty-buffer:4.2.16.Final) to libraries/io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar (libraries:io.netty:netty-codec-base:4.2.16.Final) to libraries/io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar (libraries:io.netty:netty-codec-compression:4.2.16.Final) to libraries/io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar (libraries:io.netty:netty-codec-http:4.2.16.Final) to libraries/io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar (libraries:io.netty:netty-common:4.2.16.Final) to libraries/io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar (libraries:io.netty:netty-handler:4.2.16.Final) to libraries/io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar (libraries:io.netty:netty-resolver:4.2.16.Final) to libraries/io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar (libraries:io.netty:netty-transport:4.2.16.Final) to libraries/io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-epoll:4.2.16.Final) to libraries/io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-kqueue:4.2.16.Final) to libraries/io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-x86_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-aarch_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-x86_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-aarch_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar (libraries:io.netty:netty-transport-native-unix-common:4.2.16.Final) to libraries/io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar\nserver-1 | Unpacking it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar (libraries:it.unimi.dsi:fastutil:8.5.18) to libraries/it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar\nserver-1 | Unpacking net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar (libraries:net.java.dev.jna:jna:5.17.0) to libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar\nserver-1 | Unpacking net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar (libraries:net.java.dev.jna:jna-platform:5.17.0) to libraries/net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar\nserver-1 | Unpacking net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar (libraries:net.sf.jopt-simple:jopt-simple:5.0.4) to libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar\nserver-1 | Unpacking org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar (libraries:org.apache.commons:commons-lang3:3.20.0) to libraries/org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-api:2.26.0) to libraries/org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-core:2.26.0) to libraries/org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-slf4j2-impl:2.26.0) to libraries/org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar\nserver-1 | Unpacking org/joml/joml/1.10.9/joml-1.10.9.jar (libraries:org.joml:joml:1.10.9) to libraries/org/joml/joml/1.10.9/joml-1.10.9.jar\nserver-1 | Unpacking org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar (libraries:org.jspecify:jspecify:1.0.0) to libraries/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar\nserver-1 | Unpacking org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar (libraries:org.slf4j:slf4j-api:2.0.17) to libraries/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar\nserver-1 | Starting net.minecraft.server.Main\nserver-1 | WARNING: A restricted method in java.lang.System has been called\nserver-1 | WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/data/libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar)\nserver-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nserver-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nserver-1 | \nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.9/joml-1.10.9.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:36:32] [ServerMain/INFO]: Environment: Environment[discoveryUrl=https://discovery.minecraftservices.com/minecraft/client, name=PROD]\nserver-1 | [07:36:33] [Worker-Main-2/INFO]: No existing world data, creating new world\nserver-1 | [07:36:34] [Worker-Main-2/INFO]: Loaded 1866 advancements\nserver-1 | [07:36:34] [Server thread/INFO]: Starting minecraft server version 26.3\nserver-1 | [07:36:34] [Server thread/INFO]: Loading properties\nserver-1 | [07:36:34] [Server thread/INFO]: Default game type: SURVIVAL\nserver-1 | [07:36:34] [Server thread/INFO]: Generating keypair\nserver-1 | [07:36:34] [Server thread/INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:36:34] [Server thread/INFO]: Preparing level \"world\"\nserver-1 | [07:36:35] [Server thread/INFO]: Selecting global world spawn...\nserver-1 | [07:36:37] [Server thread/INFO]: Loading 0 persistent chunks...\nserver-1 | [07:36:37] [Server thread/INFO]: Preparing spawn area: 100%\nserver-1 | [07:36:37] [Server thread/INFO]: Time elapsed: 2872 ms\nserver-1 | [07:36:37] [Server thread/INFO]: Done (3.073s)! For help, type \"help\"\nserver-1 | [07:36:37] [Server thread/INFO]: Starting remote control listener\nserver-1 | [07:36:37] [Server thread/INFO]: Thread RCON Listener started\nserver-1 | [07:36:37] [Server thread/INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:36:37] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:36:38] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:36:38] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:36:41] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:36:41] [RCON Client /0:0:0:0:0:0:0:1 #2/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:36:42] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:36:42] [RCON Client /0:0:0:0:0:0:0:1 #3/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:36:43.297619+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation wa49gbdi/latest vanilla/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:77cf7afee4256e350761abe7a70f823b2e42742d5ab724e9fa75f0f13dfbfed2\",\"ContainerName\":\"minecraft-83273ef0-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":870684768,\"LastTagTime\":\"0001-01-01T00:00:00Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:36:43.553743+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/latest vanilla/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-83273ef0-server-1 Stopping\n Container minecraft-83273ef0-server-1 Stopped\n Container minecraft-83273ef0-server-1 Removing\n Container minecraft-83273ef0-server-1 Removed\n Network minecraft-83273ef0_default Removing\n Network minecraft-83273ef0_default Removed\n"} +{"timestamp": "2026-10-01T07:36:44.466777+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "42491", "--web-port", "59191", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--network"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": true, \"profiles\": [\"proxy\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:36:44.520779+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "start"], "exit": 0, "output": " proxy Pulling \n 09923199ca0e Pulling fs layer \n d9b985643753 Pulling fs layer \n 6e35f74cacf0 Pulling fs layer \n 21f76ee5bdee Pulling fs layer \n 4f4fb700ef54 Pulling fs layer \n 9f4a81b2a5fd Pulling fs layer \n 1bef7f8d1aac Pulling fs layer \n d64507fe87e0 Pulling fs layer \n 6131e0c34789 Pulling fs layer \n d837d7ae14fd Pulling fs layer \n e2cc9a4041ad Pulling fs layer \n 15dc23b25651 Pulling fs layer \n e7aa0a743692 Pulling fs layer \n 3a4e6be39b49 Pulling fs layer \n 5635c320daf8 Pulling fs layer \n 17f3ff6c3d4a Pulling fs layer \n 4eaa9fed82b4 Pulling fs layer \n d837d7ae14fd Waiting \n e2cc9a4041ad Waiting \n 15dc23b25651 Waiting \n e7aa0a743692 Waiting \n 3a4e6be39b49 Waiting \n 5635c320daf8 Waiting \n 4f4fb700ef54 Waiting \n 9f4a81b2a5fd Waiting \n 1bef7f8d1aac Waiting \n 21f76ee5bdee Waiting \n 6131e0c34789 Waiting \n 17f3ff6c3d4a Waiting \n 4eaa9fed82b4 Waiting \n d64507fe87e0 Waiting \n d9b985643753 Downloading [==================================================>] 391B/391B\n d9b985643753 Verifying Checksum \n d9b985643753 Download complete \n 09923199ca0e Downloading [> ] 425.4kB/41.57MB\n 6e35f74cacf0 Downloading [> ] 131.1kB/12.15MB\n 6e35f74cacf0 Verifying Checksum \n 6e35f74cacf0 Download complete \n 09923199ca0e Downloading [===============================> ] 26.41MB/41.57MB\n 09923199ca0e Verifying Checksum \n 09923199ca0e Download complete \n 21f76ee5bdee Downloading [> ] 540.1kB/63.08MB\n 09923199ca0e Extracting [> ] 426kB/41.57MB\n 4f4fb700ef54 Downloading [==================================================>] 32B/32B\n 4f4fb700ef54 Verifying Checksum \n 4f4fb700ef54 Download complete \n 21f76ee5bdee Downloading [====================> ] 25.41MB/63.08MB\n 09923199ca0e Extracting [========> ] 6.816MB/41.57MB\n 9f4a81b2a5fd Downloading [==================================================>] 2.465kB/2.465kB\n 9f4a81b2a5fd Verifying Checksum \n 9f4a81b2a5fd Download complete \n 21f76ee5bdee Downloading [============================================> ] 55.69MB/63.08MB\n 09923199ca0e Extracting [============> ] 10.22MB/41.57MB\n 21f76ee5bdee Verifying Checksum \n 21f76ee5bdee Download complete \n 1bef7f8d1aac Downloading [==================================================>] 96B/96B\n 1bef7f8d1aac Download complete \n 09923199ca0e Extracting [====================> ] 17.04MB/41.57MB\n d64507fe87e0 Downloading [> ] 525.5kB/73.68MB\n 09923199ca0e Extracting [======================> ] 18.32MB/41.57MB\n 6131e0c34789 Downloading [=> ] 15.74kB/783.6kB\n 6131e0c34789 Downloading [==================================================>] 783.6kB/783.6kB\n 6131e0c34789 Verifying Checksum \n 6131e0c34789 Download complete \n d837d7ae14fd Downloading [==================================================>] 1.212kB/1.212kB\n d837d7ae14fd Verifying Checksum \n d837d7ae14fd Download complete \n d64507fe87e0 Downloading [====================> ] 30.39MB/73.68MB\n 09923199ca0e Extracting [========================> ] 20.02MB/41.57MB\n d64507fe87e0 Downloading [=========================================> ] 61.89MB/73.68MB\n d64507fe87e0 Verifying Checksum \n d64507fe87e0 Download complete \n 09923199ca0e Extracting [=============================> ] 24.28MB/41.57MB\n e2cc9a4041ad Downloading [> ] 38.56kB/3.557MB\n 15dc23b25651 Downloading [> ] 49.15kB/3.557MB\n 15dc23b25651 Download complete \n 09923199ca0e Extracting [=====================================> ] 31.52MB/41.57MB\n e2cc9a4041ad Verifying Checksum \n e2cc9a4041ad Download complete \n e7aa0a743692 Downloading [> ] 64.14kB/6.338MB\n e7aa0a743692 Verifying Checksum \n e7aa0a743692 Download complete \n 09923199ca0e Extracting [===========================================> ] 35.78MB/41.57MB\n 3a4e6be39b49 Downloading [> ] 32.77kB/2.427MB\n 5635c320daf8 Downloading [==================================================>] 337B/337B\n 5635c320daf8 Verifying Checksum \n 5635c320daf8 Download complete \n 3a4e6be39b49 Downloading [==================================================>] 2.427MB/2.427MB\n 3a4e6be39b49 Verifying Checksum \n 3a4e6be39b49 Download complete \n 09923199ca0e Extracting [===========================================> ] 36.21MB/41.57MB\n 17f3ff6c3d4a Downloading [> ] 536.7kB/54.9MB\n 17f3ff6c3d4a Downloading [===========================> ] 30.33MB/54.9MB\n 4eaa9fed82b4 Downloading [==============================> ] 3.501kB/5.679kB\n 4eaa9fed82b4 Download complete \n 17f3ff6c3d4a Verifying Checksum \n 17f3ff6c3d4a Download complete \n 09923199ca0e Extracting [==============================================> ] 38.76MB/41.57MB\n 09923199ca0e Extracting [===============================================> ] 39.19MB/41.57MB\n 09923199ca0e Extracting [===============================================> ] 39.62MB/41.57MB\n 09923199ca0e Extracting [================================================> ] 40.47MB/41.57MB\n 09923199ca0e Extracting [=================================================> ] 40.89MB/41.57MB\n 09923199ca0e Extracting [=================================================> ] 41.32MB/41.57MB\n 09923199ca0e Extracting [==================================================>] 41.57MB/41.57MB\n 09923199ca0e Pull complete \n d9b985643753 Extracting [==================================================>] 391B/391B\n d9b985643753 Extracting [==================================================>] 391B/391B\n d9b985643753 Pull complete \n 6e35f74cacf0 Extracting [> ] 131.1kB/12.15MB\n 6e35f74cacf0 Extracting [================> ] 4.063MB/12.15MB\n 6e35f74cacf0 Extracting [===============================> ] 7.602MB/12.15MB\n 6e35f74cacf0 Extracting [=========================================> ] 10.09MB/12.15MB\n 6e35f74cacf0 Extracting [===============================================> ] 11.53MB/12.15MB\n 6e35f74cacf0 Extracting [==================================================>] 12.15MB/12.15MB\n 6e35f74cacf0 Pull complete \n 21f76ee5bdee Extracting [> ] 557.1kB/63.08MB\n 21f76ee5bdee Extracting [=======> ] 8.913MB/63.08MB\n 21f76ee5bdee Extracting [==============> ] 17.83MB/63.08MB\n 21f76ee5bdee Extracting [====================> ] 26.18MB/63.08MB\n 21f76ee5bdee Extracting [==========================> ] 33.98MB/63.08MB\n 21f76ee5bdee Extracting [================================> ] 41.22MB/63.08MB\n 21f76ee5bdee Extracting [======================================> ] 49.02MB/63.08MB\n 21f76ee5bdee Extracting [=============================================> ] 56.82MB/63.08MB\n 21f76ee5bdee Extracting [==================================================>] 63.08MB/63.08MB\n 21f76ee5bdee Pull complete \n 4f4fb700ef54 Extracting [==================================================>] 32B/32B\n 4f4fb700ef54 Extracting [==================================================>] 32B/32B\n 4f4fb700ef54 Pull complete \n 9f4a81b2a5fd Extracting [==================================================>] 2.465kB/2.465kB\n 9f4a81b2a5fd Extracting [==================================================>] 2.465kB/2.465kB\n 9f4a81b2a5fd Pull complete \n 1bef7f8d1aac Extracting [==================================================>] 96B/96B\n 1bef7f8d1aac Extracting [==================================================>] 96B/96B\n 1bef7f8d1aac Pull complete \n d64507fe87e0 Extracting [> ] 557.1kB/73.68MB\n d64507fe87e0 Extracting [=> ] 2.785MB/73.68MB\n d64507fe87e0 Extracting [=====> ] 8.356MB/73.68MB\n d64507fe87e0 Extracting [=======> ] 11.14MB/73.68MB\n d64507fe87e0 Extracting [========> ] 12.26MB/73.68MB\n d64507fe87e0 Extracting [==========> ] 15.6MB/73.68MB\n d64507fe87e0 Extracting [===========> ] 17.27MB/73.68MB\n d64507fe87e0 Extracting [==============> ] 21.73MB/73.68MB\n d64507fe87e0 Extracting [====================> ] 30.64MB/73.68MB\n d64507fe87e0 Extracting [=========================> ] 37.88MB/73.68MB\n d64507fe87e0 Extracting [===============================> ] 46.24MB/73.68MB\n d64507fe87e0 Extracting [================================> ] 47.35MB/73.68MB\n d64507fe87e0 Extracting [================================> ] 47.91MB/73.68MB\n d64507fe87e0 Extracting [==================================> ] 51.25MB/73.68MB\n d64507fe87e0 Extracting [=========================================> ] 61.28MB/73.68MB\n d64507fe87e0 Extracting [=============================================> ] 66.85MB/73.68MB\n d64507fe87e0 Extracting [==============================================> ] 67.96MB/73.68MB\n d64507fe87e0 Extracting [===============================================> ] 69.63MB/73.68MB\n d64507fe87e0 Extracting [=================================================> ] 73.53MB/73.68MB\n d64507fe87e0 Extracting [==================================================>] 73.68MB/73.68MB\n d64507fe87e0 Pull complete \n 6131e0c34789 Extracting [==> ] 32.77kB/783.6kB\n 6131e0c34789 Extracting [==================================================>] 783.6kB/783.6kB\n 6131e0c34789 Extracting [==================================================>] 783.6kB/783.6kB\n 6131e0c34789 Pull complete \n d837d7ae14fd Extracting [==================================================>] 1.212kB/1.212kB\n d837d7ae14fd Extracting [==================================================>] 1.212kB/1.212kB\n d837d7ae14fd Pull complete \n e2cc9a4041ad Extracting [> ] 65.54kB/3.557MB\n e2cc9a4041ad Extracting [==================================================>] 3.557MB/3.557MB\n e2cc9a4041ad Pull complete \n 15dc23b25651 Extracting [> ] 65.54kB/3.557MB\n 15dc23b25651 Extracting [==================================================>] 3.557MB/3.557MB\n 15dc23b25651 Pull complete \n e7aa0a743692 Extracting [> ] 65.54kB/6.338MB\n e7aa0a743692 Extracting [==================================================>] 6.338MB/6.338MB\n e7aa0a743692 Pull complete \n 3a4e6be39b49 Extracting [> ] 32.77kB/2.427MB\n 3a4e6be39b49 Extracting [==================================================>] 2.427MB/2.427MB\n 3a4e6be39b49 Pull complete \n 5635c320daf8 Extracting [==================================================>] 337B/337B\n 5635c320daf8 Extracting [==================================================>] 337B/337B\n 5635c320daf8 Pull complete \n 17f3ff6c3d4a Extracting [> ] 557.1kB/54.9MB\n 17f3ff6c3d4a Extracting [===================> ] 21.17MB/54.9MB\n 17f3ff6c3d4a Extracting [====================================> ] 39.55MB/54.9MB\n 17f3ff6c3d4a Extracting [==================================================>] 54.9MB/54.9MB\n 17f3ff6c3d4a Pull complete \n 4eaa9fed82b4 Extracting [==================================================>] 5.679kB/5.679kB\n 4eaa9fed82b4 Extracting [==================================================>] 5.679kB/5.679kB\n 4eaa9fed82b4 Pull complete \n proxy Pulled \n Network minecraft-f4700249_default Creating\n Network minecraft-f4700249_default Created\n Container minecraft-f4700249-server-1 Creating\n Container minecraft-f4700249-server-1 Created\n Container minecraft-f4700249-proxy-1 Creating\n Container minecraft-f4700249-proxy-1 Created\n Container minecraft-f4700249-server-1 Starting\n Container minecraft-f4700249-server-1 Started\n Container minecraft-f4700249-server-1 Waiting\n Container minecraft-f4700249-server-1 Healthy\n Container minecraft-f4700249-proxy-1 Starting\n Container minecraft-f4700249-proxy-1 Started\n Container minecraft-f4700249-server-1 Waiting\n Container minecraft-f4700249-proxy-1 Waiting\n Container minecraft-f4700249-server-1 Healthy\n Container minecraft-f4700249-proxy-1 Healthy\nThere are 0 of a max of 20 players online: \n{\"architecture\": \"amd64\", \"compose\": \"2.38.2\", \"configuration\": \"valid\", \"docker\": \"28.0.4\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:37:34.701984+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/status", "--port", "42491"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"modinfo\": {\"modList\": [], \"type\": \"FML\"}, \"players\": {\"max\": 20, \"online\": 0, \"sample\": []}, \"version\": {\"name\": \"Velocity 1.7.2-26.3\", \"protocol\": 775}}\n"} +{"timestamp": "2026-10-01T07:37:34.745915+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "compose", "config", "--format", "json"], "exit": 0, "output": "{\n \"name\": \"minecraft-f4700249\",\n \"networks\": {\n \"default\": {\n \"name\": \"minecraft-f4700249_default\",\n \"ipam\": {}\n }\n },\n \"secrets\": {\n \"rcon\": {\n \"name\": \"minecraft-f4700249_rcon\",\n \"file\": \"/tmp/minecraft validation wa49gbdi/velocity network/.state/secrets/rcon\"\n }\n },\n \"services\": {\n \"proxy\": {\n \"profiles\": [\n \"proxy\"\n ],\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"depends_on\": {\n \"server\": {\n \"condition\": \"service_healthy\",\n \"required\": true\n }\n },\n \"entrypoint\": null,\n \"environment\": {\n \"ENABLE_RCON\": \"false\",\n \"MEMORY\": \"512M\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"TYPE\": \"VELOCITY\",\n \"VELOCITY_BUILD_ID\": \"36\",\n \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-monitor\",\n \"status\",\n \"--host\",\n \"localhost\",\n \"--port\",\n \"25565\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 12\n },\n \"image\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\n \"mem_limit\": \"1073741824\",\n \"networks\": {\n \"default\": null\n },\n \"ports\": [\n {\n \"mode\": \"ingress\",\n \"host_ip\": \"127.0.0.1\",\n \"target\": 25565,\n \"published\": \"42491\",\n \"protocol\": \"tcp\"\n }\n ],\n \"restart\": \"unless-stopped\",\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"30s\",\n \"user\": \"1001:1001\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation wa49gbdi/velocity network/data/proxy\",\n \"target\": \"/server\",\n \"bind\": {\n \"create_host_path\": true\n }\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation wa49gbdi/velocity network/.state/velocity.toml\",\n \"target\": \"/server/velocity.toml\",\n \"bind\": {\n \"create_host_path\": true\n }\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation wa49gbdi/velocity network/.state/secrets/forwarding\",\n \"target\": \"/server/forwarding.secret\",\n \"read_only\": true,\n \"bind\": {\n \"create_host_path\": true\n }\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation wa49gbdi/velocity network/plugins/proxy\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {\n \"create_host_path\": true\n }\n }\n ]\n },\n \"server\": {\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"entrypoint\": null,\n \"environment\": {\n \"COPY_CONFIG_DEST\": \"/data\",\n \"ENABLE_QUERY\": \"false\",\n \"ENABLE_RCON\": \"true\",\n \"EULA\": \"TRUE\",\n \"MEMORY\": \"2G\",\n \"MOTD\": \"Unicode \u2603 $$HOME $${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\",\n \"ONLINE_MODE\": \"false\",\n \"PAPER_BUILD\": \"129\",\n \"PAUSE_WHEN_EMPTY_SECONDS\": \"-1\",\n \"RCON_PASSWORD_FILE\": \"/run/secrets/rcon\",\n \"SIMULATION_DISTANCE\": \"4\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"SYNC_SKIP_NEWER_IN_DESTINATION\": \"false\",\n \"TYPE\": \"PAPER\",\n \"VERSION\": \"26.2\",\n \"VIEW_DISTANCE\": \"6\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-health\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 30,\n \"start_period\": \"1m0s\"\n },\n \"image\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\n \"mem_limit\": \"3221225472\",\n \"networks\": {\n \"default\": null\n },\n \"restart\": \"unless-stopped\",\n \"secrets\": [\n {\n \"source\": \"rcon\",\n \"target\": \"/run/secrets/rcon\"\n }\n ],\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"2m0s\",\n \"user\": \"1001:1001\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation wa49gbdi/velocity network/data/server\",\n \"target\": \"/data\",\n \"bind\": {\n \"create_host_path\": true\n }\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation wa49gbdi/velocity network/configs/server\",\n \"target\": \"/config\",\n \"read_only\": true,\n \"bind\": {\n \"create_host_path\": true\n }\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation wa49gbdi/velocity network/plugins/server\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {\n \"create_host_path\": true\n }\n }\n ]\n }\n }\n}"} +{"timestamp": "2026-10-01T07:37:35.006456+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:37:35.311116+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "sha256sum", "/server/velocity-4.2.1-SNAPSHOT-36.jar"], "exit": 0, "output": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c /server/velocity-4.2.1-SNAPSHOT-36.jar\n"} +{"timestamp": "2026-10-01T07:37:35.713503+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation wa49gbdi/velocity network/tests/login.py", "--port", "42491", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:37:35.779689+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-f4700249-server-1 Recreate\n Container minecraft-f4700249-server-1 Recreated\n Container minecraft-f4700249-proxy-1 Recreate\n Container minecraft-f4700249-proxy-1 Recreated\n Container minecraft-f4700249-server-1 Starting\n Container minecraft-f4700249-server-1 Started\n Container minecraft-f4700249-server-1 Waiting\n Container minecraft-f4700249-server-1 Healthy\n Container minecraft-f4700249-proxy-1 Starting\n Container minecraft-f4700249-proxy-1 Started\n Container minecraft-f4700249-server-1 Waiting\n Container minecraft-f4700249-proxy-1 Waiting\n Container minecraft-f4700249-server-1 Healthy\n Container minecraft-f4700249-proxy-1 Healthy\n"} +{"timestamp": "2026-10-01T07:38:03.331057+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation wa49gbdi/velocity network/tests/login.py", "--port", "42491", "--verify-cli", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft"], "exit": 0, "output": "{\"play\": true, \"backend_list\": \"There are 1 of a max of 20 players online: ForwardProof\\n\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 1], [\"configuration\", 12], [\"configuration\", 14], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 13], [\"configuration\", 4], [\"configuration\", 4], [\"configuration\", 4], [\"configuration\", 4], [\"configuration\", 4], [\"configuration\", 4], [\"configuration\", 3]]}\n"} +{"timestamp": "2026-10-01T07:38:10.475477+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "compose", "logs", "--no-color", "server", "proxy"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:38:00.727396326Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:38:01 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:38:01 INFO]: Connections will use epoll channels, libdeflate (Linux x86_64) compression, OpenSSL 3.x.x (Linux x86_64) ciphers\nproxy-1 | [07:38:01 WARN]: The proxy is running in offline mode! This is a security risk and you will NOT receive any support!\nproxy-1 | [07:38:01 INFO]: Loading localizations...\nproxy-1 | [07:38:01 INFO]: Loading plugins...\nproxy-1 | [07:38:01 INFO]: Loaded 1 plugins\nproxy-1 | [07:38:01 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:38:01 INFO]: Done (0.77s)!\nproxy-1 | [07:38:03 INFO]: [connected player] ForwardProof (/172.18.0.1:38838) has connected\nproxy-1 | [07:38:03 INFO]: [server connection] ForwardProof -> main has connected\nproxy-1 | [07:38:10 INFO]: [connected player] ForwardProof (/172.18.0.1:38838) has disconnected\nproxy-1 | [07:38:10 INFO]: [server connection] ForwardProof -> main has disconnected\nserver-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 11 1001 1001 4096 Oct 1 07:37 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:37:42.181 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:37:42.187 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:37:44.290042041Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:37:44 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nserver-1 | [07:37:44 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:37:44 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:37:44 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:37:48 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:37:49 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:37:49 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 727.0ms\nserver-1 | [07:37:51 INFO]: Loaded 1585 recipes\nserver-1 | [07:37:51 INFO]: Loaded 1688 advancements\nserver-1 | [07:37:51 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:37:51 INFO]: Loading properties\nserver-1 | [07:37:51 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:37:51 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:37:51 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:37:52 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:37:52 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:37:52 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:37:52 INFO]: Default game type: SURVIVAL\nserver-1 | [07:37:52 INFO]: Generating keypair\nserver-1 | [07:37:52 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:37:52 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:37:52 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:37:52 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:37:52 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:37:52 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:37:52 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:37:52 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:37:52 INFO]: Preparing level \"world\"\nserver-1 | [07:37:53 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:37:53 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:37:53 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:37:53 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:37:53 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:37:53 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:37:53 INFO]: Done preparing level \"world\" (0.442s)\nserver-1 | [07:37:53 INFO]: [spark] Starting background profiler...\nserver-1 | [07:37:53 INFO]: Starting remote control listener\nserver-1 | [07:37:53 INFO]: Thread RCON Listener started\nserver-1 | [07:37:53 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:37:53 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:37:53 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:37:53 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:37:53 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:37:53 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:37:53 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:37:53 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:37:53 INFO]: Running delayed init tasks\nserver-1 | [07:37:53 INFO]: Done (9.797s)! For help, type \"help\"\nserver-1 | [07:38:03 INFO]: UUID of player ForwardProof is d2c1afbf-5081-3449-8752-8558175e1427\nserver-1 | [07:38:10 INFO]: ForwardProof joined the game\nserver-1 | [07:38:10 INFO]: ForwardProof[/172.18.0.1:59488] logged in with entity id 24 at ([minecraft:overworld]8.5, 79.0, -7.5)\nserver-1 | [07:38:10 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:38:10 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:38:10 INFO]: ForwardProof lost connection: Disconnected\nserver-1 | [07:38:10 INFO]: ForwardProof left the game\n"} +{"timestamp": "2026-10-01T07:38:10.800691+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "compose", "ps", "-q", "server"], "exit": 0, "output": "0503b012e0d7c9b5978746af83e92de464ad1be71c5bd40036a4e81f0baf6bbe\n"} +{"timestamp": "2026-10-01T07:38:11.071665+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", "0503b012e0d7c9b5978746af83e92de464ad1be71c5bd40036a4e81f0baf6bbe"], "exit": 0, "output": "172.18.0.2\n"} +{"timestamp": "2026-10-01T07:38:11.094503+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation wa49gbdi/velocity network/tests/login.py", "--host", "172.18.0.2", "--port", "25565", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"4\\\"This server requires you to connect with Velocity.\\\"\", \"packets\": [[\"login\", 4], [\"login\", 0]]}\n"} +{"timestamp": "2026-10-01T07:38:11.199718+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-f4700249-server-1 Recreate\n Container minecraft-f4700249-server-1 Recreated\n Container minecraft-f4700249-server-1 Starting\n Container minecraft-f4700249-server-1 Started\n Container minecraft-f4700249-server-1 Waiting\n Container minecraft-f4700249-server-1 Healthy\n"} +{"timestamp": "2026-10-01T07:38:33.128288+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation wa49gbdi/velocity network/tests/login.py", "--port", "42491", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"\\n\\b\\u0000\\u0005color\\u0000\\u0003red\\b\\u0000\\u0004text\\u0000:Unable to connect to main: Unable to verify player details\\u0000\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 2]]}\n"} +{"timestamp": "2026-10-01T07:38:33.249793+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-f4700249-server-1 Recreate\n Container minecraft-f4700249-server-1 Recreated\n Container minecraft-f4700249-proxy-1 Recreate\n Container minecraft-f4700249-proxy-1 Recreated\n Container minecraft-f4700249-server-1 Starting\n Container minecraft-f4700249-server-1 Started\n Container minecraft-f4700249-server-1 Waiting\n Container minecraft-f4700249-server-1 Healthy\n Container minecraft-f4700249-proxy-1 Starting\n Container minecraft-f4700249-proxy-1 Started\n Container minecraft-f4700249-proxy-1 Waiting\n Container minecraft-f4700249-server-1 Waiting\n Container minecraft-f4700249-server-1 Healthy\n Container minecraft-f4700249-proxy-1 Healthy\n"} +{"timestamp": "2026-10-01T07:39:00.867394+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation wa49gbdi/velocity network/tests/login.py", "--port", "42491", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:39:00.927777+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:38:58.322472431Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:38:58 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:38:58 INFO]: Connections will use epoll channels, libdeflate (Linux x86_64) compression, OpenSSL 3.x.x (Linux x86_64) ciphers\nserver-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 11 1001 1001 4096 Oct 1 07:37 /data'\nproxy-1 | [07:38:59 INFO]: Loading localizations...\nproxy-1 | [07:38:59 INFO]: Loading plugins...\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nproxy-1 | [07:38:59 INFO]: Loaded 1 plugins\nserver-1 | [init] Resolving type given PAPER\nproxy-1 | [07:38:59 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:38:59 INFO]: Done (0.7s)!\nproxy-1 | [07:39:00 INFO]: [initial connection] /172.18.0.1:55992 has disconnected\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:38:39.590 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:38:39.595 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:38:41.703742159Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:38:41 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nserver-1 | [07:38:41 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:38:41 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:38:42 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:38:46 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:38:46 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:38:46 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 759.8ms\nserver-1 | [07:38:48 INFO]: Loaded 1585 recipes\nserver-1 | [07:38:48 INFO]: Loaded 1688 advancements\nserver-1 | [07:38:49 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:38:49 INFO]: Loading properties\nserver-1 | [07:38:49 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:38:49 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:38:49 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:38:49 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:38:49 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:38:49 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:38:49 INFO]: Default game type: SURVIVAL\nserver-1 | [07:38:49 INFO]: Generating keypair\nserver-1 | [07:38:49 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:38:49 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:38:49 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:38:50 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:38:50 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:38:50 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:38:50 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:38:50 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:38:50 INFO]: Preparing level \"world\"\nserver-1 | [07:38:50 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:38:50 INFO]: Preparing spawn area: 100%\nserver-1 | [07:38:50 INFO]: Prepared spawn area in 2 ms\nserver-1 | [07:38:50 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:38:50 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:38:50 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:38:50 INFO]: Prepared spawn area in 2 ms\nserver-1 | [07:38:50 INFO]: Done preparing level \"world\" (0.466s)\nserver-1 | [07:38:50 INFO]: [spark] Starting background profiler...\nserver-1 | [07:38:50 INFO]: Starting remote control listener\nserver-1 | [07:38:50 INFO]: Thread RCON Listener started\nserver-1 | [07:38:50 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:38:50 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:38:50 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:38:50 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:38:50 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:38:50 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:38:50 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:38:50 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:38:50 INFO]: Running delayed init tasks\nserver-1 | [07:38:50 INFO]: Done (9.749s)! For help, type \"help\"\n"} +{"timestamp": "2026-10-01T07:39:01.179117+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:77cf7afee4256e350761abe7a70f823b2e42742d5ab724e9fa75f0f13dfbfed2\",\"ContainerName\":\"minecraft-f4700249-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":870684768,\"LastTagTime\":\"0001-01-01T00:00:00Z\"},{\"ID\":\"sha256:b760ef5a7ffc32448d7ec242393cfc437f87e74826050567d4710c060d4ac794\",\"ContainerName\":\"minecraft-f4700249-proxy-1\",\"Repository\":\"itzg/mc-proxy\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":631318150,\"LastTagTime\":\"0001-01-01T00:00:00Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:39:01.433981+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-f4700249-proxy-1 Stopping\n Container minecraft-f4700249-proxy-1 Stopped\n Container minecraft-f4700249-proxy-1 Removing\n Container minecraft-f4700249-proxy-1 Removed\n Container minecraft-f4700249-server-1 Stopping\n Container minecraft-f4700249-server-1 Stopped\n Container minecraft-f4700249-server-1 Removing\n Container minecraft-f4700249-server-1 Removed\n Network minecraft-f4700249_default Removing\n Network minecraft-f4700249_default Removed\n"} +{"timestamp": "2026-10-01T07:39:02.744409+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation wa49gbdi/velocity network/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:39:03.001108+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation wa49gbdi/latest vanilla/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:39:03.262953+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation wa49gbdi/restored server/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:39:03.516054+00:00", "cwd": "/tmp/minecraft validation wa49gbdi/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation wa49gbdi/stable paper/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": " Volume minecraft-f2e84856_database Removing\n Volume minecraft-f2e84856_database Removed\n"} +{"timestamp": "2026-10-01T07:39:03.768422+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "Unable to find image 'nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94' locally\ndocker.io/library/nginx@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94: Pulling from library/nginx\ne2de96513ba9: Already exists\ne3320d02d578: Pulling fs layer\n3d85d110b167: Pulling fs layer\n22e5a8a110ec: Pulling fs layer\n6b4dfb2e8f8a: Pulling fs layer\n703c5424632f: Pulling fs layer\nb335b7ac3a40: Pulling fs layer\nb27cf3f7c39d: Pulling fs layer\n703c5424632f: Waiting\nb335b7ac3a40: Waiting\nb27cf3f7c39d: Waiting\n6b4dfb2e8f8a: Waiting\n22e5a8a110ec: Verifying Checksum\n22e5a8a110ec: Download complete\n3d85d110b167: Verifying Checksum\n3d85d110b167: Download complete\ne3320d02d578: Verifying Checksum\ne3320d02d578: Download complete\n6b4dfb2e8f8a: Verifying Checksum\n6b4dfb2e8f8a: Download complete\n703c5424632f: Verifying Checksum\n703c5424632f: Download complete\nb335b7ac3a40: Verifying Checksum\nb335b7ac3a40: Download complete\ne3320d02d578: Pull complete\n3d85d110b167: Pull complete\n22e5a8a110ec: Pull complete\n6b4dfb2e8f8a: Pull complete\n703c5424632f: Pull complete\nb335b7ac3a40: Pull complete\nb27cf3f7c39d: Verifying Checksum\nb27cf3f7c39d: Download complete\nb27cf3f7c39d: Pull complete\nDigest: sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\nStatus: Downloaded newer image for nginx@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n5c3ef3b45c828f3a502c266c82f47a9ff5638fe6f67adda14b4007ef457288da"], "exit": 1, "output": "\nError: No such object: Unable to find image 'nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94' locally\ndocker.io/library/nginx@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94: Pulling from library/nginx\ne2de96513ba9: Already exists\ne3320d02d578: Pulling fs layer\n3d85d110b167: Pulling fs layer\n22e5a8a110ec: Pulling fs layer\n6b4dfb2e8f8a: Pulling fs layer\n703c5424632f: Pulling fs layer\nb335b7ac3a40: Pulling fs layer\nb27cf3f7c39d: Pulling fs layer\n703c5424632f: Waiting\nb335b7ac3a40: Waiting\nb27cf3f7c39d: Waiting\n6b4dfb2e8f8a: Waiting\n22e5a8a110ec: Verifying Checksum\n22e5a8a110ec: Download complete\n3d85d110b167: Verifying Checksum\n3d85d110b167: Download complete\ne3320d02d578: Verifying Checksum\ne3320d02d578: Download complete\n6b4dfb2e8f8a: Verifying Checksum\n6b4dfb2e8f8a: Download complete\n703c5424632f: Verifying Checksum\n703c5424632f: Download complete\nb335b7ac3a40: Verifying Checksum\nb335b7ac3a40: Download complete\ne3320d02d578: Pull complete\n3d85d110b167: Pull complete\n22e5a8a110ec: Pull complete\n6b4dfb2e8f8a: Pull complete\n703c5424632f: Pull complete\nb335b7ac3a40: Pull complete\nb27cf3f7c39d: Verifying Checksum\nb27cf3f7c39d: Download complete\nb27cf3f7c39d: Pull complete\nDigest: sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\nStatus: Downloaded newer image for nginx@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n5c3ef3b45c828f3a502c266c82f47a9ff5638fe6f67adda14b4007ef457288da\n"} +{"timestamp": "2026-10-01T07:39:03.793677+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "rm", "Unable to find image 'nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94' locally\ndocker.io/library/nginx@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94: Pulling from library/nginx\ne2de96513ba9: Already exists\ne3320d02d578: Pulling fs layer\n3d85d110b167: Pulling fs layer\n22e5a8a110ec: Pulling fs layer\n6b4dfb2e8f8a: Pulling fs layer\n703c5424632f: Pulling fs layer\nb335b7ac3a40: Pulling fs layer\nb27cf3f7c39d: Pulling fs layer\n703c5424632f: Waiting\nb335b7ac3a40: Waiting\nb27cf3f7c39d: Waiting\n6b4dfb2e8f8a: Waiting\n22e5a8a110ec: Verifying Checksum\n22e5a8a110ec: Download complete\n3d85d110b167: Verifying Checksum\n3d85d110b167: Download complete\ne3320d02d578: Verifying Checksum\ne3320d02d578: Download complete\n6b4dfb2e8f8a: Verifying Checksum\n6b4dfb2e8f8a: Download complete\n703c5424632f: Verifying Checksum\n703c5424632f: Download complete\nb335b7ac3a40: Verifying Checksum\nb335b7ac3a40: Download complete\ne3320d02d578: Pull complete\n3d85d110b167: Pull complete\n22e5a8a110ec: Pull complete\n6b4dfb2e8f8a: Pull complete\n703c5424632f: Pull complete\nb335b7ac3a40: Pull complete\nb27cf3f7c39d: Verifying Checksum\nb27cf3f7c39d: Download complete\nb27cf3f7c39d: Pull complete\nDigest: sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\nStatus: Downloaded newer image for nginx@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n5c3ef3b45c828f3a502c266c82f47a9ff5638fe6f67adda14b4007ef457288da"], "exit": 1, "output": "Error response from daemon: page not found\n"} diff --git a/docs/proof/review-findings/ci-amd64-cold-image-failure/overlap-first.log b/docs/proof/review-findings/ci-amd64-cold-image-failure/overlap-first.log new file mode 100644 index 0000000..831533d --- /dev/null +++ b/docs/proof/review-findings/ci-amd64-cold-image-failure/overlap-first.log @@ -0,0 +1,67 @@ +time="2026-10-01T07:35:33Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:35:34+0000 INFO Repository already initialized +2026-10-01T07:35:34+0000 INFO Checking for stale locks +2026-10-01T07:35:34+0000 INFO Checking repo integrity +2026-10-01T07:35:35+0000 INFO waiting initial delay of 0... +2026-10-01T07:35:35+0000 INFO waiting for rcon readiness... +2026-10-01T07:35:35+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:35:35+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:35:35+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:35:35+0000 INFO Command executed successfully sync +2026-10-01T07:35:38+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:35:38+0000 INFO using parent snapshot 507cb8dc +2026-10-01T07:35:38+0000 INFO +2026-10-01T07:35:38+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:35:38+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:35:38+0000 INFO Added to the repository: 30.973 KiB (12.900 KiB stored) +2026-10-01T07:35:38+0000 INFO +2026-10-01T07:35:38+0000 INFO processed 182 files, 174.610 MiB in 0:00 +2026-10-01T07:35:38+0000 INFO snapshot 9b0bc016 saved +2026-10-01T07:35:38+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:35:39+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:35:39+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:35:39+0000 INFO keep 2 snapshots: +2026-10-01T07:35:39+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:35:39+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:35:39+0000 INFO d6efb74b 2026-10-01 07:34:59 minecraft mc_backups,server oldest daily snapshot /data 174.567 MiB +2026-10-01T07:35:39+0000 INFO oldest weekly snapshot +2026-10-01T07:35:39+0000 INFO oldest monthly snapshot +2026-10-01T07:35:39+0000 INFO 9b0bc016 2026-10-01 07:35:38 minecraft mc_backups,server daily snapshot /data 174.610 MiB +2026-10-01T07:35:39+0000 INFO weekly snapshot +2026-10-01T07:35:39+0000 INFO monthly snapshot +2026-10-01T07:35:39+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:35:39+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:35:39+0000 INFO 2 snapshots +2026-10-01T07:35:39+0000 INFO +2026-10-01T07:35:39+0000 INFO remove 1 snapshots: +2026-10-01T07:35:39+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:35:39+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:35:39+0000 INFO 507cb8dc 2026-10-01 07:35:25 minecraft mc_backups,server /data 174.610 MiB +2026-10-01T07:35:39+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:35:39+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:35:39+0000 INFO 1 snapshots +2026-10-01T07:35:39+0000 INFO +2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:35:39+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:35:39+0000 INFO loading all snapshots... +2026-10-01T07:35:39+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:35:39+0000 INFO searching used packs... +2026-10-01T07:35:39+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 15 / 15 packs processed +2026-10-01T07:35:39+0000 INFO +2026-10-01T07:35:39+0000 INFO to repack: 47 blobs / 109.039 KiB +2026-10-01T07:35:39+0000 INFO this removes: 24 blobs / 11.768 KiB +2026-10-01T07:35:39+0000 INFO to delete: 0 blobs / 0 B +2026-10-01T07:35:39+0000 INFO total prune: 24 blobs / 11.768 KiB +2026-10-01T07:35:39+0000 INFO remaining: 613 blobs / 160.286 MiB +2026-10-01T07:35:39+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:35:39+0000 INFO +2026-10-01T07:35:39+0000 INFO repacking packs +2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 2 / 2 packs repacked +2026-10-01T07:35:39+0000 INFO rebuilding index +2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 4 / 4 indexes processed +2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted +2026-10-01T07:35:39+0000 INFO removing 2 old packs +2026-10-01T07:35:39+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:35:39+0000 INFO done diff --git a/docs/proof/review-findings/ci-amd64-cold-image-failure/overlap-second.log b/docs/proof/review-findings/ci-amd64-cold-image-failure/overlap-second.log new file mode 100644 index 0000000..9784e6a --- /dev/null +++ b/docs/proof/review-findings/ci-amd64-cold-image-failure/overlap-second.log @@ -0,0 +1,68 @@ +time="2026-10-01T07:35:36Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:35:36+0000 INFO Repository already initialized +2026-10-01T07:35:36+0000 INFO Checking for stale locks +2026-10-01T07:35:37+0000 INFO Checking repo integrity +2026-10-01T07:35:37+0000 INFO waiting initial delay of 0... +2026-10-01T07:35:37+0000 INFO waiting for rcon readiness... +2026-10-01T07:35:37+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:35:38+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:35:38+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:35:38+0000 INFO Command executed successfully sync +2026-10-01T07:35:38+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:35:39+0000 INFO repo already locked, waiting up to 1m0s for the lock +2026-10-01T07:35:44+0000 INFO using parent snapshot 9b0bc016 +2026-10-01T07:35:44+0000 INFO +2026-10-01T07:35:44+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:35:44+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:35:44+0000 INFO Added to the repository: 30.536 KiB (12.354 KiB stored) +2026-10-01T07:35:44+0000 INFO +2026-10-01T07:35:44+0000 INFO processed 182 files, 174.610 MiB in 0:05 +2026-10-01T07:35:44+0000 INFO snapshot a7d3dfae saved +2026-10-01T07:35:44+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:35:45+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:35:45+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:35:45+0000 INFO keep 2 snapshots: +2026-10-01T07:35:45+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:35:45+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:35:45+0000 INFO d6efb74b 2026-10-01 07:34:59 minecraft mc_backups,server oldest daily snapshot /data 174.567 MiB +2026-10-01T07:35:45+0000 INFO oldest weekly snapshot +2026-10-01T07:35:45+0000 INFO oldest monthly snapshot +2026-10-01T07:35:45+0000 INFO a7d3dfae 2026-10-01 07:35:38 minecraft mc_backups,server daily snapshot /data 174.610 MiB +2026-10-01T07:35:45+0000 INFO weekly snapshot +2026-10-01T07:35:45+0000 INFO monthly snapshot +2026-10-01T07:35:45+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:35:45+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:35:45+0000 INFO 2 snapshots +2026-10-01T07:35:45+0000 INFO +2026-10-01T07:35:45+0000 INFO remove 1 snapshots: +2026-10-01T07:35:45+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:35:45+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:35:45+0000 INFO 9b0bc016 2026-10-01 07:35:38 minecraft mc_backups,server /data 174.610 MiB +2026-10-01T07:35:45+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:35:45+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:35:45+0000 INFO 1 snapshots +2026-10-01T07:35:45+0000 INFO +2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:35:45+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:35:45+0000 INFO loading all snapshots... +2026-10-01T07:35:45+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:35:45+0000 INFO searching used packs... +2026-10-01T07:35:45+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 17 / 17 packs processed +2026-10-01T07:35:45+0000 INFO +2026-10-01T07:35:45+0000 INFO to repack: 8 blobs / 2.315 KiB +2026-10-01T07:35:45+0000 INFO this removes: 7 blobs / 1.475 KiB +2026-10-01T07:35:45+0000 INFO to delete: 17 blobs / 9.939 KiB +2026-10-01T07:35:45+0000 INFO total prune: 24 blobs / 11.414 KiB +2026-10-01T07:35:45+0000 INFO remaining: 613 blobs / 160.286 MiB +2026-10-01T07:35:45+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:35:45+0000 INFO +2026-10-01T07:35:45+0000 INFO repacking packs +2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 1 / 1 packs repacked +2026-10-01T07:35:45+0000 INFO rebuilding index +2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 3 / 3 indexes processed +2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted +2026-10-01T07:35:45+0000 INFO removing 2 old packs +2026-10-01T07:35:45+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:35:45+0000 INFO done diff --git a/docs/proof/review-findings/ci-amd64-cold-image-failure/summary.json b/docs/proof/review-findings/ci-amd64-cold-image-failure/summary.json new file mode 100644 index 0000000..3205bc6 --- /dev/null +++ b/docs/proof/review-findings/ci-amd64-cold-image-failure/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:33:52.469193+00:00", + "mode": "fullDocker", + "passed": false, + "finished": "2026-10-01T07:39:03.811983+00:00" +} diff --git a/docs/proof/review-findings/ci-amd64-cold-image-failure/versions.env b/docs/proof/review-findings/ci-amd64-cold-image-failure/versions.env new file mode 100644 index 0000000..16264c6 --- /dev/null +++ b/docs/proof/review-findings/ci-amd64-cold-image-failure/versions.env @@ -0,0 +1,13 @@ +SERVER_IMAGE=itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e +PROXY_IMAGE=itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 +BACKUP_IMAGE=itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 +DATABASE_IMAGE=mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1 +WEB_IMAGE=nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 +PAPER_VERSION=26.2 +PAPER_BUILD=129 +VANILLA_VERSION=26.3 +VELOCITY_VERSION=4.2.1-SNAPSHOT +VELOCITY_BUILD_ID=36 +PAPER_SHA256=b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 +VELOCITY_SHA256=62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c +VANILLA_SERVER_SHA1=33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c diff --git a/docs/proof/review-findings/local-red/commands.jsonl b/docs/proof/review-findings/local-red/commands.jsonl new file mode 100644 index 0000000..0e85253 --- /dev/null +++ b/docs/proof/review-findings/local-red/commands.jsonl @@ -0,0 +1 @@ +{"timestamp": "2026-10-01T07:16:08.799555+00:00", "cwd": "/tmp/minecraft-modernize", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 1, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_ambient_environment_cannot_redirect_project_or_pins (test_cli.SetupBoundary.test_ambient_environment_cannot_redirect_project_or_pins) ... FAIL\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_rejects_network_bypasses (test_cli.SetupBoundary.test_doctor_rejects_network_bypasses) ... FAIL\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_literal_motd_survives_setup_and_compose (test_cli.SetupBoundary.test_literal_motd_survives_setup_and_compose) ... FAIL\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n======================================================================\nFAIL: test_ambient_environment_cannot_redirect_project_or_pins (test_cli.SetupBoundary.test_ambient_environment_cannot_redirect_project_or_pins)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/minecraft-modernize/tests/test_cli.py\", line 89, in test_ambient_environment_cannot_redirect_project_or_pins\n self.assertTrue(config['name'].startswith('minecraft-'))\nAssertionError: False is not true\n\n======================================================================\nFAIL: test_doctor_rejects_network_bypasses (test_cli.SetupBoundary.test_doctor_rejects_network_bypasses)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/minecraft-modernize/tests/test_cli.py\", line 98, in test_doctor_rejects_network_bypasses\n self.assertNotEqual(result.returncode, 0, result.stdout)\nAssertionError: 0 == 0 : {\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n\n\n======================================================================\nFAIL: test_literal_motd_survives_setup_and_compose (test_cli.SetupBoundary.test_literal_motd_survives_setup_and_compose)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File \"/tmp/minecraft-modernize/tests/test_cli.py\", line 105, in test_literal_motd_survives_setup_and_compose\n self.assertEqual(result.returncode, 0, result.stderr)\nAssertionError: 1 != 0 : failed to read /tmp/minecraft cli with spaces tac5_hog/.state/settings.env: line 13: unexpected character \"\\\\\" in variable name \"quote \\\\\\\\ tail'\"\n{\"error\": \"Command '['docker', 'compose', '--project-directory', '/tmp/minecraft cli with spaces tac5_hog', '--env-file', '/tmp/minecraft cli with spaces tac5_hog/versions.env', '--env-file', '/tmp/minecraft cli with spaces tac5_hog/.state/settings.env', '-f', '/tmp/minecraft cli with spaces tac5_hog/compose.yaml', '-f', '/tmp/minecraft cli with spaces tac5_hog/.state/compose.yaml', 'config', '--format', 'json']' returned non-zero exit status 1.\"}\n\n\n----------------------------------------------------------------------\nRan 9 tests in 1.575s\n\nFAILED (failures=3)\n"} diff --git a/docs/proof/review-findings/local-red/summary.json b/docs/proof/review-findings/local-red/summary.json new file mode 100644 index 0000000..072a6e8 --- /dev/null +++ b/docs/proof/review-findings/local-red/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:16:08.799539+00:00", + "mode": "local", + "passed": false, + "finished": "2026-10-01T07:16:10.422559+00:00" +} diff --git a/docs/proof/review-findings/review-spec-boundaries.json b/docs/proof/review-findings/review-spec-boundaries.json new file mode 100644 index 0000000..5bda725 --- /dev/null +++ b/docs/proof/review-findings/review-spec-boundaries.json @@ -0,0 +1,40 @@ +[ + { + "args": [ + "setup", + "--accept-eula", + "--network", + "--motd", + "Spec custom lobby" + ], + "exit": 0, + "stdout": "{\"distribution\": \"paper\", \"network\": true, \"profiles\": [\"proxy\"], \"setup\": \"created\"}\n", + "stderr": "" + }, + { + "args": [ + "doctor" + ], + "exit": 0, + "stdout": "{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n", + "stderr": "" + }, + { + "requested_motd": "Spec custom lobby", + "actual_proxy_motd": "motd = \"Minecraft Velocity network\"" + }, + { + "ambient_project": "review-spec-unrelated-probe", + "effective_project": "review-spec-unrelated-probe", + "exit": 0 + }, + { + "ambient_project_doctor_exit": 0 + }, + { + "ambient_server_image": "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94", + "effective_server_image": "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94", + "reported_server_image": "itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e", + "doctor_exit": 0 + } +] diff --git a/docs/proof/review-findings/review-spec-runtime.json b/docs/proof/review-findings/review-spec-runtime.json new file mode 100644 index 0000000..b5ec302 --- /dev/null +++ b/docs/proof/review-findings/review-spec-runtime.json @@ -0,0 +1,105 @@ +[ + { + "args": [ + "setup", + "--accept-eula", + "--bind", + "127.0.0.1", + "--port", + "60711", + "--start", + "--wait", + "120" + ], + "exit": 0, + "stdout": "There are 0 of a max of 20 players online: \n{\"distribution\": \"paper\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n", + "stderr": " Network minecraft-57df2bbc_default Creating \n Network minecraft-57df2bbc_default Creating \n Network minecraft-57df2bbc_default Created \n Network minecraft-57df2bbc_default Created \n Container minecraft-57df2bbc-server-1 Creating \n Container minecraft-57df2bbc-server-1 Created \n Container minecraft-57df2bbc-server-1 Starting \n Container minecraft-57df2bbc-server-1 Started \n Container minecraft-57df2bbc-server-1 Waiting \n Container minecraft-57df2bbc-server-1 Healthy \n" + }, + { + "args": [ + "compose", + "up", + "-d", + "--force-recreate", + "--no-deps", + "--wait", + "--wait-timeout", + "120", + "server" + ], + "exit": 0, + "stdout": "", + "stderr": " Container minecraft-57df2bbc-server-1 Recreate \n Container minecraft-57df2bbc-server-1 Recreated \n Container minecraft-57df2bbc-server-1 Starting \n Container minecraft-57df2bbc-server-1 Started \n Container minecraft-57df2bbc-server-1 Waiting \n Container minecraft-57df2bbc-server-1 Healthy \n" + }, + { + "args": [ + "compose", + "exec", + "-T", + "server", + "cat", + "/data/review-spec.txt", + "/data/plugins/ReviewSpec/config.yml" + ], + "exit": 0, + "stdout": "custom server input\nreview: custom-plugin-input\n", + "stderr": "" + }, + { + "args": [ + "backup" + ], + "exit": 0, + "stdout": "", + "stderr": " Container minecraft-57df2bbc-backup-run-e23e9e33ee0e Creating \n Container minecraft-57df2bbc-backup-run-e23e9e33ee0e Created \ntime=\"2026-10-01T07:05:52Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:05:52+0000 INFO Initializing new restic repository...\n2026-10-01T07:05:55+0000 INFO created restic repository c1e70cf921 at /backups/repository\n2026-10-01T07:05:55+0000 INFO \n2026-10-01T07:05:55+0000 INFO Please note that knowledge of your password is required to access\n2026-10-01T07:05:55+0000 INFO the repository. Losing your password means that your data is\n2026-10-01T07:05:55+0000 INFO irrecoverably lost.\n2026-10-01T07:05:55+0000 INFO waiting initial delay of 0...\n2026-10-01T07:05:55+0000 INFO waiting for rcon readiness...\n2026-10-01T07:05:55+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:05:55+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:05:55+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:05:55+0000 INFO Command executed successfully sync\n2026-10-01T07:05:55+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:05:56+0000 INFO no parent snapshot found, will read all files\n2026-10-01T07:05:56+0000 INFO \n2026-10-01T07:05:56+0000 INFO Files: 184 new, 0 changed, 0 unmodified\n2026-10-01T07:05:56+0000 INFO Dirs: 310 new, 0 changed, 0 unmodified\n2026-10-01T07:05:56+0000 INFO Added to the repository: 174.706 MiB (160.167 MiB stored)\n2026-10-01T07:05:56+0000 INFO \n2026-10-01T07:05:56+0000 INFO processed 184 files, 174.567 MiB in 0:01\n2026-10-01T07:05:56+0000 INFO snapshot 4acab119 saved\n2026-10-01T07:05:56+0000 INFO Command executed successfully rcon-cli save-on\n" + }, + { + "args": [ + "backup" + ], + "exit": 0, + "stdout": "", + "stderr": " Container minecraft-57df2bbc-backup-run-95a61e87c655 Creating \n Container minecraft-57df2bbc-backup-run-95a61e87c655 Created \ntime=\"2026-10-01T07:05:58Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:05:58+0000 INFO Repository already initialized\n2026-10-01T07:05:58+0000 INFO Checking for stale locks\n2026-10-01T07:05:59+0000 INFO Checking repo integrity\n2026-10-01T07:06:00+0000 INFO waiting initial delay of 0...\n2026-10-01T07:06:00+0000 INFO waiting for rcon readiness...\n2026-10-01T07:06:00+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:06:00+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:06:00+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:06:00+0000 INFO Command executed successfully sync\n2026-10-01T07:06:00+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:06:00+0000 INFO invalid argument \"invalid\" for \"--limit-upload\" flag: strconv.ParseInt: parsing \"invalid\": invalid syntax\n2026-10-01T07:06:00+0000 ERROR Backup failed with exit code 1\n2026-10-01T07:06:00+0000 INFO Command executed successfully rcon-cli save-on\n" + }, + { + "first_still_active_after_second_save_on": true, + "second_prefix": " Container minecraft-57df2bbc-backup-run-e3abdd5cbb9a Creating \n Container minecraft-57df2bbc-backup-run-e3abdd5cbb9a Created \ntime=\"2026-10-01T07:06:03Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:06:04+0000 INFO Repository already initialized\n2026-10-01T07:06:04+0000 INFO Checking for stale locks\n2026-10-01T07:06:04+0000 INFO Checking repo integrity\n2026-10-01T07:06:05+0000 INFO waiting initial delay of 0...\n2026-10-01T07:06:05+0000 INFO waiting for rcon readiness...\n2026-10-01T07:06:05+0000 INFO Command executed successfully rcon-cli save-on\n" + }, + { + "args": [ + "command", + "save-on" + ], + "exit": 0, + "stdout": "Saving is already turned on\n", + "stderr": "" + }, + { + "first_exit": 0, + "first_log": " Container minecraft-57df2bbc-backup-run-c3f4dc254ad3 Creating \n Container minecraft-57df2bbc-backup-run-c3f4dc254ad3 Created \ntime=\"2026-10-01T07:06:01Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:06:02+0000 INFO Repository already initialized\n2026-10-01T07:06:02+0000 INFO Checking for stale locks\n2026-10-01T07:06:02+0000 INFO Checking repo integrity\n2026-10-01T07:06:03+0000 INFO waiting initial delay of 0...\n2026-10-01T07:06:03+0000 INFO waiting for rcon readiness...\n2026-10-01T07:06:03+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:06:03+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:06:03+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:06:03+0000 INFO Command executed successfully sync\n2026-10-01T07:06:15+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:06:16+0000 INFO using parent snapshot 4acab119\n2026-10-01T07:06:16+0000 INFO \n2026-10-01T07:06:16+0000 INFO Files: 0 new, 15 changed, 169 unmodified\n2026-10-01T07:06:16+0000 INFO Dirs: 0 new, 16 changed, 294 unmodified\n2026-10-01T07:06:16+0000 INFO Added to the repository: 31.112 KiB (12.808 KiB stored)\n2026-10-01T07:06:16+0000 INFO \n2026-10-01T07:06:16+0000 INFO processed 184 files, 174.567 MiB in 0:00\n2026-10-01T07:06:16+0000 INFO snapshot 3e55c05f saved\n2026-10-01T07:06:16+0000 INFO Command executed successfully rcon-cli save-on\n" + }, + { + "second_exit": 0, + "second_log": " Container minecraft-57df2bbc-backup-run-e3abdd5cbb9a Creating \n Container minecraft-57df2bbc-backup-run-e3abdd5cbb9a Created \ntime=\"2026-10-01T07:06:03Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:06:04+0000 INFO Repository already initialized\n2026-10-01T07:06:04+0000 INFO Checking for stale locks\n2026-10-01T07:06:04+0000 INFO Checking repo integrity\n2026-10-01T07:06:05+0000 INFO waiting initial delay of 0...\n2026-10-01T07:06:05+0000 INFO waiting for rcon readiness...\n2026-10-01T07:06:05+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:06:16+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:06:16+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:06:16+0000 INFO Command executed successfully sync\n2026-10-01T07:06:16+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:06:16+0000 INFO repo already locked, waiting up to 1m0s for the lock\n2026-10-01T07:06:21+0000 INFO using parent snapshot 3e55c05f\n2026-10-01T07:06:21+0000 INFO \n2026-10-01T07:06:21+0000 INFO Files: 0 new, 15 changed, 169 unmodified\n2026-10-01T07:06:21+0000 INFO Dirs: 0 new, 16 changed, 294 unmodified\n2026-10-01T07:06:21+0000 INFO Added to the repository: 30.669 KiB (12.277 KiB stored)\n2026-10-01T07:06:21+0000 INFO \n2026-10-01T07:06:21+0000 INFO processed 184 files, 174.567 MiB in 0:05\n2026-10-01T07:06:21+0000 INFO snapshot 64945583 saved\n2026-10-01T07:06:21+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:06:22+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:06:23+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:06:23+0000 INFO keep 2 snapshots:\n2026-10-01T07:06:23+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:06:23+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:06:23+0000 INFO 4acab119 2026-10-01 07:05:55 minecraft mc_backups,server oldest daily snapshot /data 174.567 MiB\n2026-10-01T07:06:23+0000 INFO oldest weekly snapshot\n2026-10-01T07:06:23+0000 INFO oldest monthly snapshot\n2026-10-01T07:06:23+0000 INFO 64945583 2026-10-01 07:06:16 minecraft mc_backups,server daily snapshot /data 174.567 MiB\n2026-10-01T07:06:23+0000 INFO weekly snapshot\n2026-10-01T07:06:23+0000 INFO monthly snapshot\n2026-10-01T07:06:23+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:06:23+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:06:23+0000 INFO 2 snapshots\n2026-10-01T07:06:23+0000 INFO \n2026-10-01T07:06:23+0000 INFO remove 1 snapshots:\n2026-10-01T07:06:23+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:06:23+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:06:23+0000 INFO 3e55c05f 2026-10-01 07:06:15 minecraft mc_backups,server /data 174.567 MiB\n2026-10-01T07:06:23+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:06:23+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:06:23+0000 INFO 1 snapshots\n2026-10-01T07:06:23+0000 INFO \n2026-10-01T07:06:23+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:06:23+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:06:23+0000 INFO loading all snapshots...\n2026-10-01T07:06:23+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:06:23+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:06:23+0000 INFO searching used packs...\n2026-10-01T07:06:23+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:06:23+0000 INFO [0:00] 100.00% 15 / 15 packs processed\n2026-10-01T07:06:23+0000 INFO \n2026-10-01T07:06:23+0000 INFO to repack: 8 blobs / 2.305 KiB\n2026-10-01T07:06:23+0000 INFO this removes: 7 blobs / 1.465 KiB\n2026-10-01T07:06:23+0000 INFO to delete: 17 blobs / 9.857 KiB\n2026-10-01T07:06:23+0000 INFO total prune: 24 blobs / 11.322 KiB\n2026-10-01T07:06:23+0000 INFO remaining: 604 blobs / 160.156 MiB\n2026-10-01T07:06:23+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:06:23+0000 INFO \n2026-10-01T07:06:23+0000 INFO repacking packs\n2026-10-01T07:06:23+0000 INFO [0:00] 100.00% 1 / 1 packs repacked\n2026-10-01T07:06:23+0000 INFO rebuilding index\n2026-10-01T07:06:23+0000 INFO [0:00] 100.00% 4 / 4 indexes processed\n2026-10-01T07:06:23+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted\n2026-10-01T07:06:23+0000 INFO removing 2 old packs\n2026-10-01T07:06:23+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:06:23+0000 INFO done\n" + }, + { + "args": [ + "compose", + "down", + "--volumes", + "--remove-orphans", + "--timeout", + "30" + ], + "exit": 0, + "stdout": "", + "stderr": " Container minecraft-57df2bbc-server-1 Stopping \n Container minecraft-57df2bbc-server-1 Stopped \n Container minecraft-57df2bbc-server-1 Removing \n Container minecraft-57df2bbc-server-1 Removed \n Network minecraft-57df2bbc_default Removing \n Network minecraft-57df2bbc_default Removed \n" + }, + { + "owned_resources_remaining": { + "container": [], + "network": [], + "volume": [] + } + } +] diff --git a/docs/proof/review-findings/review-spec.md b/docs/proof/review-findings/review-spec.md new file mode 100644 index 0000000..8efcc97 --- /dev/null +++ b/docs/proof/review-findings/review-spec.md @@ -0,0 +1,23 @@ +# Spec review + +Request changes. Reviewed base `b65b463a674ca0caf9fcf76eca5c07a60b1ab9cd` through `bde5ede`, plus final working docs/source/proof on 2026-10-01 UTC. Spec source is `prompts/implementation.txt` and Michael's adopted version policy. This ticket is complete even though findings remain. + +## Findings + +1. P1, `scripts/minecraft:42`, `scripts/validate:218`. Requirement: "random project names" and "no unrelated prune". Inherited `COMPOSE_PROJECT_NAME` overrides the generated identity. Repro: setup an isolated checkout; invoke `compose config --format json` with `COMPOSE_PROJECT_NAME=review-spec-unrelated-probe`. Effective name changes and doctor succeeds. Cleanup can consequently target another project, including its volumes. Inherited `SERVER_IMAGE` also overrides the pin while doctor reports the original pin. Evidence: `review-spec-boundaries.json`. Make generated identity and effective pins authoritative before launch/cleanup. + +2. P1, `scripts/minecraft:245`. Requirement: "Tests at user-authorized public boundaries" including "backups/restore". Inject `RESTIC_LIMIT_UPLOAD=invalid` into an isolated backup service and run `backup`. Restic reports `Backup failed with exit code 1`, but the CLI returns zero. It checks captured stdout while the failure is on stderr, and the sidecar returns zero. The validator's pre-hook failure does not test this path. Evidence: `review-spec-runtime.json`. Propagate actual snapshot failure. + +3. P1, `compose.yaml:backup`, `docs/operations.md:9`. Requirement: "scheduled consistent backups". Start backup with `PRE_BACKUP_SCRIPT=sleep 12`, wait for save-off/flush/sync, then start ordinary backup. Its readiness sends save-on before acquiring the lock. RCON confirms saving already enabled while the first job remains active. Evidence: `review-spec-runtime.json`. Lock before save-state mutation or use non-mutating readiness. + +4. P2, `scripts/minecraft:125`. Requirement: "idempotent setup and config"; documented MOTD configuration. `setup --accept-eula --network --motd 'Spec custom lobby'` succeeds, but generates proxy MOTD `Minecraft Velocity network`. Clients see the proxy's fixed value. Evidence: `review-spec-boundaries.json`. Apply the requested MOTD to Velocity with valid TOML encoding. + +5. P2, `scripts/validate:101`, `:104`, `:105`, `:154`, `:170`. Requirement: "version updates verifiable". The gate hardcodes Paper 26.2/build129, Vanilla 26.3 and Velocity's current jar filename rather than deriving them from `versions.env`. Updating valid pins makes the prescribed gate check old identities or nonexistent files. Read expectations from pins and explicitly handle client protocol changes. + +## Verification and limits + +Independent `validate local` passed. Independent disposable Paper startup, server/plugin config copying after recreation, successful snapshot, Restic failure and concurrent backups were exercised. All owned containers, networks and volumes were verified absent. Reproduction script and redacted runtime events are `review-spec-runtime.py` and `review-spec-runtime.json`. + +Read actual `docs/proof/runtime/commands.jsonl`, assertions, cleanup and identities. They substantiate ARM64 Paper 26.2, Vanilla 26.3, Java 25, authenticated RCON, persistence, separately booted restored scoreboard, MariaDB persistence/authentication, web serving, real forwarded backend join, direct-backend and wrong-secret denial. Paid-account login and AMD64 execution remain explicitly unproved. Inventory churn is exported; no unrelated deletion is attributed to the validator. + +Final docs now include the proof, migration replacements and limits. Legacy migration keeps production untouched and warns about irreversible upgrades. The discoverable skill and START prompt have explicit EULA consent, prerequisites, live completion checks and host boundaries. Public setup operations ran from fresh copies; an autonomous agent executing START itself was not demonstrated. No arbitrary plugin compatibility is claimed. No unnecessary scope found. No code, main, other ticket, map or GitHub changes were made. diff --git a/docs/proof/review-findings/review-standards-actions.json b/docs/proof/review-findings/review-standards-actions.json new file mode 100644 index 0000000..a978274 --- /dev/null +++ b/docs/proof/review-findings/review-standards-actions.json @@ -0,0 +1,23 @@ +[ + { + "repo": "actions/checkout", + "pinned_commit": "11bd71901bbe5b1630ceea73d27597364c9af683", + "pinned_tags": [ + "v4.2.2" + ], + "latest_release": "v7.0.1", + "published_at": "2026-07-20T15:10:05Z", + "source": "https://api.github.com/repos/actions/checkout/releases/latest" + }, + { + "repo": "actions/upload-artifact", + "pinned_commit": "ea165f8d65b6e75b540449e92b4886f43607fa02", + "pinned_tags": [ + "v4.6.2", + "v4" + ], + "latest_release": "v7.0.1", + "published_at": "2026-04-10T17:31:14Z", + "source": "https://api.github.com/repos/actions/upload-artifact/releases/latest" + } +] diff --git a/docs/proof/review-findings/review-standards-backup-repro.json b/docs/proof/review-findings/review-standards-backup-repro.json new file mode 100644 index 0000000..b0e5600 --- /dev/null +++ b/docs/proof/review-findings/review-standards-backup-repro.json @@ -0,0 +1,60 @@ +{ + "events": [ + { + "args": [ + "setup", + "--accept-eula", + "--bind", + "127.0.0.1", + "--port", + "57443", + "--memory", + "2G", + "--start", + "--wait", + "120" + ], + "exit": 0, + "stdout": "There are 0 of a max of 20 players online: \n{\"distribution\": \"paper\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n", + "stderr": " Network minecraft-4bafbe62_default Creating \n Network minecraft-4bafbe62_default Creating \n Network minecraft-4bafbe62_default Created \n Network minecraft-4bafbe62_default Created \n Container minecraft-4bafbe62-server-1 Creating \n Container minecraft-4bafbe62-server-1 Created \n Container minecraft-4bafbe62-server-1 Starting \n Container minecraft-4bafbe62-server-1 Started \n Container minecraft-4bafbe62-server-1 Waiting \n Container minecraft-4bafbe62-server-1 Healthy \n" + }, + { + "args": [ + "backup" + ], + "exit": 0, + "stdout": "", + "stderr": " Container minecraft-4bafbe62-backup-run-c3cecd735e79 Creating \n Container minecraft-4bafbe62-backup-run-c3cecd735e79 Created \ntime=\"2026-10-01T06:55:03Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T06:55:03+0000 INFO Initializing new restic repository...\n2026-10-01T06:55:05+0000 INFO created restic repository d0b5df7cd6 at /backups/repository\n2026-10-01T06:55:05+0000 INFO \n2026-10-01T06:55:05+0000 INFO Please note that knowledge of your password is required to access\n2026-10-01T06:55:05+0000 INFO the repository. Losing your password means that your data is\n2026-10-01T06:55:05+0000 INFO irrecoverably lost.\n2026-10-01T06:55:05+0000 INFO waiting initial delay of 0...\n2026-10-01T06:55:05+0000 INFO waiting for rcon readiness...\n2026-10-01T06:55:05+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T06:55:06+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T06:55:06+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T06:55:06+0000 INFO Command executed successfully sync\n2026-10-01T06:55:06+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T06:55:06+0000 INFO no parent snapshot found, will read all files\n2026-10-01T06:55:07+0000 INFO \n2026-10-01T06:55:07+0000 INFO Files: 183 new, 0 changed, 0 unmodified\n2026-10-01T06:55:07+0000 INFO Dirs: 310 new, 0 changed, 0 unmodified\n2026-10-01T06:55:07+0000 INFO Added to the repository: 174.716 MiB (160.205 MiB stored)\n2026-10-01T06:55:07+0000 INFO \n2026-10-01T06:55:07+0000 INFO processed 183 files, 174.554 MiB in 0:01\n2026-10-01T06:55:07+0000 INFO snapshot d7922ac4 saved\n2026-10-01T06:55:07+0000 INFO Command executed successfully rcon-cli save-on\n" + }, + { + "args": [ + "backup" + ], + "exit": 0, + "stdout": "", + "stderr": " Container minecraft-4bafbe62-backup-run-51a56a09dc03 Creating \n Container minecraft-4bafbe62-backup-run-51a56a09dc03 Created \ntime=\"2026-10-01T06:55:08Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T06:55:09+0000 INFO Repository already initialized\n2026-10-01T06:55:09+0000 INFO Checking for stale locks\n2026-10-01T06:55:09+0000 INFO Checking repo integrity\n2026-10-01T06:55:10+0000 INFO waiting initial delay of 0...\n2026-10-01T06:55:10+0000 INFO waiting for rcon readiness...\n2026-10-01T06:55:10+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T06:55:10+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T06:55:10+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T06:55:10+0000 INFO Command executed successfully sync\n2026-10-01T06:55:10+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T06:55:10+0000 INFO invalid argument \"invalid\" for \"--limit-upload\" flag: strconv.ParseInt: parsing \"invalid\": invalid syntax\n2026-10-01T06:55:10+0000 ERROR Backup failed with exit code 1\n2026-10-01T06:55:10+0000 INFO Command executed successfully rcon-cli save-on\n" + }, + { + "args": [ + "command", + "save-on" + ], + "exit": 0, + "stdout": "Saving is already turned on\n", + "stderr": "" + }, + { + "args": [ + "compose", + "down", + "--volumes", + "--remove-orphans", + "--timeout", + "30" + ], + "exit": 0, + "stdout": "", + "stderr": " Container minecraft-4bafbe62-server-1 Stopping \n Container minecraft-4bafbe62-server-1 Stopped \n Container minecraft-4bafbe62-server-1 Removing \n Container minecraft-4bafbe62-server-1 Removed \n Network minecraft-4bafbe62_default Removing \n Network minecraft-4bafbe62_default Removed \n" + } + ] +} diff --git a/docs/proof/review-findings/review-standards-boundaries.json b/docs/proof/review-findings/review-standards-boundaries.json new file mode 100644 index 0000000..0cac0e7 --- /dev/null +++ b/docs/proof/review-findings/review-standards-boundaries.json @@ -0,0 +1,25 @@ +[ + { + "case": "project override", + "setup_exit": 0, + "config_exit": 0, + "effective_project": "unrelated-production-review-proof", + "generated_project": "COMPOSE_PROJECT_NAME='minecraft-48967ac5'", + "doctor_exit": 0, + "doctor_configuration": "valid" + }, + { + "case": "host networking", + "setup_exit": 0, + "config_exit": 0, + "network_mode": "host", + "ports": [], + "doctor_exit": 0, + "doctor_configuration": "valid" + }, + { + "case": "MOTD quoting", + "setup_exit": 0, + "config_exit": 1 + } +] diff --git a/docs/proof/review-findings/review-standards-concurrent-backup.json b/docs/proof/review-findings/review-standards-concurrent-backup.json new file mode 100644 index 0000000..801047d --- /dev/null +++ b/docs/proof/review-findings/review-standards-concurrent-backup.json @@ -0,0 +1,57 @@ +[ + { + "args": [ + "setup", + "--accept-eula", + "--bind", + "127.0.0.1", + "--port", + "59409", + "--start", + "--wait", + "120" + ], + "exit": 0, + "stdout": "There are 0 of a max of 20 players online: \n{\"distribution\": \"paper\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n", + "stderr": " Network minecraft-b102c5ca_default Creating \n Network minecraft-b102c5ca_default Creating \n Network minecraft-b102c5ca_default Created \n Network minecraft-b102c5ca_default Created \n Container minecraft-b102c5ca-server-1 Creating \n Container minecraft-b102c5ca-server-1 Created \n Container minecraft-b102c5ca-server-1 Starting \n Container minecraft-b102c5ca-server-1 Started \n Container minecraft-b102c5ca-server-1 Waiting \n Container minecraft-b102c5ca-server-1 Healthy \n" + }, + { + "args": [ + "backup" + ], + "exit": 0, + "stdout": "", + "stderr": " Container minecraft-b102c5ca-backup-run-773fe352a8a0 Creating \n Container minecraft-b102c5ca-backup-run-773fe352a8a0 Created \ntime=\"2026-10-01T06:58:35Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T06:58:35+0000 INFO Initializing new restic repository...\n2026-10-01T06:58:38+0000 INFO created restic repository a94bd0ac3d at /backups/repository\n2026-10-01T06:58:38+0000 INFO \n2026-10-01T06:58:38+0000 INFO Please note that knowledge of your password is required to access\n2026-10-01T06:58:38+0000 INFO the repository. Losing your password means that your data is\n2026-10-01T06:58:38+0000 INFO irrecoverably lost.\n2026-10-01T06:58:38+0000 INFO waiting initial delay of 0...\n2026-10-01T06:58:38+0000 INFO waiting for rcon readiness...\n2026-10-01T06:58:38+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T06:58:38+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T06:58:38+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T06:58:38+0000 INFO Command executed successfully sync\n2026-10-01T06:58:38+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T06:58:38+0000 INFO no parent snapshot found, will read all files\n2026-10-01T06:58:39+0000 INFO \n2026-10-01T06:58:39+0000 INFO Files: 179 new, 0 changed, 0 unmodified\n2026-10-01T06:58:39+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\n2026-10-01T06:58:39+0000 INFO Added to the repository: 174.668 MiB (160.167 MiB stored)\n2026-10-01T06:58:39+0000 INFO \n2026-10-01T06:58:39+0000 INFO processed 179 files, 174.507 MiB in 0:01\n2026-10-01T06:58:39+0000 INFO snapshot 0ec2e6c4 saved\n2026-10-01T06:58:39+0000 INFO Command executed successfully rcon-cli save-on\n" + }, + { + "args": [ + "command", + "save-on" + ], + "exit": 0, + "stdout": "Saving is already turned on\n", + "stderr": "" + }, + { + "observation": "second job has performed save-on while first holds backup lock and is inside pre-backup hook", + "first_still_active": true, + "second_log": " Container minecraft-b102c5ca-backup-run-2efb712c9533 Creating \n Container minecraft-b102c5ca-backup-run-2efb712c9533 Created \ntime=\"2026-10-01T06:58:43Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T06:58:44+0000 INFO Repository already initialized\n2026-10-01T06:58:44+0000 INFO Checking for stale locks\n2026-10-01T06:58:44+0000 INFO Checking repo integrity\n2026-10-01T06:58:45+0000 INFO waiting initial delay of 0...\n2026-10-01T06:58:45+0000 INFO waiting for rcon readiness...\n2026-10-01T06:58:45+0000 INFO Command executed successfully rcon-cli save-on\n" + }, + { + "first_log": " Container minecraft-b102c5ca-backup-run-a78e90dff74e Creating \n Container minecraft-b102c5ca-backup-run-a78e90dff74e Created \ntime=\"2026-10-01T06:58:40Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T06:58:41+0000 INFO Repository already initialized\n2026-10-01T06:58:41+0000 INFO Checking for stale locks\n2026-10-01T06:58:41+0000 INFO Checking repo integrity\n2026-10-01T06:58:42+0000 INFO waiting initial delay of 0...\n2026-10-01T06:58:42+0000 INFO waiting for rcon readiness...\n2026-10-01T06:58:42+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T06:58:42+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T06:58:42+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T06:58:42+0000 INFO Command executed successfully sync\n2026-10-01T06:58:57+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T06:58:58+0000 INFO using parent snapshot 0ec2e6c4\n2026-10-01T06:58:58+0000 INFO \n2026-10-01T06:58:58+0000 INFO Files: 0 new, 12 changed, 167 unmodified\n2026-10-01T06:58:58+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T06:58:58+0000 INFO Added to the repository: 30.539 KiB (12.235 KiB stored)\n2026-10-01T06:58:58+0000 INFO \n2026-10-01T06:58:58+0000 INFO processed 179 files, 174.507 MiB in 0:00\n2026-10-01T06:58:58+0000 INFO snapshot cbba4668 saved\n2026-10-01T06:58:58+0000 INFO Command executed successfully rcon-cli save-on\n", + "second_log": " Container minecraft-b102c5ca-backup-run-2efb712c9533 Creating \n Container minecraft-b102c5ca-backup-run-2efb712c9533 Created \ntime=\"2026-10-01T06:58:43Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T06:58:44+0000 INFO Repository already initialized\n2026-10-01T06:58:44+0000 INFO Checking for stale locks\n2026-10-01T06:58:44+0000 INFO Checking repo integrity\n2026-10-01T06:58:45+0000 INFO waiting initial delay of 0...\n2026-10-01T06:58:45+0000 INFO waiting for rcon readiness...\n2026-10-01T06:58:45+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T06:58:58+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T06:58:58+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T06:58:58+0000 INFO Command executed successfully sync\n2026-10-01T06:58:58+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T06:58:59+0000 INFO repo already locked, waiting up to 1m0s for the lock\n2026-10-01T06:59:04+0000 INFO using parent snapshot cbba4668\n2026-10-01T06:59:04+0000 INFO \n2026-10-01T06:59:04+0000 INFO Files: 0 new, 15 changed, 164 unmodified\n2026-10-01T06:59:04+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T06:59:04+0000 INFO Added to the repository: 30.627 KiB (12.348 KiB stored)\n2026-10-01T06:59:04+0000 INFO \n2026-10-01T06:59:04+0000 INFO processed 179 files, 174.507 MiB in 0:05\n2026-10-01T06:59:04+0000 INFO snapshot 0c9858fe saved\n2026-10-01T06:59:04+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T06:59:05+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T06:59:06+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T06:59:06+0000 INFO keep 2 snapshots:\n2026-10-01T06:59:06+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T06:59:06+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T06:59:06+0000 INFO 0ec2e6c4 2026-10-01 06:58:38 minecraft mc_backups,server oldest daily snapshot /data 174.507 MiB\n2026-10-01T06:59:06+0000 INFO oldest weekly snapshot\n2026-10-01T06:59:06+0000 INFO oldest monthly snapshot\n2026-10-01T06:59:06+0000 INFO 0c9858fe 2026-10-01 06:58:58 minecraft mc_backups,server daily snapshot /data 174.507 MiB\n2026-10-01T06:59:06+0000 INFO weekly snapshot\n2026-10-01T06:59:06+0000 INFO monthly snapshot\n2026-10-01T06:59:06+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T06:59:06+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T06:59:06+0000 INFO 2 snapshots\n2026-10-01T06:59:06+0000 INFO \n2026-10-01T06:59:06+0000 INFO remove 1 snapshots:\n2026-10-01T06:59:06+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T06:59:06+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T06:59:06+0000 INFO cbba4668 2026-10-01 06:58:57 minecraft mc_backups,server /data 174.507 MiB\n2026-10-01T06:59:06+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T06:59:06+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T06:59:06+0000 INFO 1 snapshots\n2026-10-01T06:59:06+0000 INFO \n2026-10-01T06:59:06+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T06:59:06+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T06:59:06+0000 INFO loading all snapshots...\n2026-10-01T06:59:06+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T06:59:06+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T06:59:06+0000 INFO searching used packs...\n2026-10-01T06:59:06+0000 INFO collecting packs for deletion and repacking\n2026-10-01T06:59:06+0000 INFO [0:00] 100.00% 15 / 15 packs processed\n2026-10-01T06:59:06+0000 INFO \n2026-10-01T06:59:06+0000 INFO to repack: 6 blobs / 1.650 KiB\n2026-10-01T06:59:06+0000 INFO this removes: 5 blobs / 903 B\n2026-10-01T06:59:06+0000 INFO to delete: 17 blobs / 9.939 KiB\n2026-10-01T06:59:06+0000 INFO total prune: 22 blobs / 10.821 KiB\n2026-10-01T06:59:06+0000 INFO remaining: 594 blobs / 160.156 MiB\n2026-10-01T06:59:06+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T06:59:06+0000 INFO \n2026-10-01T06:59:06+0000 INFO repacking packs\n2026-10-01T06:59:06+0000 INFO [0:00] 100.00% 1 / 1 packs repacked\n2026-10-01T06:59:06+0000 INFO rebuilding index\n2026-10-01T06:59:06+0000 INFO [0:00] 100.00% 4 / 4 indexes processed\n2026-10-01T06:59:06+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted\n2026-10-01T06:59:06+0000 INFO removing 2 old packs\n2026-10-01T06:59:06+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T06:59:06+0000 INFO done\n" + }, + { + "args": [ + "compose", + "down", + "--volumes", + "--remove-orphans", + "--timeout", + "30" + ], + "exit": 0, + "stdout": "", + "stderr": " Container minecraft-b102c5ca-server-1 Stopping \n Container minecraft-b102c5ca-server-1 Stopped \n Container minecraft-b102c5ca-server-1 Removing \n Container minecraft-b102c5ca-server-1 Removed \n Network minecraft-b102c5ca_default Removing \n Network minecraft-b102c5ca_default Removed \n" + } +] diff --git a/docs/proof/review-findings/review-standards-inventory-diff.json b/docs/proof/review-findings/review-standards-inventory-diff.json new file mode 100644 index 0000000..016680f --- /dev/null +++ b/docs/proof/review-findings/review-standards-inventory-diff.json @@ -0,0 +1,31 @@ +{ + "removed_unrelated_ids": [ + "2dc5d814e349" + ], + "added_unrelated_ids": [], + "preserved_ids": [ + "05758f1c498d", + "14cb2d0322a8", + "1b9e84a6dac9", + "1f2fd13508fb", + "31f7b35c97a2", + "3faf83c3849e", + "4e36373b3ff8", + "5440b03cc0be", + "5f0ffbf98fe9", + "7910b8100224", + "7ca13c7a9157", + "83b52f82cc55", + "8a106aa4cdf8", + "90ed72c10c1c", + "9a0f33f0c8af", + "9fc1c9de7bd4", + "b6565a0b2641", + "b659460c72ed", + "c4b270652fae", + "c59f1f70d70f", + "cb032c5d0307", + "d22abb2de519", + "fcc32bf402ee" + ] +} diff --git a/docs/proof/review-findings/review-standards-inventory-run-summary.json b/docs/proof/review-findings/review-standards-inventory-run-summary.json new file mode 100644 index 0000000..c4db909 --- /dev/null +++ b/docs/proof/review-findings/review-standards-inventory-run-summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T06:46:26.606361+00:00", + "mode": "fullDocker", + "passed": true, + "finished": "2026-10-01T06:49:35.896360+00:00" +} diff --git a/docs/proof/review-findings/review-standards-version-check.json b/docs/proof/review-findings/review-standards-version-check.json new file mode 100644 index 0000000..f062727 --- /dev/null +++ b/docs/proof/review-findings/review-standards-version-check.json @@ -0,0 +1,77 @@ +{ + "images": { + "BACKUP_IMAGE": { + "platforms": { + "amd64": "sha256:67af7cc0b97936effa07ab7b24bc957e3b7562f9bbe30ff0ebc731ad1fd0a00a", + "arm": "sha256:b1ca897693f9ec08f34d50a6c86caeded408ca582861671ec6edc67fa78ff1dd", + "arm64": "sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e" + }, + "reference": "itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16" + }, + "DATABASE_IMAGE": { + "platforms": { + "amd64": "sha256:2f4f46f80e7251990bfdc601ae3f7f2964ddb4dc1868f7deca699fc1ece8c35e", + "arm64": "sha256:6b01a23e2550ac37036c3dd6187f790b56832832b53ce4173b8e2b2fed51e3a5", + "ppc64le": "sha256:31c7afbe80e196dec8aaaed602811b6902e09e70ec9a03ac64372760d1eb4a51", + "s390x": "sha256:d6addcff7350368b777769ed002b9a6b773723034edb85959c0b4aa9fd834945" + }, + "reference": "mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1" + }, + "PROXY_IMAGE": { + "platforms": { + "amd64": "sha256:0dca6fbd141e9623057d396922efbb3b31224737bd8a8bbb15461e2a5746164d", + "arm64": "sha256:6869fe181f33f394d96cc43c60bfac02293c75eaf77f9080e2290317d444e85f" + }, + "reference": "itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411" + }, + "SERVER_IMAGE": { + "platforms": { + "amd64": "sha256:fb2f45007e63d33322cc9c3e1c87d1aef533197889e88c5d4e6b2138f4d86620", + "arm64": "sha256:11fb5d3a9eac50eaab80926a90a948b1ba6714122d55e36c704e5bbd086a0429", + "riscv64": "sha256:744be55957502885613c65b213537d04b0e5baaa8f2ec6c10e59fde8ed8e20d2" + }, + "reference": "itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e" + }, + "WEB_IMAGE": { + "platforms": { + "386": "sha256:6b7a4f13aa1cb05946e90cfa70933418e51f99a9604305eec0779737077fa64d", + "amd64": "sha256:8f84ed99befc3891b8f329c5c202785278a2cfb7c25107d57fb2a134a3117433", + "arm": "sha256:3a46b783293cbd9f24fba2fbafdf391b8c8953e8dcbb0da23b841b4783be3c9e", + "arm64": "sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83", + "ppc64le": "sha256:a2056a035f0ae2caef33df498ee2f22756955da24d89cc7840a500356fc1b099", + "riscv64": "sha256:d0f15a8a48f14a06d10b50ab988842126c0d769bd8f7d9f3b27b101b2d6b8ec6", + "s390x": "sha256:b2cc574e70799bfa87616aa5f6f734bef5a36c2822c7cb5efd639b28688c632a" + }, + "reference": "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94" + } + }, + "software": { + "paper": { + "build": "129", + "channel": "STABLE", + "download": "https://fill-data.papermc.io/v1/objects/b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083/paper-26.2-129.jar", + "sha256": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083", + "source": "https://fill.papermc.io/v3/projects/paper/versions/26.2/builds/129", + "version": "26.2" + }, + "vanilla": { + "latest_release": "26.3", + "server": { + "sha1": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c", + "size": 62294556, + "url": "https://piston-data.mojang.com/v1/objects/33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c/server.jar" + }, + "source": "https://piston-meta.mojang.com/v1/packages/4fe1aa1ef8da1cb95c5bad1fb98890ca56dd8ca3/26.3.json", + "version": "26.3" + }, + "velocity": { + "build": "36", + "channel": "STABLE", + "download": "https://fill-data.papermc.io/v1/objects/62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c/velocity-4.2.1-SNAPSHOT-36.jar", + "sha256": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c", + "source": "https://fill.papermc.io/v3/projects/velocity/versions/4.2.1-SNAPSHOT/builds/36", + "version": "4.2.1-SNAPSHOT" + } + }, + "verified_at": "2026-10-01T06:56:07.421598+00:00" +} diff --git a/docs/proof/review-findings/review-standards.md b/docs/proof/review-findings/review-standards.md new file mode 100644 index 0000000..48370e5 --- /dev/null +++ b/docs/proof/review-findings/review-standards.md @@ -0,0 +1,69 @@ +# Independent standards review + +Reviewed 2026-10-01 UTC in `/tmp/minecraft-modernize`. Fixed point `b65b463a674ca0caf9fcf76eca5c07a60b1ab9cd`; reviewed commits through `bde5ede0f4140cfede9835ddd1b1b5745688d05f`, using `git diff b65b463...HEAD`, plus final working source and runtime evidence. The builder concurrently changed migration ignores and documentation; those edits were observed, not made by this reviewer. No code, other ticket, map or GitHub mutation occurred. + +Resolution: request changes. Three P1 operational defects and three P2 operational/validation defects are verified. A separate P2 maintenance gap is also verified. Closure means this independent review is complete, not that the implementation passes. + +## Verified findings + +### P1: inherited project identity can target unrelated resources + +`scripts/minecraft:42-46`; destructive caller `scripts/validate:208`. + +Fresh setup writes a random `COMPOSE_PROJECT_NAME`, but every Docker call inherits the shell environment. Docker gives an inherited project name precedence over the env-file value. Public repro: initialize an isolated checkout, set `COMPOSE_PROJECT_NAME=unrelated-production-review-proof`, then run `compose config --format json`. The effective name becomes `unrelated-production-review-proof`; `doctor` exits zero. Evidence: `review-standards-boundaries.json`. + +Consequently, `stop` and validator `down --volumes --remove-orphans` can remove containers or volumes belonging to that existing project. I proved name selection without deleting unrelated resources. The validator's later ownership checks use the generated name, making them inspect a different project. Ambient image variables can likewise override file pins while `doctor` reports the file values. + +Minimal fix: make generated deployment identity authoritative with a validated explicit project argument; isolate child Compose interpolation from conflicting inherited deployment/pin variables. Verify actual effective identity before any cleanup. This violates the user's restriction on destructive actions and the documented isolated-project contract. + +### P1: a failed Restic backup returns success + +`scripts/minecraft:245-250`, with capture behavior at `scripts/minecraft:20-22`. + +Public runtime repro: start disposable Paper, complete one backup, then set the isolated backup service's `RESTIC_LIMIT_UPLOAD` to `invalid` and call `scripts/minecraft backup`. Restic rejects the flag, the pinned sidecar logs `ERROR Backup failed with exit code 1`, and the CLI exits zero with empty stdout. All sidecar logs go to stderr, while the CLI checks only captured stdout. The sidecar intentionally continues and itself returns zero after this failure. + +Evidence: `review-standards-backup-repro.json`. Saving resumes correctly, so the defect is false success and lost recovery coverage, not save resumption. Minimal fix: inspect merged stdout/stderr for sidecar failure, or arrange a trustworthy one-shot exit status; test a failure inside Restic, not only `PRE_BACKUP_SCRIPT`. This violates truthful public-command validation and recovery behavior. + +### P1: concurrent backups re-enable saving before the lock + +`compose.yaml:101`, `docs/operations.md:9`, and the pinned backup image's `backup-loop.sh` loop before `flock 4`. + +The sidecar performs its RCON readiness check with `save-on` before acquiring `/backups/.mc-backup-lock`. Public runtime repro: run a backup with `PRE_BACKUP_SCRIPT=sleep 15`; after its successful save-off/flush/sync, start a second ordinary backup. The second job successfully sends save-on while the first still holds the lock. An RCON probe returns `Saving is already turned on` while the first remains active. + +Evidence: `review-standards-concurrent-backup.json`. During a longer actual snapshot this permits world saves while files are being read, defeating coordinated consistency. Minimal fix: use a non-mutating readiness command such as `list`, or acquire the shared lock before any save-state command. Adopt a fixed pinned sidecar or a small maintained entrypoint fix. Add a two-job public test. This is a verified dependency integration defect, not a Fowler abstraction recommendation. + +### P2: host networking bypasses privacy checks + +`scripts/minecraft:150-157`. + +After isolated network setup, set `.state/compose.yaml` to `{"services":{"server":{"network_mode":"host"}}}`. Resolved config has host networking and no `ports`; `doctor` returns `configuration: valid`. Evidence: `review-standards-boundaries.json`. + +Host networking exposes the server's listening gameplay/RCON sockets without published-port entries. An optional database using host networking similarly bypasses its check. Modern forwarding still protects gameplay login; this finding does not claim an account-authentication bypass. Minimal fix: reject host networking for protected services and inspect effective network configuration. This violates the backend/admin privacy contract. + +### P2: the cleanup gate never asserts unrelated resources survived + +`scripts/validate:210-221`. + +The validator writes an inventory diff but computes its pass condition solely from its own remaining resources. `/tmp/minecraft-modernize-runtime-final/summary.json` says passed true while that run's `inventory-diff.json` lists removed unrelated ID `2dc5d814e349`. The later verified run has no removals, but the code still omits this assertion. Copies of the contradictory summary and inventory are retained as `review-standards-inventory-run-summary.json` and `review-standards-inventory-diff.json`. I do not attribute that removal to the validator; another actor may have removed it. The report cannot certify preservation either way. + +Minimal fix: assert preservation of a stable test sentinel outside the cleanup project, or explicitly fail and explain unresolved inventory removals before claiming preservation. Retain owned-resource checks. This is a concrete validation gap, independent of the inherited-project defect. + +### P2: accepted MOTD quoting produces unusable setup + +`scripts/minecraft:107`. + +Pass a MOTD containing one backslash immediately followed by an apostrophe. Setup succeeds and writes settings, but the next `compose config` exits one because dotenv parsing treats the escaped quote incorrectly. A source-independent repro constructs the argument as `"backslash " + chr(92) + "' quote"`. Evidence: `review-standards-boundaries.py` and `.json`. The resulting error is `unexpected character "'" in variable name "quote'"`. + +Minimal fix: serialize dotenv values with correct backslash/quote handling, and verify that public setup preserves this value through actual startup. No shell injection was observed. Dollar escaping in serialized Compose output was investigated and excluded as an unproven runtime defect. + +## Verified maintenance gap + +P2, `.github/workflows/validate.yml:18,20,30,32` and `.github/workflows/versions.yml:15,17`: workflow actions remain pinned to checkout v4.2.2 and upload-artifact v4.6.2. Official GitHub release APIs identify v7.0.1 for both. Evidence: `review-standards-actions.json`, with source URLs. Minimal fix: review the publishers' migration requirements, pin supported current release commits and run both workflows. This is a full-modernization gap, not a claim that an old major alone is a security vulnerability or a documented coding-style violation. + +## Checks and limits + +`./scripts/validate local` passed independently. `./scripts/check-versions` passed independently, validating software metadata and fixed image index/platform digests. Artifacts are `review-standards-local/` and `review-standards-version-check.json`. The image pins freeze exact digest identities rather than floating tags. Existing runtime evidence in `/tmp/minecraft-modernize-runtime-verified/` proves ARM64 Paper/Vanilla startup, persistence, restored scoreboard contents, MariaDB authentication/persistence, static web serving, real forwarded backend join, direct-backend/wrong-secret denial, and restored production authentication. Online login proof challenges the authentication request; the successful forwarded login uses disposable offline account mode. ARM64 runtime evidence does not prove amd64 execution. The final reviewed commit adds effective standalone/Vanilla authentication and Vanilla/Velocity runtime checksum assertions; these were inspected in source, but their newer full-run results were not claimed by this review. + +Two independent disposable Paper deployments reproduced backup failure and concurrency. Their unique projects were torn down successfully, including owned resources; no pruning or host changes occurred. Logs were redacted before publication. Restore guards were inspected for empty destinations, snapshot argument validation and canonical destination handling; no additional verified restore defect is asserted. The legacy-ignore regression visible in the earlier commit is being corrected in the builder's working tree and is not an open finding here. + +Standards sources were the user instructions, `AGENTS.md`, the setup skill and operational contracts. Python/Bash are suitable; no app-stack preference was imposed. No new inline code comments, npm/yarn usage, or worthwhile simplicity/type-safety violation was found. Fowler's full baseline was considered: Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Repeated Switches, Shotgun Surgery, Divergent Change, Speculative Generality, Message Chains, Middle Man and Refused Bequest. These remain heuristics; none justified an additional finding or mandatory abstraction. diff --git a/docs/proof/review-findings/runtime-3/assertions.json b/docs/proof/review-findings/runtime-3/assertions.json new file mode 100644 index 0000000..6cd7fb0 --- /dev/null +++ b/docs/proof/review-findings/runtime-3/assertions.json @@ -0,0 +1,78 @@ +[ + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "custom MOTD reached protocol", + "passed": true + }, + { + "assertion": "Paper exact build", + "passed": true + }, + { + "assertion": "Paper downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective standalone authentication and query settings", + "passed": true + }, + { + "assertion": "standalone requires account authentication", + "passed": true + }, + { + "assertion": "wrong RCON password denied", + "passed": true + }, + { + "assertion": "world survives container recreation", + "passed": true + }, + { + "assertion": "encrypted snapshot created", + "passed": true + }, + { + "assertion": "backup flushed world and resumed saves", + "passed": true + }, + { + "assertion": "scheduled backup interval active", + "passed": true + }, + { + "assertion": "backup failure is reported", + "passed": true + }, + { + "assertion": "backup failure resumes automatic saving", + "passed": true + }, + { + "assertion": "inner Restic failure returns nonzero with useful output", + "passed": true + }, + { + "assertion": "inner Restic failure resumes saves", + "passed": true + }, + { + "assertion": "first backup holds lock after flush", + "passed": true + }, + { + "assertion": "second backup completed nonmutating readiness while first locked", + "passed": false + }, + { + "assertion": "unrelated stable sentinel survives contaminated cleanup", + "passed": true + }, + { + "assertion": "owned containers networks and volumes removed", + "passed": true + } +] diff --git a/docs/proof/review-findings/runtime-3/cleanup.json b/docs/proof/review-findings/runtime-3/cleanup.json new file mode 100644 index 0000000..943c2d4 --- /dev/null +++ b/docs/proof/review-findings/runtime-3/cleanup.json @@ -0,0 +1,3 @@ +{ + "remaining": [] +} diff --git a/docs/proof/review-findings/runtime-3/console.log b/docs/proof/review-findings/runtime-3/console.log new file mode 100644 index 0000000..ce970be --- /dev/null +++ b/docs/proof/review-findings/runtime-3/console.log @@ -0,0 +1,63 @@ +2026-10-01T07:19:25.550153+00:00 exit=0 python3 -m unittest discover -s tests -v +2026-10-01T07:19:27.725802+00:00 exit=0 docker ps -aq +2026-10-01T07:19:27.779198+00:00 exit=0 docker version +2026-10-01T07:19:27.798164+00:00 exit=0 docker create --label com.docker.compose.project=minecraft-sentinel-b6ff019d22cbfecc --name minecraft-sentinel-b6ff019d22cbfecc nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 +2026-10-01T07:19:27.887258+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft setup --accept-eula --bind 127.0.0.1 --port 52273 --web-port 57375 --memory 2G --motd Unicode ☃ $HOME ${SERVER_IMAGE} backslash \' quote \\ tail --profile backup --profile database --profile web +2026-10-01T07:19:27.929496+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft setup --accept-eula --bind 127.0.0.1 --port 52273 --web-port 57375 --memory 2G --motd Unicode ☃ $HOME ${SERVER_IMAGE} backslash \' quote \\ tail --profile backup --profile database --profile web --start +2026-10-01T07:19:51.209831+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/status --port 52273 +PASS 26.2 Minecraft status +PASS custom MOTD reached protocol +2026-10-01T07:19:51.244630+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft compose logs --no-color server +PASS Paper exact build +2026-10-01T07:19:51.399986+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft compose exec -T server sha256sum /data/paper-26.2-129.jar +PASS Paper downloaded artifact checksum +2026-10-01T07:19:51.605743+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft compose exec -T server sh -c grep -E "^(online-mode|enable-query)=" /data/server.properties +PASS effective standalone authentication and query settings +2026-10-01T07:19:51.761836+00:00 exit=0 python3 /tmp/minecraft validation cv0qoj84/stable paper/tests/login.py --port 52273 --expect auth +PASS standalone requires account authentication +2026-10-01T07:19:51.811263+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft compose exec -T server java -version +2026-10-01T07:19:52.018466+00:00 exit=1 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft compose exec -T server rcon-cli --password wrong list +PASS wrong RCON password denied +2026-10-01T07:19:52.224961+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft command scoreboard objectives add proof dummy +2026-10-01T07:19:52.430831+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft command scoreboard players set Proof proof 42 +2026-10-01T07:19:52.686000+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft command save-all flush +2026-10-01T07:19:52.892831+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft compose up -d --force-recreate --no-deps --wait --wait-timeout 600 server +2026-10-01T07:20:09.984665+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft command scoreboard players get Proof proof +PASS world survives container recreation +2026-10-01T07:20:10.190711+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft backup +2026-10-01T07:20:13.949751+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft snapshots +PASS encrypted snapshot created +2026-10-01T07:20:15.110028+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft compose logs --no-color server backup +PASS backup flushed world and resumed saves +PASS scheduled backup interval active +2026-10-01T07:20:15.316176+00:00 exit=1 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft compose run --rm --no-deps -e BACKUP_INTERVAL=0 -e INITIAL_DELAY=0 -e PRE_BACKUP_SCRIPT=exit 73 backup +PASS backup failure is reported +2026-10-01T07:20:17.677148+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft command save-on +PASS backup failure resumes automatic saving +2026-10-01T07:20:17.882766+00:00 exit=1 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft backup +PASS inner Restic failure returns nonzero with useful output +2026-10-01T07:20:20.849888+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft command save-on +PASS inner Restic failure resumes saves +PASS first backup holds lock after flush +2026-10-01T07:21:02.105791+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft compose logs --no-color +2026-10-01T07:21:02.312322+00:00 exit=0 /tmp/minecraft validation cv0qoj84/stable paper/scripts/minecraft compose down --volumes --remove-orphans --timeout 120 +2026-10-01T07:21:03.472607+00:00 exit=0 docker inspect --format {{.Id}} 5ea5f7875cadd1c9293a5540bb34fe2345b602d3e28a9d01d60568f8aaff1682 +PASS unrelated stable sentinel survives contaminated cleanup +2026-10-01T07:21:03.488575+00:00 exit=0 docker rm 5ea5f7875cadd1c9293a5540bb34fe2345b602d3e28a9d01d60568f8aaff1682 +2026-10-01T07:21:03.520560+00:00 exit=0 docker ps -aq +2026-10-01T07:21:03.574751+00:00 exit=0 docker container ls -q --filter label=com.docker.compose.project=minecraft-39cae55e +2026-10-01T07:21:03.590336+00:00 exit=0 docker network ls -q --filter label=com.docker.compose.project=minecraft-39cae55e +2026-10-01T07:21:03.605481+00:00 exit=0 docker volume ls -q --filter label=com.docker.compose.project=minecraft-39cae55e +PASS owned containers networks and volumes removed +Traceback (most recent call last): + File "/tmp/minecraft-modernize/./scripts/validate", line 330, in + main() + File "/tmp/minecraft-modernize/./scripts/validate", line 319, in main + validation.full(args.scenario) + File "/tmp/minecraft-modernize/./scripts/validate", line 204, in full + self.overlapping_backups(paper) + File "/tmp/minecraft-modernize/./scripts/validate", line 139, in overlapping_backups + self.check('second backup completed nonmutating readiness while first locked', 'players online' in second.read_text()) + File "/tmp/minecraft-modernize/./scripts/validate", line 77, in check + raise AssertionError(label) +AssertionError: second backup completed nonmutating readiness while first locked diff --git a/docs/proof/review-findings/runtime-3/overlap-first.log b/docs/proof/review-findings/runtime-3/overlap-first.log new file mode 100644 index 0000000..f08a66c --- /dev/null +++ b/docs/proof/review-findings/runtime-3/overlap-first.log @@ -0,0 +1,69 @@ + Container minecraft-39cae55e-backup-run-3c5b5f178c00 Creating + Container minecraft-39cae55e-backup-run-3c5b5f178c00 Created +time="2026-10-01T07:20:21Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:20:22+0000 INFO Repository already initialized +2026-10-01T07:20:22+0000 INFO Checking for stale locks +2026-10-01T07:20:22+0000 INFO Checking repo integrity +2026-10-01T07:20:23+0000 INFO waiting initial delay of 0... +2026-10-01T07:20:23+0000 INFO waiting for rcon readiness... +2026-10-01T07:20:23+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:20:23+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:20:23+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:20:23+0000 INFO Command executed successfully sync +2026-10-01T07:20:53+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:20:54+0000 INFO using parent snapshot 3bfed967 +2026-10-01T07:20:54+0000 INFO +2026-10-01T07:20:54+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:20:54+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:20:54+0000 INFO Added to the repository: 30.805 KiB (12.894 KiB stored) +2026-10-01T07:20:54+0000 INFO +2026-10-01T07:20:54+0000 INFO processed 182 files, 174.571 MiB in 0:00 +2026-10-01T07:20:54+0000 INFO snapshot 9e798ec3 saved +2026-10-01T07:20:54+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:20:54+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:20:55+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:20:55+0000 INFO keep 2 snapshots: +2026-10-01T07:20:55+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:20:55+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:20:55+0000 INFO 0c911d22 2026-10-01 07:19:52 minecraft mc_backups,server oldest daily snapshot /data 174.571 MiB +2026-10-01T07:20:55+0000 INFO oldest weekly snapshot +2026-10-01T07:20:55+0000 INFO oldest monthly snapshot +2026-10-01T07:20:55+0000 INFO 9e798ec3 2026-10-01 07:20:53 minecraft mc_backups,server daily snapshot /data 174.571 MiB +2026-10-01T07:20:55+0000 INFO weekly snapshot +2026-10-01T07:20:55+0000 INFO monthly snapshot +2026-10-01T07:20:55+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:20:55+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:20:55+0000 INFO 2 snapshots +2026-10-01T07:20:55+0000 INFO +2026-10-01T07:20:55+0000 INFO remove 1 snapshots: +2026-10-01T07:20:55+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:20:55+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:20:55+0000 INFO 3bfed967 2026-10-01 07:20:12 minecraft mc_backups,server /data 174.571 MiB +2026-10-01T07:20:55+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:20:55+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:20:55+0000 INFO 1 snapshots +2026-10-01T07:20:55+0000 INFO +2026-10-01T07:20:55+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:20:55+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:20:55+0000 INFO loading all snapshots... +2026-10-01T07:20:55+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:20:55+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:20:55+0000 INFO searching used packs... +2026-10-01T07:20:55+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:20:55+0000 INFO [0:00] 100.00% 15 / 15 packs processed +2026-10-01T07:20:55+0000 INFO +2026-10-01T07:20:55+0000 INFO to repack: 32 blobs / 16.002 KiB +2026-10-01T07:20:55+0000 INFO this removes: 24 blobs / 11.747 KiB +2026-10-01T07:20:55+0000 INFO to delete: 0 blobs / 0 B +2026-10-01T07:20:55+0000 INFO total prune: 24 blobs / 11.747 KiB +2026-10-01T07:20:55+0000 INFO remaining: 603 blobs / 160.090 MiB +2026-10-01T07:20:55+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:20:55+0000 INFO +2026-10-01T07:20:55+0000 INFO repacking packs +2026-10-01T07:20:55+0000 INFO [0:00] 100.00% 2 / 2 packs repacked +2026-10-01T07:20:55+0000 INFO rebuilding index +2026-10-01T07:20:55+0000 INFO [0:00] 100.00% 4 / 4 indexes processed +2026-10-01T07:20:55+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted +2026-10-01T07:20:55+0000 INFO removing 2 old packs +2026-10-01T07:20:55+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:20:55+0000 INFO done diff --git a/docs/proof/review-findings/runtime-3/overlap-second.log b/docs/proof/review-findings/runtime-3/overlap-second.log new file mode 100644 index 0000000..bc0d2fd --- /dev/null +++ b/docs/proof/review-findings/runtime-3/overlap-second.log @@ -0,0 +1,70 @@ + Container minecraft-39cae55e-backup-run-3dc108ea81f1 Creating + Container minecraft-39cae55e-backup-run-3dc108ea81f1 Created +time="2026-10-01T07:20:23Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:20:24+0000 INFO Repository already initialized +2026-10-01T07:20:24+0000 INFO Checking for stale locks +2026-10-01T07:20:24+0000 INFO Checking repo integrity +2026-10-01T07:20:25+0000 INFO waiting initial delay of 0... +2026-10-01T07:20:25+0000 INFO waiting for rcon readiness... +2026-10-01T07:20:25+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:20:54+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:20:54+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:20:54+0000 INFO Command executed successfully sync +2026-10-01T07:20:54+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:20:54+0000 INFO repo already locked, waiting up to 1m0s for the lock +2026-10-01T07:20:59+0000 INFO using parent snapshot 9e798ec3 +2026-10-01T07:20:59+0000 INFO +2026-10-01T07:20:59+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:20:59+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:20:59+0000 INFO Added to the repository: 30.351 KiB (12.339 KiB stored) +2026-10-01T07:20:59+0000 INFO +2026-10-01T07:20:59+0000 INFO processed 182 files, 174.571 MiB in 0:05 +2026-10-01T07:20:59+0000 INFO snapshot c51fad5d saved +2026-10-01T07:20:59+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:21:00+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:21:01+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:21:01+0000 INFO keep 2 snapshots: +2026-10-01T07:21:01+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:21:01+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:21:01+0000 INFO 0c911d22 2026-10-01 07:19:52 minecraft mc_backups,server oldest daily snapshot /data 174.571 MiB +2026-10-01T07:21:01+0000 INFO oldest weekly snapshot +2026-10-01T07:21:01+0000 INFO oldest monthly snapshot +2026-10-01T07:21:01+0000 INFO c51fad5d 2026-10-01 07:20:54 minecraft mc_backups,server daily snapshot /data 174.571 MiB +2026-10-01T07:21:01+0000 INFO weekly snapshot +2026-10-01T07:21:01+0000 INFO monthly snapshot +2026-10-01T07:21:01+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:21:01+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:21:01+0000 INFO 2 snapshots +2026-10-01T07:21:01+0000 INFO +2026-10-01T07:21:01+0000 INFO remove 1 snapshots: +2026-10-01T07:21:01+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:21:01+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:21:01+0000 INFO 9e798ec3 2026-10-01 07:20:53 minecraft mc_backups,server /data 174.571 MiB +2026-10-01T07:21:01+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:21:01+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:21:01+0000 INFO 1 snapshots +2026-10-01T07:21:01+0000 INFO +2026-10-01T07:21:01+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:21:01+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:21:01+0000 INFO loading all snapshots... +2026-10-01T07:21:01+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:21:01+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:21:01+0000 INFO searching used packs... +2026-10-01T07:21:01+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:21:01+0000 INFO [0:00] 100.00% 17 / 17 packs processed +2026-10-01T07:21:01+0000 INFO +2026-10-01T07:21:01+0000 INFO to repack: 8 blobs / 2.336 KiB +2026-10-01T07:21:01+0000 INFO this removes: 7 blobs / 1.488 KiB +2026-10-01T07:21:01+0000 INFO to delete: 17 blobs / 9.912 KiB +2026-10-01T07:21:01+0000 INFO total prune: 24 blobs / 11.400 KiB +2026-10-01T07:21:01+0000 INFO remaining: 603 blobs / 160.090 MiB +2026-10-01T07:21:01+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:21:01+0000 INFO +2026-10-01T07:21:01+0000 INFO repacking packs +2026-10-01T07:21:01+0000 INFO [0:00] 100.00% 1 / 1 packs repacked +2026-10-01T07:21:01+0000 INFO rebuilding index +2026-10-01T07:21:01+0000 INFO [0:00] 100.00% 3 / 3 indexes processed +2026-10-01T07:21:01+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted +2026-10-01T07:21:01+0000 INFO removing 2 old packs +2026-10-01T07:21:01+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:21:01+0000 INFO done diff --git a/docs/proof/review-findings/runtime-3/summary.json b/docs/proof/review-findings/runtime-3/summary.json new file mode 100644 index 0000000..b5227ba --- /dev/null +++ b/docs/proof/review-findings/runtime-3/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:19:25.550138+00:00", + "mode": "fullDocker", + "passed": false, + "finished": "2026-10-01T07:21:03.686968+00:00" +} diff --git a/docs/proof/review-findings/runtime-4/assertions.json b/docs/proof/review-findings/runtime-4/assertions.json new file mode 100644 index 0000000..e5ce3fd --- /dev/null +++ b/docs/proof/review-findings/runtime-4/assertions.json @@ -0,0 +1,142 @@ +[ + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "custom MOTD reached protocol", + "passed": true + }, + { + "assertion": "Paper exact build", + "passed": true + }, + { + "assertion": "Paper downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective standalone authentication and query settings", + "passed": true + }, + { + "assertion": "standalone requires account authentication", + "passed": true + }, + { + "assertion": "wrong RCON password denied", + "passed": true + }, + { + "assertion": "world survives container recreation", + "passed": true + }, + { + "assertion": "encrypted snapshot created", + "passed": true + }, + { + "assertion": "backup flushed world and resumed saves", + "passed": true + }, + { + "assertion": "scheduled backup interval active", + "passed": true + }, + { + "assertion": "backup failure is reported", + "passed": true + }, + { + "assertion": "backup failure resumes automatic saving", + "passed": true + }, + { + "assertion": "inner Restic failure returns nonzero with useful output", + "passed": true + }, + { + "assertion": "inner Restic failure resumes saves", + "passed": true + }, + { + "assertion": "first backup holds lock after flush", + "passed": true + }, + { + "assertion": "second backup completed nonmutating readiness while first locked", + "passed": true + }, + { + "assertion": "overlap cannot enable saving while first holds lock", + "passed": true + }, + { + "assertion": "overlap-first succeeded", + "passed": true + }, + { + "assertion": "overlap-second succeeded", + "passed": true + }, + { + "assertion": "both overlapping backups resume saves", + "passed": true + }, + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "restored server contains snapshot world", + "passed": true + }, + { + "assertion": "database authenticates and round trips data", + "passed": true + }, + { + "assertion": "database survives recreation", + "passed": true + }, + { + "assertion": "database wrong password denied", + "passed": true + }, + { + "assertion": "optional web serves files", + "passed": true + }, + { + "assertion": "26.3 Minecraft status", + "passed": true + }, + { + "assertion": "Vanilla RCON works", + "passed": true + }, + { + "assertion": "Vanilla downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective Vanilla authentication and query settings", + "passed": true + }, + { + "assertion": "Velocity Minecraft status", + "passed": true + }, + { + "assertion": "literal Velocity MOTD reached protocol", + "passed": false + }, + { + "assertion": "unrelated stable sentinel survives contaminated cleanup", + "passed": true + }, + { + "assertion": "owned containers networks and volumes removed", + "passed": true + } +] diff --git a/docs/proof/review-findings/runtime-4/cleanup.json b/docs/proof/review-findings/runtime-4/cleanup.json new file mode 100644 index 0000000..943c2d4 --- /dev/null +++ b/docs/proof/review-findings/runtime-4/cleanup.json @@ -0,0 +1,3 @@ +{ + "remaining": [] +} diff --git a/docs/proof/review-findings/runtime-4/console.log b/docs/proof/review-findings/runtime-4/console.log new file mode 100644 index 0000000..6d145d2 --- /dev/null +++ b/docs/proof/review-findings/runtime-4/console.log @@ -0,0 +1,121 @@ +2026-10-01T07:21:21.844523+00:00 exit=0 python3 -m unittest discover -s tests -v +2026-10-01T07:21:24.020342+00:00 exit=0 docker ps -aq +2026-10-01T07:21:24.073588+00:00 exit=0 docker version +2026-10-01T07:21:24.092232+00:00 exit=0 docker create --label com.docker.compose.project=minecraft-sentinel-ef7d293852e84c0d --name minecraft-sentinel-ef7d293852e84c0d nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 +2026-10-01T07:21:24.189120+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft setup --accept-eula --bind 127.0.0.1 --port 41385 --web-port 49491 --memory 2G --motd Unicode ☃ $HOME ${SERVER_IMAGE} backslash \' quote \\ tail --profile backup --profile database --profile web +2026-10-01T07:21:24.231655+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft setup --accept-eula --bind 127.0.0.1 --port 41385 --web-port 49491 --memory 2G --motd Unicode ☃ $HOME ${SERVER_IMAGE} backslash \' quote \\ tail --profile backup --profile database --profile web --start +2026-10-01T07:21:46.143874+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/status --port 41385 +PASS 26.2 Minecraft status +PASS custom MOTD reached protocol +2026-10-01T07:21:46.177880+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose logs --no-color server +PASS Paper exact build +2026-10-01T07:21:46.333459+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose exec -T server sha256sum /data/paper-26.2-129.jar +PASS Paper downloaded artifact checksum +2026-10-01T07:21:46.538847+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose exec -T server sh -c grep -E "^(online-mode|enable-query)=" /data/server.properties +PASS effective standalone authentication and query settings +2026-10-01T07:21:46.695884+00:00 exit=0 python3 /tmp/minecraft validation 4_kfbfcj/stable paper/tests/login.py --port 41385 --expect auth +PASS standalone requires account authentication +2026-10-01T07:21:46.745599+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose exec -T server java -version +2026-10-01T07:21:46.952207+00:00 exit=1 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose exec -T server rcon-cli --password wrong list +PASS wrong RCON password denied +2026-10-01T07:21:47.157979+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft command scoreboard objectives add proof dummy +2026-10-01T07:21:47.372308+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft command scoreboard players set Proof proof 42 +2026-10-01T07:21:47.578424+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft command save-all flush +2026-10-01T07:21:47.837839+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose up -d --force-recreate --no-deps --wait --wait-timeout 600 server +2026-10-01T07:22:05.332850+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft command scoreboard players get Proof proof +PASS world survives container recreation +2026-10-01T07:22:05.538752+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft backup +2026-10-01T07:22:09.582214+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft snapshots +PASS encrypted snapshot created +2026-10-01T07:22:10.790644+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose logs --no-color server backup +PASS backup flushed world and resumed saves +PASS scheduled backup interval active +2026-10-01T07:22:10.947006+00:00 exit=1 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose run --rm --no-deps -e BACKUP_INTERVAL=0 -e INITIAL_DELAY=0 -e PRE_BACKUP_SCRIPT=exit 73 backup +PASS backup failure is reported +2026-10-01T07:22:13.508431+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft command save-on +PASS backup failure resumes automatic saving +2026-10-01T07:22:13.717233+00:00 exit=1 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft backup +PASS inner Restic failure returns nonzero with useful output +2026-10-01T07:22:16.967623+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft command save-on +PASS inner Restic failure resumes saves +PASS first backup holds lock after flush +PASS second backup completed nonmutating readiness while first locked +2026-10-01T07:22:21.832880+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft command save-off +PASS overlap cannot enable saving while first holds lock +PASS overlap-first succeeded +PASS overlap-second succeeded +2026-10-01T07:22:31.145547+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft command save-on +PASS both overlapping backups resume saves +2026-10-01T07:22:31.352486+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft command scoreboard players set Proof proof 99 +2026-10-01T07:22:31.560025+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft restore /tmp/minecraft validation 4_kfbfcj/restored snapshot +2026-10-01T07:22:33.474839+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/restored server/scripts/minecraft setup --accept-eula --bind 127.0.0.1 --port 58493 --web-port 45643 --memory 2G --motd Unicode ☃ $HOME ${SERVER_IMAGE} backslash \' quote \\ tail +2026-10-01T07:22:33.570369+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/restored server/scripts/minecraft start +2026-10-01T07:22:50.828823+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/restored server/scripts/status --port 58493 +PASS 26.2 Minecraft status +2026-10-01T07:22:50.861288+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/restored server/scripts/minecraft command scoreboard players get Proof proof +PASS restored server contains snapshot world +2026-10-01T07:22:51.064636+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/restored server/scripts/minecraft compose logs --no-color +2026-10-01T07:22:51.219191+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/restored server/scripts/minecraft compose images --format json +2026-10-01T07:22:51.424049+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/restored server/scripts/minecraft stop +2026-10-01T07:22:52.484095+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose exec -T database sh -c mariadb -uminecraft -p"$(cat /run/secrets/database)" minecraft -e "CREATE TABLE proof (value INT); INSERT INTO proof VALUES (42); SELECT value FROM proof;" +PASS database authenticates and round trips data +2026-10-01T07:22:52.689961+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose up -d --force-recreate --no-deps --wait --wait-timeout 300 database +2026-10-01T07:22:58.756353+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose exec -T database sh -c mariadb -uminecraft -p"$(cat /run/secrets/database)" minecraft -e "SELECT value FROM proof;" +PASS database survives recreation +2026-10-01T07:22:58.965934+00:00 exit=1 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose exec -T database mariadb -uminecraft -pwrong minecraft -e SELECT 1 +PASS database wrong password denied +2026-10-01T07:22:59.173736+00:00 exit=0 python3 -c import urllib.request; print(urllib.request.urlopen("http://127.0.0.1:49491").read().decode()) +PASS optional web serves files +2026-10-01T07:22:59.241654+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose logs --no-color +2026-10-01T07:22:59.447807+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose images --format json +2026-10-01T07:22:59.655294+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft stop +2026-10-01T07:23:00.868635+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/latest vanilla/scripts/minecraft setup --accept-eula --bind 127.0.0.1 --port 53985 --web-port 59677 --memory 2G --motd Unicode ☃ $HOME ${SERVER_IMAGE} backslash \' quote \\ tail --distribution vanilla +2026-10-01T07:23:00.909471+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/latest vanilla/scripts/minecraft start +2026-10-01T07:23:17.197735+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/latest vanilla/scripts/status --port 53985 +PASS 26.3 Minecraft status +2026-10-01T07:23:17.231222+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/latest vanilla/scripts/minecraft command list +PASS Vanilla RCON works +2026-10-01T07:23:17.388211+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/latest vanilla/scripts/minecraft compose exec -T server sh -c find /data -maxdepth 1 -name "*.jar" -exec sha1sum {} \; +PASS Vanilla downloaded artifact checksum +2026-10-01T07:23:17.593814+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/latest vanilla/scripts/minecraft compose exec -T server sh -c grep -E "^(online-mode|enable-query)=" /data/server.properties +PASS effective Vanilla authentication and query settings +2026-10-01T07:23:17.753353+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/latest vanilla/scripts/minecraft compose exec -T server java -version +2026-10-01T07:23:17.964081+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/latest vanilla/scripts/minecraft compose logs --no-color +2026-10-01T07:23:18.122326+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/latest vanilla/scripts/minecraft compose images --format json +2026-10-01T07:23:18.330356+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/latest vanilla/scripts/minecraft stop +2026-10-01T07:23:19.392791+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/velocity network/scripts/minecraft setup --accept-eula --bind 127.0.0.1 --port 36853 --web-port 50773 --memory 2G --motd Unicode ☃ $HOME ${SERVER_IMAGE} backslash \' quote \\ tail --network +2026-10-01T07:23:19.435135+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/velocity network/scripts/minecraft start +2026-10-01T07:23:46.411104+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/velocity network/scripts/status --port 36853 +PASS Velocity Minecraft status +2026-10-01T07:23:46.445066+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/velocity network/scripts/minecraft compose logs --no-color +2026-10-01T07:23:46.601039+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/velocity network/scripts/minecraft compose down --volumes --remove-orphans --timeout 120 +2026-10-01T07:23:48.311072+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/latest vanilla/scripts/minecraft compose down --volumes --remove-orphans --timeout 120 +2026-10-01T07:23:48.466329+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/restored server/scripts/minecraft compose down --volumes --remove-orphans --timeout 120 +2026-10-01T07:23:48.625491+00:00 exit=0 /tmp/minecraft validation 4_kfbfcj/stable paper/scripts/minecraft compose down --volumes --remove-orphans --timeout 120 +2026-10-01T07:23:48.781530+00:00 exit=0 docker inspect --format {{.Id}} fc4c0951a39ad5c2b632924f66bc8dadf2cb996159775ff2a63e62d9d3adcc8a +2026-10-01T07:23:48.797858+00:00 exit=0 docker rm fc4c0951a39ad5c2b632924f66bc8dadf2cb996159775ff2a63e62d9d3adcc8a +PASS unrelated stable sentinel survives contaminated cleanup +2026-10-01T07:23:48.832475+00:00 exit=0 docker ps -aq +2026-10-01T07:23:48.900919+00:00 exit=0 docker container ls -q --filter label=com.docker.compose.project=minecraft-a525d515 +2026-10-01T07:23:48.916868+00:00 exit=0 docker network ls -q --filter label=com.docker.compose.project=minecraft-a525d515 +2026-10-01T07:23:48.932838+00:00 exit=0 docker volume ls -q --filter label=com.docker.compose.project=minecraft-a525d515 +2026-10-01T07:23:48.948679+00:00 exit=0 docker container ls -q --filter label=com.docker.compose.project=minecraft-4b9a956e +2026-10-01T07:23:48.965162+00:00 exit=0 docker network ls -q --filter label=com.docker.compose.project=minecraft-4b9a956e +2026-10-01T07:23:48.980909+00:00 exit=0 docker volume ls -q --filter label=com.docker.compose.project=minecraft-4b9a956e +2026-10-01T07:23:48.996485+00:00 exit=0 docker container ls -q --filter label=com.docker.compose.project=minecraft-55aeb773 +2026-10-01T07:23:49.011985+00:00 exit=0 docker network ls -q --filter label=com.docker.compose.project=minecraft-55aeb773 +2026-10-01T07:23:49.027382+00:00 exit=0 docker volume ls -q --filter label=com.docker.compose.project=minecraft-55aeb773 +2026-10-01T07:23:49.043171+00:00 exit=0 docker container ls -q --filter label=com.docker.compose.project=minecraft-6d68fdaa +2026-10-01T07:23:49.059089+00:00 exit=0 docker network ls -q --filter label=com.docker.compose.project=minecraft-6d68fdaa +2026-10-01T07:23:49.074539+00:00 exit=0 docker volume ls -q --filter label=com.docker.compose.project=minecraft-6d68fdaa +PASS owned containers networks and volumes removed +Traceback (most recent call last): + File "/tmp/minecraft-modernize/./scripts/validate", line 330, in + main() + File "/tmp/minecraft-modernize/./scripts/validate", line 319, in main + validation.full(args.scenario) + File "/tmp/minecraft-modernize/./scripts/validate", line 241, in full + self.check('literal Velocity MOTD reached protocol', MOTD == (response['description'].get('text') if isinstance(response['description'], dict) else response['description'])) + File "/tmp/minecraft-modernize/./scripts/validate", line 77, in check + raise AssertionError(label) +AssertionError: literal Velocity MOTD reached protocol diff --git a/docs/proof/review-findings/runtime-4/overlap-first.log b/docs/proof/review-findings/runtime-4/overlap-first.log new file mode 100644 index 0000000..6fb2576 --- /dev/null +++ b/docs/proof/review-findings/runtime-4/overlap-first.log @@ -0,0 +1,69 @@ + Container minecraft-a525d515-backup-run-b3de2f59421f Creating + Container minecraft-a525d515-backup-run-b3de2f59421f Created +time="2026-10-01T07:22:17Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:22:18+0000 INFO Repository already initialized +2026-10-01T07:22:18+0000 INFO Checking for stale locks +2026-10-01T07:22:18+0000 INFO Checking repo integrity +2026-10-01T07:22:19+0000 INFO waiting initial delay of 0... +2026-10-01T07:22:19+0000 INFO waiting for rcon readiness... +2026-10-01T07:22:19+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:22:19+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:22:19+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:22:19+0000 INFO Command executed successfully sync +2026-10-01T07:22:22+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:22:22+0000 INFO using parent snapshot 35b45659 +2026-10-01T07:22:22+0000 INFO +2026-10-01T07:22:22+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:22:22+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:22:22+0000 INFO Added to the repository: 31.246 KiB (13.052 KiB stored) +2026-10-01T07:22:22+0000 INFO +2026-10-01T07:22:22+0000 INFO processed 182 files, 174.563 MiB in 0:00 +2026-10-01T07:22:22+0000 INFO snapshot a61c4bd3 saved +2026-10-01T07:22:22+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:22:23+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:22:24+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:22:24+0000 INFO keep 2 snapshots: +2026-10-01T07:22:24+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:22:24+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:22:24+0000 INFO 43d1b058 2026-10-01 07:21:48 minecraft mc_backups,server oldest daily snapshot /data 174.563 MiB +2026-10-01T07:22:24+0000 INFO oldest weekly snapshot +2026-10-01T07:22:24+0000 INFO oldest monthly snapshot +2026-10-01T07:22:24+0000 INFO a61c4bd3 2026-10-01 07:22:22 minecraft mc_backups,server daily snapshot /data 174.563 MiB +2026-10-01T07:22:24+0000 INFO weekly snapshot +2026-10-01T07:22:24+0000 INFO monthly snapshot +2026-10-01T07:22:24+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:22:24+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:22:24+0000 INFO 2 snapshots +2026-10-01T07:22:24+0000 INFO +2026-10-01T07:22:24+0000 INFO remove 1 snapshots: +2026-10-01T07:22:24+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:22:24+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:22:24+0000 INFO 35b45659 2026-10-01 07:22:07 minecraft mc_backups,server /data 174.563 MiB +2026-10-01T07:22:24+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:22:24+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:22:24+0000 INFO 1 snapshots +2026-10-01T07:22:24+0000 INFO +2026-10-01T07:22:24+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:22:24+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:22:24+0000 INFO loading all snapshots... +2026-10-01T07:22:24+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:22:24+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:22:24+0000 INFO searching used packs... +2026-10-01T07:22:24+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:22:24+0000 INFO [0:00] 100.00% 15 / 15 packs processed +2026-10-01T07:22:24+0000 INFO +2026-10-01T07:22:24+0000 INFO to repack: 32 blobs / 16.142 KiB +2026-10-01T07:22:24+0000 INFO this removes: 24 blobs / 11.890 KiB +2026-10-01T07:22:24+0000 INFO to delete: 0 blobs / 0 B +2026-10-01T07:22:24+0000 INFO total prune: 24 blobs / 11.890 KiB +2026-10-01T07:22:24+0000 INFO remaining: 610 blobs / 160.139 MiB +2026-10-01T07:22:24+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:22:24+0000 INFO +2026-10-01T07:22:24+0000 INFO repacking packs +2026-10-01T07:22:24+0000 INFO [0:00] 100.00% 2 / 2 packs repacked +2026-10-01T07:22:24+0000 INFO rebuilding index +2026-10-01T07:22:24+0000 INFO [0:00] 100.00% 4 / 4 indexes processed +2026-10-01T07:22:24+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted +2026-10-01T07:22:24+0000 INFO removing 2 old packs +2026-10-01T07:22:24+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:22:24+0000 INFO done diff --git a/docs/proof/review-findings/runtime-4/overlap-second.log b/docs/proof/review-findings/runtime-4/overlap-second.log new file mode 100644 index 0000000..42afb7d --- /dev/null +++ b/docs/proof/review-findings/runtime-4/overlap-second.log @@ -0,0 +1,70 @@ + Container minecraft-a525d515-backup-run-ead53efeb19c Creating + Container minecraft-a525d515-backup-run-ead53efeb19c Created +time="2026-10-01T07:22:19Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:22:20+0000 INFO Repository already initialized +2026-10-01T07:22:20+0000 INFO Checking for stale locks +2026-10-01T07:22:21+0000 INFO Checking repo integrity +2026-10-01T07:22:21+0000 INFO waiting initial delay of 0... +2026-10-01T07:22:21+0000 INFO waiting for rcon readiness... +2026-10-01T07:22:21+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:22:22+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:22:22+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:22:22+0000 INFO Command executed successfully sync +2026-10-01T07:22:22+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:22:23+0000 INFO repo already locked, waiting up to 1m0s for the lock +2026-10-01T07:22:28+0000 INFO using parent snapshot a61c4bd3 +2026-10-01T07:22:28+0000 INFO +2026-10-01T07:22:28+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:22:28+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:22:28+0000 INFO Added to the repository: 30.807 KiB (12.507 KiB stored) +2026-10-01T07:22:28+0000 INFO +2026-10-01T07:22:28+0000 INFO processed 182 files, 174.563 MiB in 0:05 +2026-10-01T07:22:28+0000 INFO snapshot e1b8d09d saved +2026-10-01T07:22:28+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:22:29+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:22:30+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:22:30+0000 INFO keep 2 snapshots: +2026-10-01T07:22:30+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:22:30+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:22:30+0000 INFO 43d1b058 2026-10-01 07:21:48 minecraft mc_backups,server oldest daily snapshot /data 174.563 MiB +2026-10-01T07:22:30+0000 INFO oldest weekly snapshot +2026-10-01T07:22:30+0000 INFO oldest monthly snapshot +2026-10-01T07:22:30+0000 INFO e1b8d09d 2026-10-01 07:22:22 minecraft mc_backups,server daily snapshot /data 174.563 MiB +2026-10-01T07:22:30+0000 INFO weekly snapshot +2026-10-01T07:22:30+0000 INFO monthly snapshot +2026-10-01T07:22:30+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:22:30+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:22:30+0000 INFO 2 snapshots +2026-10-01T07:22:30+0000 INFO +2026-10-01T07:22:30+0000 INFO remove 1 snapshots: +2026-10-01T07:22:30+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:22:30+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:22:30+0000 INFO a61c4bd3 2026-10-01 07:22:22 minecraft mc_backups,server /data 174.563 MiB +2026-10-01T07:22:30+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:22:30+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:22:30+0000 INFO 1 snapshots +2026-10-01T07:22:30+0000 INFO +2026-10-01T07:22:30+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:22:30+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:22:30+0000 INFO loading all snapshots... +2026-10-01T07:22:30+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:22:30+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:22:30+0000 INFO searching used packs... +2026-10-01T07:22:30+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:22:30+0000 INFO [0:00] 100.00% 17 / 17 packs processed +2026-10-01T07:22:30+0000 INFO +2026-10-01T07:22:30+0000 INFO to repack: 8 blobs / 2.314 KiB +2026-10-01T07:22:30+0000 INFO this removes: 7 blobs / 1.472 KiB +2026-10-01T07:22:30+0000 INFO to delete: 17 blobs / 10.092 KiB +2026-10-01T07:22:30+0000 INFO total prune: 24 blobs / 11.563 KiB +2026-10-01T07:22:30+0000 INFO remaining: 610 blobs / 160.139 MiB +2026-10-01T07:22:30+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:22:30+0000 INFO +2026-10-01T07:22:30+0000 INFO repacking packs +2026-10-01T07:22:30+0000 INFO [0:00] 100.00% 1 / 1 packs repacked +2026-10-01T07:22:30+0000 INFO rebuilding index +2026-10-01T07:22:30+0000 INFO [0:00] 100.00% 3 / 3 indexes processed +2026-10-01T07:22:30+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted +2026-10-01T07:22:30+0000 INFO removing 2 old packs +2026-10-01T07:22:30+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:22:30+0000 INFO done diff --git a/docs/proof/review-findings/runtime-4/summary.json b/docs/proof/review-findings/runtime-4/summary.json new file mode 100644 index 0000000..cf6ab46 --- /dev/null +++ b/docs/proof/review-findings/runtime-4/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:21:21.844507+00:00", + "mode": "fullDocker", + "passed": false, + "finished": "2026-10-01T07:23:49.271254+00:00" +} diff --git a/docs/proof/review-fixes/archive-runtime/assertions.json b/docs/proof/review-fixes/archive-runtime/assertions.json new file mode 100644 index 0000000..428c80a --- /dev/null +++ b/docs/proof/review-fixes/archive-runtime/assertions.json @@ -0,0 +1,182 @@ +[ + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "custom MOTD reached protocol", + "passed": true + }, + { + "assertion": "Paper exact build", + "passed": true + }, + { + "assertion": "Paper downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective standalone authentication and query settings", + "passed": true + }, + { + "assertion": "standalone requires account authentication", + "passed": true + }, + { + "assertion": "wrong RCON password denied", + "passed": true + }, + { + "assertion": "world survives container recreation", + "passed": true + }, + { + "assertion": "encrypted snapshot created", + "passed": true + }, + { + "assertion": "backup flushed world and resumed saves", + "passed": true + }, + { + "assertion": "scheduled backup interval active", + "passed": true + }, + { + "assertion": "backup failure is reported", + "passed": true + }, + { + "assertion": "backup failure resumes automatic saving", + "passed": true + }, + { + "assertion": "inner Restic failure returns nonzero with useful output", + "passed": true + }, + { + "assertion": "inner Restic failure resumes saves", + "passed": true + }, + { + "assertion": "first backup holds lock after flush", + "passed": true + }, + { + "assertion": "second backup completed nonmutating readiness while first locked", + "passed": true + }, + { + "assertion": "overlap cannot enable saving while first holds lock", + "passed": true + }, + { + "assertion": "overlap-first succeeded", + "passed": true + }, + { + "assertion": "overlap-second succeeded", + "passed": true + }, + { + "assertion": "both overlapping backups resume saves", + "passed": true + }, + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "restored server contains snapshot world", + "passed": true + }, + { + "assertion": "database authenticates and round trips data", + "passed": true + }, + { + "assertion": "database survives recreation", + "passed": true + }, + { + "assertion": "database wrong password denied", + "passed": true + }, + { + "assertion": "optional web serves files", + "passed": true + }, + { + "assertion": "26.3 Minecraft status", + "passed": true + }, + { + "assertion": "Vanilla RCON works", + "passed": true + }, + { + "assertion": "Vanilla downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective Vanilla authentication and query settings", + "passed": true + }, + { + "assertion": "Velocity Minecraft status", + "passed": true + }, + { + "assertion": "literal Velocity MOTD reached protocol", + "passed": true + }, + { + "assertion": "backend has no published port", + "passed": true + }, + { + "assertion": "production Velocity online authentication", + "passed": true + }, + { + "assertion": "forwarding secret reaches effective Paper config", + "passed": true + }, + { + "assertion": "Velocity downloaded artifact checksum", + "passed": true + }, + { + "assertion": "production proxy requires account authentication", + "passed": true + }, + { + "assertion": "real client enters play through authenticated modern forwarding", + "passed": true + }, + { + "assertion": "backend logged the real client join", + "passed": true + }, + { + "assertion": "direct backend client denied without forwarding", + "passed": true + }, + { + "assertion": "wrong forwarding secret denies client login", + "passed": true + }, + { + "assertion": "production online authentication restored", + "passed": true + }, + { + "assertion": "unrelated stable sentinel survives contaminated cleanup", + "passed": true + }, + { + "assertion": "owned containers networks and volumes removed", + "passed": true + } +] diff --git a/docs/proof/review-fixes/archive-runtime/cleanup.json b/docs/proof/review-fixes/archive-runtime/cleanup.json new file mode 100644 index 0000000..943c2d4 --- /dev/null +++ b/docs/proof/review-fixes/archive-runtime/cleanup.json @@ -0,0 +1,3 @@ +{ + "remaining": [] +} diff --git a/docs/proof/review-fixes/archive-runtime/commands.jsonl b/docs/proof/review-fixes/archive-runtime/commands.jsonl new file mode 100644 index 0000000..5407e8d --- /dev/null +++ b/docs/proof/review-fixes/archive-runtime/commands.jsonl @@ -0,0 +1,95 @@ +{"timestamp": "2026-10-01T07:24:31.637271+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 0, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_ambient_environment_cannot_redirect_project_or_pins (test_cli.SetupBoundary.test_ambient_environment_cannot_redirect_project_or_pins) ... ok\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_rejects_network_bypasses (test_cli.SetupBoundary.test_doctor_rejects_network_bypasses) ... ok\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_literal_motd_survives_setup_and_compose (test_cli.SetupBoundary.test_literal_motd_survives_setup_and_compose) ... ok\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n----------------------------------------------------------------------\nRan 9 tests in 2.299s\n\nOK\n"} +{"timestamp": "2026-10-01T07:24:33.985931+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "ps", "-aq"], "exit": 0, "output": "9fc1c9de7bd4\nb6565a0b2641\ncb032c5d0307\nc4b270652fae\n83b52f82cc55\nfcc32bf402ee\n3faf83c3849e\n14cb2d0322a8\n7ca13c7a9157\n8a106aa4cdf8\n05758f1c498d\n90ed72c10c1c\n4e36373b3ff8\n31f7b35c97a2\n1b9e84a6dac9\n5440b03cc0be\nb659460c72ed\n7910b8100224\nc59f1f70d70f\n1f2fd13508fb\n9a0f33f0c8af\n5f0ffbf98fe9\nd22abb2de519\n"} +{"timestamp": "2026-10-01T07:24:34.038924+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "version"], "exit": 0, "output": "Client: Docker Engine - Community\n Version: 29.8.0\n API version: 1.56\n Go version: go1.26.8\n Git commit: 88096ef\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Context: default\n\nServer: Docker Engine - Community\n Engine:\n Version: 29.8.0\n API version: 1.56 (minimum version 1.40)\n Go version: go1.26.8\n Git commit: 3ce5872\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Experimental: false\n containerd:\n Version: v2.3.5\n GitCommit: 1294c24a7da8e5a793ed378161673abe94118892\n runc:\n Version: 1.5.1\n GitCommit: v1.5.1-0-g8f2685a4\n docker-init:\n Version: 0.19.0\n GitCommit: de40ad0\n"} +{"timestamp": "2026-10-01T07:24:34.058318+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "docker", "create", "--label", "com.docker.compose.project=minecraft-sentinel-3bc6b63529f1dd7b", "--name", "minecraft-sentinel-3bc6b63529f1dd7b", "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94"], "exit": 0, "output": "cd4577cd9bc78f2a7c9d0a90a8d0be3f35db320a84ead0e42287ea50846752ce\n"} +{"timestamp": "2026-10-01T07:24:34.179659+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "60589", "--web-port", "44209", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--profile", "backup", "--profile", "database", "--profile", "web"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [\"backup\", \"database\", \"web\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:24:34.221980+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "60589", "--web-port", "44209", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--profile", "backup", "--profile", "database", "--profile", "web", "--start"], "exit": 0, "output": " Image minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 Pulling \n Image minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 pull access denied for minecraft-template-backup, repository does not exist or may require 'docker login' \n Image minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 Building \n#1 [internal] load local bake definitions\n#1 reading from stdin 752B done\n#1 DONE 0.0s\n\n#2 [internal] load build definition from Dockerfile.backup\n#2 transferring dockerfile: 618B done\n#2 WARN: InvalidDefaultArgInFrom: Default value for ARG ${BACKUP_IMAGE} results in empty or invalid base image name (line 2)\n#2 DONE 0.0s\n\n#3 [internal] load metadata for docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\n#3 DONE 0.0s\n\n#4 [internal] load .dockerignore\n#4 transferring context: 2B done\n#4 DONE 0.0s\n\n#5 [1/2] FROM docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\n#5 resolve docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 0.0s done\n#5 DONE 0.0s\n\n#6 [2/2] RUN script=/opt/backup-loop.sh; expected=' retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on'; test \"$(grep -Fxc \"$expected\" \"$script\")\" -eq 2 && awk 'previous == \" log INFO \\\"waiting for rcon readiness...\\\"\" { if ($0 != \" retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on\") exit 1; sub(/save-on$/, \"list\"); changed++ } { print; previous=$0 } END { if (changed != 1) exit 1 }' \"$script\" > /tmp/backup-loop.patched && mv /tmp/backup-loop.patched \"$script\" && chmod +x \"$script\"\n#6 CACHED\n\n#7 exporting to image\n#7 exporting layers done\n#7 exporting manifest sha256:876315e26cd178dc5b490d9000fd18d5e14f863ab5620fe803f07cd4366e1f03 done\n#7 exporting config sha256:1e0a34f4c02fc42db76eb4e2893469119a04f1a323169fb5783ddf991f900d13 done\n#7 exporting attestation manifest sha256:00b3cc35e37c26c73cdca9d1a73893005f000b16c218c30af691246fb08a09f1 0.0s done\n#7 exporting manifest list sha256:651da33a96d3c7e07d82271e6a2170a68c94a19c7b6b22b414087edfae3dc5bd done\n#7 naming to docker.io/library/minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 done\n#7 unpacking to docker.io/library/minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 0.0s done\n#7 DONE 0.1s\n\n#8 resolving provenance for metadata file\n#8 DONE 0.0s\n Image minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 Built \n Network minecraft-5e4201eb_default Creating \n Network minecraft-5e4201eb_default Creating \n Volume minecraft-5e4201eb_database Creating \n Volume minecraft-5e4201eb_database Creating \n Volume minecraft-5e4201eb_database Created \n Volume minecraft-5e4201eb_database Created \n Network minecraft-5e4201eb_default Created \n Network minecraft-5e4201eb_default Created \n Container minecraft-5e4201eb-web-1 Creating \n Container minecraft-5e4201eb-server-1 Creating \n Container minecraft-5e4201eb-database-1 Creating \n Container minecraft-5e4201eb-server-1 Created \n Container minecraft-5e4201eb-backup-1 Creating \n Container minecraft-5e4201eb-web-1 Created \n Container minecraft-5e4201eb-database-1 Created \n Container minecraft-5e4201eb-backup-1 Created \n Container minecraft-5e4201eb-database-1 Starting \n Container minecraft-5e4201eb-web-1 Starting \n Container minecraft-5e4201eb-server-1 Starting \n Container minecraft-5e4201eb-database-1 Started \n Container minecraft-5e4201eb-web-1 Started \n Container minecraft-5e4201eb-server-1 Started \n Container minecraft-5e4201eb-server-1 Waiting \n Container minecraft-5e4201eb-server-1 Healthy \n Container minecraft-5e4201eb-backup-1 Starting \n Container minecraft-5e4201eb-backup-1 Started \n Container minecraft-5e4201eb-web-1 Waiting \n Container minecraft-5e4201eb-server-1 Waiting \n Container minecraft-5e4201eb-backup-1 Waiting \n Container minecraft-5e4201eb-database-1 Waiting \n Container minecraft-5e4201eb-backup-1 Healthy \n Container minecraft-5e4201eb-web-1 Healthy \n Container minecraft-5e4201eb-server-1 Healthy \n Container minecraft-5e4201eb-database-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"distribution\": \"paper\", \"network\": false, \"setup\": \"unchanged\"}\n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:24:56.691084+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation nix2j4re/stable paper/scripts/status", "--port", "60589"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:24:56.725179+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 2 1001 1002 4096 Oct 1 07:24 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | \u001b[39m[mc-image-helper] 07:24:37.177 INFO : Downloaded /data/paper-26.2-129.jar\nserver-1 | \u001b[0;39m[init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:24:39.832 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Applying patches\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:24:45.946134357Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:24:46 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:24:46 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:24:46 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:24:46 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:24:49 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:24:49 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:24:49 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 267.8ms\nserver-1 | [07:24:49 INFO]: Found new data pack paper, loading it automatically\nserver-1 | [07:24:49 INFO]: No existing world data, creating new world\nserver-1 | [07:24:50 INFO]: Loaded 1585 recipes\nserver-1 | [07:24:50 INFO]: Loaded 1688 advancements\nserver-1 | [07:24:50 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:24:50 INFO]: Loading properties\nserver-1 | [07:24:50 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:24:50 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:24:50 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:24:50 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:24:50 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:24:50 INFO]: Default game type: SURVIVAL\nserver-1 | [07:24:50 INFO]: Generating keypair\nserver-1 | [07:24:50 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:24:50 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:24:50 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:24:50 INFO]: Preparing level \"world\"\nserver-1 | [07:24:51 INFO]: Selecting spawn point for level 'minecraft:overworld'...\nserver-1 | [07:24:52 INFO]: Selecting spawn point for level 'minecraft:the_nether'...\nserver-1 | [07:24:53 INFO]: Selecting spawn point for level 'minecraft:the_end'...\nserver-1 | [07:24:53 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:24:53 INFO]: Preparing spawn area: 100%\nserver-1 | [07:24:53 INFO]: Prepared spawn area in 2068 ms\nserver-1 | [07:24:53 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:24:53 INFO]: Preparing spawn area: 100%\nserver-1 | [07:24:53 INFO]: Prepared spawn area in 427 ms\nserver-1 | [07:24:53 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:24:53 INFO]: Preparing spawn area: 100%\nserver-1 | [07:24:53 INFO]: Prepared spawn area in 103 ms\nserver-1 | [07:24:53 INFO]: Done preparing level \"world\" (2.306s)\nserver-1 | [07:24:53 INFO]: [spark] Starting background profiler...\nserver-1 | [07:24:53 INFO]: Starting remote control listener\nserver-1 | [07:24:53 INFO]: Thread RCON Listener started\nserver-1 | [07:24:53 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:24:53 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:24:53 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:24:53 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:24:53 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:24:53 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:24:53 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:24:53 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:24:53 INFO]: Running delayed init tasks\nserver-1 | [07:24:53 INFO]: Done (8.012s)! For help, type \"help\"\nserver-1 | [07:24:53 INFO]: *************************************************************************************\nserver-1 | [07:24:53 INFO]: This is the first time you're starting this server.\nserver-1 | [07:24:53 INFO]: It's recommended you read our 'Getting Started' documentation for guidance.\nserver-1 | [07:24:53 INFO]: View this and more helpful information here: https://docs.papermc.io/paper/next-steps\nserver-1 | [07:24:53 INFO]: *************************************************************************************\nserver-1 | [07:24:56 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:24:56 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:24:56.882636+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sha256sum", "/data/paper-26.2-129.jar"], "exit": 0, "output": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 /data/paper-26.2-129.jar\n"} +{"timestamp": "2026-10-01T07:24:57.092244+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:24:57.249141+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation nix2j4re/stable paper/tests/login.py", "--port", "60589", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:24:57.298017+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:24:57.504192+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "rcon-cli", "--password", "wrong", "list"], "exit": 1, "output": "2026/10/01 07:24:57 Failed to connect to RCON serverrcon: authentication failed\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-5e4201eb', '--project-directory', '/tmp/minecraft validation nix2j4re/stable paper', '--env-file', '/tmp/minecraft validation nix2j4re/stable paper/versions.env', '--env-file', '/tmp/minecraft validation nix2j4re/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation nix2j4re/stable paper/compose.yaml', '-f', '/tmp/minecraft validation nix2j4re/stable paper/.state/compose.yaml', 'exec', '-T', 'server', 'rcon-cli', '--password', 'wrong', 'list']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:24:57.659758+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "command", "scoreboard objectives add proof dummy"], "exit": 0, "output": "Created new objective [proof]\n"} +{"timestamp": "2026-10-01T07:24:57.866780+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 42"], "exit": 0, "output": "Set [proof] for Proof to 42\n"} +{"timestamp": "2026-10-01T07:24:58.073319+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "command", "save-all flush"], "exit": 0, "output": "Saving the game (this may take a moment!)Saved the game\n"} +{"timestamp": "2026-10-01T07:24:58.278972+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-5e4201eb-server-1 Recreate \n Container minecraft-5e4201eb-server-1 Recreated \n Container minecraft-5e4201eb-server-1 Starting \n Container minecraft-5e4201eb-server-1 Started \n Container minecraft-5e4201eb-server-1 Waiting \n Container minecraft-5e4201eb-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:25:15.570518+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:25:15.776673+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "backup"], "exit": 0, "output": " Container minecraft-5e4201eb-backup-run-e34428ff6ffa Creating \n Container minecraft-5e4201eb-backup-run-e34428ff6ffa Created \ntime=\"2026-10-01T07:25:16Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:25:16+0000 INFO Repository already initialized\n2026-10-01T07:25:16+0000 INFO Checking for stale locks\n2026-10-01T07:25:17+0000 INFO Checking repo integrity\n2026-10-01T07:25:18+0000 INFO waiting initial delay of 0...\n2026-10-01T07:25:18+0000 INFO waiting for rcon readiness...\n2026-10-01T07:25:18+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:25:18+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:25:18+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:25:18+0000 INFO Command executed successfully sync\n2026-10-01T07:25:18+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:25:18+0000 INFO using parent snapshot 7daad997\n2026-10-01T07:25:18+0000 INFO \n2026-10-01T07:25:18+0000 INFO Files: 0 new, 12 changed, 170 unmodified\n2026-10-01T07:25:18+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:25:18+0000 INFO Added to the repository: 30.995 KiB (12.497 KiB stored)\n2026-10-01T07:25:18+0000 INFO \n2026-10-01T07:25:18+0000 INFO processed 182 files, 174.602 MiB in 0:00\n2026-10-01T07:25:18+0000 INFO snapshot 00bce4b5 saved\n2026-10-01T07:25:18+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:25:19.776276+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "snapshots"], "exit": 0, "output": " Container minecraft-5e4201eb-backup-run-3b4aa35ad9d5 Creating \n Container minecraft-5e4201eb-backup-run-3b4aa35ad9d5 Created \n[{\"time\":\"2026-10-01T07:25:14.41519567Z\",\"tree\":\"2798048b8fd51b960298b9f627555b63b98c85ee79ee03c5441e2741caf89f2d\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:25:14.41519567Z\",\"backup_end\":\"2026-10-01T07:25:15.551205622Z\",\"files_new\":182,\"files_changed\":0,\"files_unmodified\":0,\"dirs_new\":309,\"dirs_changed\":0,\"dirs_unmodified\":0,\"data_blobs\":279,\"tree_blobs\":308,\"data_added\":183253724,\"data_added_packed\":168018697,\"total_files_processed\":182,\"total_bytes_processed\":183083525},\"id\":\"7daad997da87fcf97b395d583cf4f08ce4f8b6613f6300e63a12d33bcb30659b\",\"short_id\":\"7daad997\"},{\"time\":\"2026-10-01T07:25:18.142631396Z\",\"parent\":\"7daad997da87fcf97b395d583cf4f08ce4f8b6613f6300e63a12d33bcb30659b\",\"tree\":\"3cbe079abe3667039917da4f6498fa0dfc967a047c8cefdecba593074d448c12\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:25:18.142631396Z\",\"backup_end\":\"2026-10-01T07:25:18.889494937Z\",\"files_new\":0,\"files_changed\":12,\"files_unmodified\":170,\"dirs_new\":0,\"dirs_changed\":16,\"dirs_unmodified\":293,\"data_blobs\":6,\"tree_blobs\":17,\"data_added\":31739,\"data_added_packed\":12797,\"total_files_processed\":182,\"total_bytes_processed\":183083525},\"id\":\"00bce4b5433c407551ad6e376de571f2a3c0d97a28561fb44095f9754fe97349\",\"short_id\":\"00bce4b5\"}]\n"} +{"timestamp": "2026-10-01T07:25:21.489251+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server", "backup"], "exit": 0, "output": "backup-1 | time=\"2026-10-01T07:24:55Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:24:56+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:24:58+0000 INFO created restic repository 06fea75579 at /backups/repository\nbackup-1 | 2026-10-01T07:24:58+0000 INFO \nbackup-1 | 2026-10-01T07:24:58+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:24:58+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:24:58+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:24:58+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:24:58+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:24:59+0000 ERROR Unable to execute rcon-cli list - try 0/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:24:59+0000 ERROR Failure reason: 2026/10/01 07:24:59 Failed to connect to RCON serverread tcp 172.19.0.5:54034->172.19.0.4:25575: read: connection reset by peer\t\nbackup-1 | 2026-10-01T07:25:04+0000 ERROR Unable to execute rcon-cli list - try 1/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:25:04+0000 ERROR Failure reason: 2026/10/01 07:25:04 Failed to connect to RCON serverdial tcp 172.19.0.4:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:25:09+0000 ERROR Unable to execute rcon-cli list - try 2/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:25:09+0000 ERROR Failure reason: 2026/10/01 07:25:09 Failed to connect to RCON serverdial tcp 172.19.0.4:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:25:14+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:25:14+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:25:14+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:25:14+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:25:14+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:25:15+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:25:15+0000 INFO \nbackup-1 | 2026-10-01T07:25:15+0000 INFO Files: 182 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:25:15+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:25:15+0000 INFO Added to the repository: 174.764 MiB (160.235 MiB stored)\nbackup-1 | 2026-10-01T07:25:15+0000 INFO \nbackup-1 | 2026-10-01T07:25:15+0000 INFO processed 182 files, 174.602 MiB in 0:01\nbackup-1 | 2026-10-01T07:25:15+0000 INFO snapshot 7daad997 saved\nbackup-1 | 2026-10-01T07:25:15+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:25:16+0000 INFO sleeping 6h...\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:24 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:25:04.479436751Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:25:04 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:25:04 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:25:04 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:25:04 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:25:07 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:25:07 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:25:07 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 266.9ms\nserver-1 | [07:25:08 INFO]: Loaded 1585 recipes\nserver-1 | [07:25:08 INFO]: Loaded 1688 advancements\nserver-1 | [07:25:08 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:25:08 INFO]: Loading properties\nserver-1 | [07:25:08 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:25:09 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:25:09 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:25:09 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:25:09 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:25:09 INFO]: Default game type: SURVIVAL\nserver-1 | [07:25:09 INFO]: Generating keypair\nserver-1 | [07:25:09 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:25:09 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:25:09 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:25:09 INFO]: Preparing level \"world\"\nserver-1 | [07:25:09 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:25:09 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:25:09 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:25:09 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:25:09 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:25:09 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:25:09 INFO]: Done preparing level \"world\" (0.287s)\nserver-1 | [07:25:09 INFO]: [spark] Starting background profiler...\nserver-1 | [07:25:10 INFO]: Starting remote control listener\nserver-1 | [07:25:10 INFO]: Thread RCON Listener started\nserver-1 | [07:25:10 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:25:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:25:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:25:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:25:10 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:25:10 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:25:10 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:25:10 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:25:10 INFO]: Running delayed init tasks\nserver-1 | [07:25:10 INFO]: Done (6.033s)! For help, type \"help\"\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:25:14 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:25:14 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:25:14 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:25:14 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:25:14 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:25:14 INFO]: [Rcon: Saved the game]\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:25:15 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:25:15 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:25:15 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:25:15 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:25:15 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:18 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:18 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:25:18 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:25:18 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:25:18 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:25:18 INFO]: [Rcon: Saved the game]\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:18 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 shutting down\n"} +{"timestamp": "2026-10-01T07:25:21.646268+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "PRE_BACKUP_SCRIPT=exit 73", "backup"], "exit": 1, "output": " Container minecraft-5e4201eb-backup-run-0425cf7c52a6 Creating \n Container minecraft-5e4201eb-backup-run-0425cf7c52a6 Created \ntime=\"2026-10-01T07:25:21Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:25:22+0000 INFO Repository already initialized\n2026-10-01T07:25:22+0000 INFO Checking for stale locks\n2026-10-01T07:25:23+0000 INFO Checking repo integrity\n2026-10-01T07:25:23+0000 INFO waiting initial delay of 0...\n2026-10-01T07:25:23+0000 INFO waiting for rcon readiness...\n2026-10-01T07:25:23+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:25:23+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:25:24+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:25:24+0000 INFO Command executed successfully sync\n2026-10-01T07:25:24+0000 INFO Command executed successfully rcon-cli save-on\n\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-5e4201eb', '--project-directory', '/tmp/minecraft validation nix2j4re/stable paper', '--env-file', '/tmp/minecraft validation nix2j4re/stable paper/versions.env', '--env-file', '/tmp/minecraft validation nix2j4re/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation nix2j4re/stable paper/compose.yaml', '-f', '/tmp/minecraft validation nix2j4re/stable paper/.state/compose.yaml', 'run', '--rm', '--no-deps', '-e', 'BACKUP_INTERVAL=0', '-e', 'INITIAL_DELAY=0', '-e', 'PRE_BACKUP_SCRIPT=exit 73', 'backup']' returned non-zero exit status 73.\"}\n"} +{"timestamp": "2026-10-01T07:25:24.263182+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:25:24.472067+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "backup"], "exit": 1, "output": "{\"error\": \"Backup reported an error; inspect service logs.\"}\n Container minecraft-5e4201eb-backup-run-020080c1d1e0 Creating \n Container minecraft-5e4201eb-backup-run-020080c1d1e0 Created \ntime=\"2026-10-01T07:25:24Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:25:25+0000 INFO Repository already initialized\n2026-10-01T07:25:25+0000 INFO Checking for stale locks\n2026-10-01T07:25:26+0000 INFO Checking repo integrity\n2026-10-01T07:25:26+0000 INFO waiting initial delay of 0...\n2026-10-01T07:25:26+0000 INFO waiting for rcon readiness...\n2026-10-01T07:25:26+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:25:26+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:25:26+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:25:26+0000 INFO Command executed successfully sync\n2026-10-01T07:25:26+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:25:26+0000 INFO invalid argument \"invalid-proof\" for \"--limit-upload\" flag: strconv.ParseInt: parsing \"invalid-proof\": invalid syntax\n2026-10-01T07:25:26+0000 ERROR Backup failed with exit code 1\n2026-10-01T07:25:26+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:25:27.722156+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:25:32.637200+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "command", "save-off"], "exit": 0, "output": "Saving is already turned off\n"} +{"timestamp": "2026-10-01T07:25:36.061869+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "-e", "PRE_BACKUP_SCRIPT=touch /backups/first-locked; timeout 60 sh -c 'until test -f /backups/release-first; do sleep 0.2; done'", "backup"], "exit": 0, "output": " Container minecraft-5e4201eb-backup-run-d5b3090979fd Creating \n Container minecraft-5e4201eb-backup-run-d5b3090979fd Created \ntime=\"2026-10-01T07:25:28Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:25:28+0000 INFO Repository already initialized\n2026-10-01T07:25:28+0000 INFO Checking for stale locks\n2026-10-01T07:25:29+0000 INFO Checking repo integrity\n2026-10-01T07:25:30+0000 INFO waiting initial delay of 0...\n2026-10-01T07:25:30+0000 INFO waiting for rcon readiness...\n2026-10-01T07:25:30+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:25:30+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:25:30+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:25:30+0000 INFO Command executed successfully sync\n2026-10-01T07:25:32+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:25:33+0000 INFO using parent snapshot 00bce4b5\n2026-10-01T07:25:33+0000 INFO \n2026-10-01T07:25:33+0000 INFO Files: 0 new, 15 changed, 167 unmodified\n2026-10-01T07:25:33+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:25:33+0000 INFO Added to the repository: 31.531 KiB (13.138 KiB stored)\n2026-10-01T07:25:33+0000 INFO \n2026-10-01T07:25:33+0000 INFO processed 182 files, 174.602 MiB in 0:00\n2026-10-01T07:25:33+0000 INFO snapshot 740c096e saved\n2026-10-01T07:25:33+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:25:34+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:25:35+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:25:35+0000 INFO keep 2 snapshots:\n2026-10-01T07:25:35+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:25:35+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:25:35+0000 INFO 7daad997 2026-10-01 07:25:14 minecraft mc_backups,server oldest daily snapshot /data 174.602 MiB\n2026-10-01T07:25:35+0000 INFO oldest weekly snapshot\n2026-10-01T07:25:35+0000 INFO oldest monthly snapshot\n2026-10-01T07:25:35+0000 INFO 740c096e 2026-10-01 07:25:32 minecraft mc_backups,server daily snapshot /data 174.602 MiB\n2026-10-01T07:25:35+0000 INFO weekly snapshot\n2026-10-01T07:25:35+0000 INFO monthly snapshot\n2026-10-01T07:25:35+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:25:35+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:25:35+0000 INFO 2 snapshots\n2026-10-01T07:25:35+0000 INFO \n2026-10-01T07:25:35+0000 INFO remove 1 snapshots:\n2026-10-01T07:25:35+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:25:35+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:25:35+0000 INFO 00bce4b5 2026-10-01 07:25:18 minecraft mc_backups,server /data 174.602 MiB\n2026-10-01T07:25:35+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:25:35+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:25:35+0000 INFO 1 snapshots\n2026-10-01T07:25:35+0000 INFO \n2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:25:35+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:25:35+0000 INFO loading all snapshots...\n2026-10-01T07:25:35+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:25:35+0000 INFO searching used packs...\n2026-10-01T07:25:35+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 15 / 15 packs processed\n2026-10-01T07:25:35+0000 INFO \n2026-10-01T07:25:35+0000 INFO to repack: 0 blobs / 0 B\n2026-10-01T07:25:35+0000 INFO this removes: 0 blobs / 0 B\n2026-10-01T07:25:35+0000 INFO to delete: 23 blobs / 11.576 KiB\n2026-10-01T07:25:35+0000 INFO total prune: 23 blobs / 11.576 KiB\n2026-10-01T07:25:35+0000 INFO remaining: 612 blobs / 160.224 MiB\n2026-10-01T07:25:35+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:25:35+0000 INFO \n2026-10-01T07:25:35+0000 INFO rebuilding index\n2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 3 / 3 indexes processed\n2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted\n2026-10-01T07:25:35+0000 INFO removing 2 old packs\n2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:25:35+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:25:41.936632+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "backup"], "exit": 0, "output": " Container minecraft-5e4201eb-backup-run-e63191d39d87 Creating \n Container minecraft-5e4201eb-backup-run-e63191d39d87 Created \ntime=\"2026-10-01T07:25:30Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:25:31+0000 INFO Repository already initialized\n2026-10-01T07:25:31+0000 INFO Checking for stale locks\n2026-10-01T07:25:31+0000 INFO Checking repo integrity\n2026-10-01T07:25:32+0000 INFO waiting initial delay of 0...\n2026-10-01T07:25:32+0000 INFO waiting for rcon readiness...\n2026-10-01T07:25:32+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:25:33+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:25:33+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:25:33+0000 INFO Command executed successfully sync\n2026-10-01T07:25:33+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:25:34+0000 INFO repo already locked, waiting up to 1m0s for the lock\n2026-10-01T07:25:39+0000 INFO using parent snapshot 740c096e\n2026-10-01T07:25:39+0000 INFO \n2026-10-01T07:25:39+0000 INFO Files: 0 new, 12 changed, 170 unmodified\n2026-10-01T07:25:39+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:25:39+0000 INFO Added to the repository: 31.007 KiB (12.518 KiB stored)\n2026-10-01T07:25:39+0000 INFO \n2026-10-01T07:25:39+0000 INFO processed 182 files, 174.602 MiB in 0:05\n2026-10-01T07:25:39+0000 INFO snapshot e5fc2ac5 saved\n2026-10-01T07:25:39+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:25:40+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:25:40+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:25:40+0000 INFO keep 2 snapshots:\n2026-10-01T07:25:40+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:25:40+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:25:40+0000 INFO 7daad997 2026-10-01 07:25:14 minecraft mc_backups,server oldest daily snapshot /data 174.602 MiB\n2026-10-01T07:25:40+0000 INFO oldest weekly snapshot\n2026-10-01T07:25:40+0000 INFO oldest monthly snapshot\n2026-10-01T07:25:40+0000 INFO e5fc2ac5 2026-10-01 07:25:33 minecraft mc_backups,server daily snapshot /data 174.602 MiB\n2026-10-01T07:25:40+0000 INFO weekly snapshot\n2026-10-01T07:25:40+0000 INFO monthly snapshot\n2026-10-01T07:25:40+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:25:40+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:25:40+0000 INFO 2 snapshots\n2026-10-01T07:25:40+0000 INFO \n2026-10-01T07:25:40+0000 INFO remove 1 snapshots:\n2026-10-01T07:25:40+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:25:40+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:25:40+0000 INFO 740c096e 2026-10-01 07:25:32 minecraft mc_backups,server /data 174.602 MiB\n2026-10-01T07:25:40+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:25:40+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:25:40+0000 INFO 1 snapshots\n2026-10-01T07:25:40+0000 INFO \n2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:25:40+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:25:40+0000 INFO loading all snapshots...\n2026-10-01T07:25:40+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:25:40+0000 INFO searching used packs...\n2026-10-01T07:25:40+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 15 / 15 packs processed\n2026-10-01T07:25:40+0000 INFO \n2026-10-01T07:25:40+0000 INFO to repack: 8 blobs / 2.326 KiB\n2026-10-01T07:25:40+0000 INFO this removes: 6 blobs / 1.371 KiB\n2026-10-01T07:25:40+0000 INFO to delete: 17 blobs / 10.166 KiB\n2026-10-01T07:25:40+0000 INFO total prune: 23 blobs / 11.537 KiB\n2026-10-01T07:25:40+0000 INFO remaining: 612 blobs / 160.224 MiB\n2026-10-01T07:25:40+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:25:40+0000 INFO \n2026-10-01T07:25:40+0000 INFO repacking packs\n2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 1 / 1 packs repacked\n2026-10-01T07:25:40+0000 INFO rebuilding index\n2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 3 / 3 indexes processed\n2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted\n2026-10-01T07:25:40+0000 INFO removing 2 old packs\n2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:25:40+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:25:41.936849+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:25:42.143457+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 99"], "exit": 0, "output": "Set [proof] for Proof to 99\n"} +{"timestamp": "2026-10-01T07:25:42.351530+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "restore", "/tmp/minecraft validation nix2j4re/restored snapshot"], "exit": 0, "output": " Container minecraft-5e4201eb-backup-run-ff41596f959d Creating \n Container minecraft-5e4201eb-backup-run-ff41596f959d Created \nrestoring snapshot e5fc2ac5 of [/data] at 2026-10-01 07:25:33.764091041 +0000 UTC by @minecraft to /restore\nSummary: Restored 491 files/dirs (174.602 MiB) in 0:00\n{\"restored\": \"/tmp/minecraft validation nix2j4re/restored snapshot/data\", \"snapshot\": \"latest\"}\n"} +{"timestamp": "2026-10-01T07:25:44.268293+00:00", "cwd": "/tmp/minecraft validation nix2j4re/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/restored server/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "57971", "--web-port", "39707", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:25:44.363266+00:00", "cwd": "/tmp/minecraft validation nix2j4re/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/restored server/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-63d1f842_default Creating \n Network minecraft-63d1f842_default Creating \n Network minecraft-63d1f842_default Created \n Network minecraft-63d1f842_default Created \n Container minecraft-63d1f842-server-1 Creating \n Container minecraft-63d1f842-server-1 Created \n Container minecraft-63d1f842-server-1 Starting \n Container minecraft-63d1f842-server-1 Started \n Container minecraft-63d1f842-server-1 Waiting \n Container minecraft-63d1f842-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:26:01.565286+00:00", "cwd": "/tmp/minecraft validation nix2j4re/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation nix2j4re/restored server/scripts/status", "--port", "57971"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:26:01.599239+00:00", "cwd": "/tmp/minecraft validation nix2j4re/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation nix2j4re/restored server/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:26:01.808734+00:00", "cwd": "/tmp/minecraft validation nix2j4re/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation nix2j4re/restored server/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 9 1001 1002 4096 Oct 1 07:24 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:25:49.880 INFO : Created/updated 1 property in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:25:51.416888001Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:25:51 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:25:51 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:25:51 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:25:51 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:25:54 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:25:54 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:25:54 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 266.1ms\nserver-1 | [07:25:55 INFO]: Loaded 1585 recipes\nserver-1 | [07:25:55 INFO]: Loaded 1688 advancements\nserver-1 | [07:25:55 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:25:55 INFO]: Loading properties\nserver-1 | [07:25:55 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:25:56 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:25:56 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:25:56 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:25:56 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:25:56 INFO]: Default game type: SURVIVAL\nserver-1 | [07:25:56 INFO]: Generating keypair\nserver-1 | [07:25:56 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:25:56 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:25:56 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:25:56 INFO]: Preparing level \"world\"\nserver-1 | [07:25:56 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:25:56 INFO]: Preparing spawn area: 100%\nserver-1 | [07:25:56 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:25:56 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:25:56 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:25:56 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:25:56 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:25:56 INFO]: Done preparing level \"world\" (0.295s)\nserver-1 | [07:25:56 INFO]: [spark] Starting background profiler...\nserver-1 | [07:25:57 INFO]: Starting remote control listener\nserver-1 | [07:25:57 INFO]: Thread RCON Listener started\nserver-1 | [07:25:57 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:25:57 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:25:57 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:25:57 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:25:57 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:25:57 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:25:57 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:25:57 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:25:57 INFO]: Running delayed init tasks\nserver-1 | [07:25:57 INFO]: Done (6.038s)! For help, type \"help\"\nserver-1 | [07:26:01 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:26:01 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:26:01 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:26:01 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:26:01.963566+00:00", "cwd": "/tmp/minecraft validation nix2j4re/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation nix2j4re/restored server/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-63d1f842-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:26:02.168052+00:00", "cwd": "/tmp/minecraft validation nix2j4re/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/restored server/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-63d1f842-server-1 Stopping \n Container minecraft-63d1f842-server-1 Stopped \n Container minecraft-63d1f842-server-1 Removing \n Container minecraft-63d1f842-server-1 Removed \n Network minecraft-63d1f842_default Removing \n Network minecraft-63d1f842_default Removed \n"} +{"timestamp": "2026-10-01T07:26:03.176950+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"CREATE TABLE proof (value INT); INSERT INTO proof VALUES (42); SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:26:03.418942+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "300", "database"], "exit": 0, "output": " Container minecraft-5e4201eb-database-1 Recreate \n Container minecraft-5e4201eb-database-1 Recreated \n Container minecraft-5e4201eb-database-1 Starting \n Container minecraft-5e4201eb-database-1 Started \n Container minecraft-5e4201eb-database-1 Waiting \n Container minecraft-5e4201eb-database-1 Healthy \n"} +{"timestamp": "2026-10-01T07:26:09.535597+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:26:09.744935+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "mariadb", "-uminecraft", "-pwrong", "minecraft", "-e", "SELECT 1"], "exit": 1, "output": "ERROR 1045 (28000): Access denied for user 'minecraft'@'localhost' (using password: YES)\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-5e4201eb', '--project-directory', '/tmp/minecraft validation nix2j4re/stable paper', '--env-file', '/tmp/minecraft validation nix2j4re/stable paper/versions.env', '--env-file', '/tmp/minecraft validation nix2j4re/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation nix2j4re/stable paper/compose.yaml', '-f', '/tmp/minecraft validation nix2j4re/stable paper/.state/compose.yaml', 'exec', '-T', 'database', 'mariadb', '-uminecraft', '-pwrong', 'minecraft', '-e', 'SELECT 1']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:26:09.951784+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "python3", "-c", "import urllib.request; print(urllib.request.urlopen(\"http://127.0.0.1:44209\").read().decode())"], "exit": 0, "output": "Minecraft files

Minecraft files

\n\n"} +{"timestamp": "2026-10-01T07:26:10.018655+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "backup-1 | time=\"2026-10-01T07:24:55Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nweb-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration\nweb-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf\nbackup-1 | 2026-10-01T07:24:56+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:24:58+0000 INFO created restic repository 06fea75579 at /backups/repository\nbackup-1 | 2026-10-01T07:24:58+0000 INFO \nbackup-1 | 2026-10-01T07:24:58+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:24:58+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:24:58+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:24:58+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:24:58+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:24:59+0000 ERROR Unable to execute rcon-cli list - try 0/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:24:59+0000 ERROR Failure reason: 2026/10/01 07:24:59 Failed to connect to RCON serverread tcp 172.19.0.5:54034->172.19.0.4:25575: read: connection reset by peer\t\nbackup-1 | 2026-10-01T07:25:04+0000 ERROR Unable to execute rcon-cli list - try 1/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:25:04+0000 ERROR Failure reason: 2026/10/01 07:25:04 Failed to connect to RCON serverdial tcp 172.19.0.4:25575: connect: connection refused\t\nweb-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh\nbackup-1 | 2026-10-01T07:25:09+0000 ERROR Unable to execute rcon-cli list - try 2/3. Retrying in 5s\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:24 /data'\nbackup-1 | 2026-10-01T07:25:09+0000 ERROR Failure reason: 2026/10/01 07:25:09 Failed to connect to RCON serverdial tcp 172.19.0.4:25575: connect: connection refused\t\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh\ndatabase-1 | 2026-10-01 07:26:03+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh\ndatabase-1 | 2026-10-01 07:26:04+00:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB\ndatabase-1 | 2026-10-01 07:26:04+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'\ndatabase-1 | 2026-10-01 07:26:04+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\ndatabase-1 | 2026-10-01 07:26:04+00:00 [Note] [Entrypoint]: MariaDB upgrade not required\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] Starting MariaDB 12.3.3-MariaDB-ubu2404 source revision 83e909fc2a0dbc394b4b683fb3fa2d7dcf26cc5e server_uid YWsNFcGgPvCPQ0RYwoNzJVHNIbQ= as process 1\nweb-1 | /docker-entrypoint.sh: Configuration complete; ready for start up\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: Compressed tables use zlib 1.3\nserver-1 | [init] Copying any configs from /config to /data\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: Number of transaction pools: 1\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: Using ARMv8 crc32 + pmull instructions\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: using the \"epoll\" event method\ndatabase-1 | 2026-10-01 7:26:04 0 [Warning] mariadbd: io_uring_queue_init() failed with EPERM: sysctl kernel.io_uring_disabled has the value 2, or 1 and the user of the process is not a member of sysctl kernel.io_uring_group. (see man 2 io_uring_setup).\ndatabase-1 | create_uring failed: falling back to libaio\nserver-1 | [init] Setting initial memory to 2G and max to 2G\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: Using Linux native AIO\nserver-1 | [init] Starting the Minecraft server...\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: nginx/1.30.5\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:25:04.479436751Z ServerMain WARN Advanced terminal features are not available in this environment\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: innodb_buffer_pool_size_max=8388608m, innodb_buffer_pool_size=128m\nserver-1 | [07:25:04 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: built by gcc 15.2.0 (Alpine 15.2.0) \ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: Completed initialization of buffer pool\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: OS: Linux 7.0.0-1012-aws\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1024:524288\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: File system buffers for log disabled (block size=4096 bytes)\nserver-1 | [07:25:04 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: End of log at LSN=47716\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: Opened 3 undo tablespaces\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker processes\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: 128 rollback segments in 3 undo tablespaces are active.\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 30\nbackup-1 | 2026-10-01T07:25:14+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:25:14+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:25:14+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:25:14+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:25:14+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:25:15+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:25:15+0000 INFO \nbackup-1 | 2026-10-01T07:25:15+0000 INFO Files: 182 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:25:15+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:25:15+0000 INFO Added to the repository: 174.764 MiB (160.235 MiB stored)\nbackup-1 | 2026-10-01T07:25:15+0000 INFO \nbackup-1 | 2026-10-01T07:25:15+0000 INFO processed 182 files, 174.602 MiB in 0:01\nbackup-1 | 2026-10-01T07:25:15+0000 INFO snapshot 7daad997 saved\nbackup-1 | 2026-10-01T07:25:15+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:25:16+0000 INFO sleeping 6h...\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: log sequence number 47716; transaction id 22\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 31\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] Plugin 'FEEDBACK' is disabled.\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] Plugin 'wsrep-provider' is disabled.\ndatabase-1 | 2026-10-01 7:26:04 0 [Note] InnoDB: Buffer pool(s) load completed at 261001 7:26:04\ndatabase-1 | 2026-10-01 7:26:05 0 [Note] Server socket created on IP: '0.0.0.0', port: '3306'.\ndatabase-1 | 2026-10-01 7:26:05 0 [Note] Server socket created on IP: '::', port: '3306'.\ndatabase-1 | 2026-10-01 7:26:05 0 [Note] mariadbd: Event Scheduler: Loaded 0 events\ndatabase-1 | 2026-10-01 7:26:05 0 [Note] mariadbd: ready for connections.\ndatabase-1 | Version: '12.3.3-MariaDB-ubu2404' socket: '/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution\ndatabase-1 | 2026-10-01 7:26:09 6 [Warning] Access denied for user 'minecraft'@'localhost' (using password: YES)\nserver-1 | [07:25:04 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:25:04 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 32\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 33\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 34\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 35\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 36\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 37\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 38\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 39\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 40\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 41\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 42\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 43\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 44\nweb-1 | 2026/10/01 07:24:35 [notice] 1#1: start worker process 45\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:24:45 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:24:55 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:25:05 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:25:15 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:25:25 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:25:35 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:25:45 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:25:55 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:26:05 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 172.19.0.1 - - [01/Oct/2026:07:26:10 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Python-urllib/3.12\" \"-\"\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:25:07 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:25:07 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:25:07 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 266.9ms\nserver-1 | [07:25:08 INFO]: Loaded 1585 recipes\nserver-1 | [07:25:08 INFO]: Loaded 1688 advancements\nserver-1 | [07:25:08 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:25:08 INFO]: Loading properties\nserver-1 | [07:25:08 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:25:09 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:25:09 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:25:09 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:25:09 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:25:09 INFO]: Default game type: SURVIVAL\nserver-1 | [07:25:09 INFO]: Generating keypair\nserver-1 | [07:25:09 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:25:09 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:25:09 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:25:09 INFO]: Preparing level \"world\"\nserver-1 | [07:25:09 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:25:09 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:25:09 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:25:09 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:25:09 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:25:09 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:25:09 INFO]: Done preparing level \"world\" (0.287s)\nserver-1 | [07:25:09 INFO]: [spark] Starting background profiler...\nserver-1 | [07:25:10 INFO]: Starting remote control listener\nserver-1 | [07:25:10 INFO]: Thread RCON Listener started\nserver-1 | [07:25:10 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:25:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:25:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:25:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:25:10 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:25:10 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:25:10 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:25:10 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:25:10 INFO]: Running delayed init tasks\nserver-1 | [07:25:10 INFO]: Done (6.033s)! For help, type \"help\"\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:25:14 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:25:14 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:25:14 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:25:14 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:25:14 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:25:14 INFO]: [Rcon: Saved the game]\nserver-1 | [07:25:14 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:25:15 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:25:15 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:25:15 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:25:15 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:25:15 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:18 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:18 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:25:18 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:25:18 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:25:18 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:25:18 INFO]: [Rcon: Saved the game]\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:18 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:25:18 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:23 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:23 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:23 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:23 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:25:23 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:23 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:24 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:25:24 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:25:24 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:25:24 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:25:24 INFO]: [Rcon: Saved the game]\nserver-1 | [07:25:24 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:24 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:24 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:25:24 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:24 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:25:24 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:25:26 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:26 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:26 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:26 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:25:26 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:26 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:26 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:25:26 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:25:26 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:25:26 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:25:26 INFO]: [Rcon: Saved the game]\nserver-1 | [07:25:26 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:26 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:26 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:25:26 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:27 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:25:27 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:25:30 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:30 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:30 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:30 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:25:30 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:30 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:30 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:25:30 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:25:30 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:25:30 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:25:30 INFO]: [Rcon: Saved the game]\nserver-1 | [07:25:30 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:32 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:25:32 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:25:32 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:25:32 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:25:33 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:25:33 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:25:33 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:25:33 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:25:33 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:25:33 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:25:33 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:25:33 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:25:33 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:25:33 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:25:33 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:25:33 INFO]: [Rcon: Saved the game]\nserver-1 | [07:25:33 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:25:39 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:25:39 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:25:39 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:25:42 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:25:42 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:25:42 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:25:42 INFO]: [Rcon: Set [proof] for Proof to 99]\nserver-1 | [07:25:42 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:26:10.177551+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-5e4201eb-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"},{\"ID\":\"sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\",\"ContainerName\":\"minecraft-5e4201eb-database-1\",\"Repository\":\"mariadb\",\"Tag\":\"\",\"Platform\":\"linux/arm64/v8\",\"Size\":485083992,\"Created\":\"2026-09-16T03:25:46.66077829Z\",\"LastTagTime\":\"2026-10-01T06:30:08.502338164Z\"},{\"ID\":\"sha256:651da33a96d3c7e07d82271e6a2170a68c94a19c7b6b22b414087edfae3dc5bd\",\"ContainerName\":\"minecraft-5e4201eb-backup-1\",\"Repository\":\"minecraft-template-backup\",\"Tag\":\"3ff6a1e8fa15ca4e-1c6ea31fbca3\",\"Platform\":\"linux/arm64\",\"Size\":204738892,\"Created\":\"2026-10-01T07:19:28.891893344Z\",\"LastTagTime\":\"2026-10-01T07:24:34.72857916Z\"},{\"ID\":\"sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\",\"ContainerName\":\"minecraft-5e4201eb-web-1\",\"Repository\":\"nginx\",\"Tag\":\"\",\"Platform\":\"linux/arm64/v8\",\"Size\":92021013,\"Created\":\"2026-09-22T22:10:07.617314791Z\",\"LastTagTime\":\"2026-10-01T06:30:07.695644704Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:26:10.387711+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-5e4201eb-backup-1 Stopping \n Container minecraft-5e4201eb-web-1 Stopping \n Container minecraft-5e4201eb-database-1 Stopping \n Container minecraft-5e4201eb-backup-1 Stopped \n Container minecraft-5e4201eb-backup-1 Removing \n Container minecraft-5e4201eb-backup-1 Removed \n Container minecraft-5e4201eb-server-1 Stopping \n Container minecraft-5e4201eb-web-1 Stopped \n Container minecraft-5e4201eb-web-1 Removing \n Container minecraft-5e4201eb-database-1 Stopped \n Container minecraft-5e4201eb-database-1 Removing \n Container minecraft-5e4201eb-web-1 Removed \n Container minecraft-5e4201eb-database-1 Removed \n Container minecraft-5e4201eb-server-1 Stopped \n Container minecraft-5e4201eb-server-1 Removing \n Container minecraft-5e4201eb-server-1 Removed \n Network minecraft-5e4201eb_default Removing \n Network minecraft-5e4201eb_default Removed \n"} +{"timestamp": "2026-10-01T07:26:11.602677+00:00", "cwd": "/tmp/minecraft validation nix2j4re/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/latest vanilla/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "54189", "--web-port", "38377", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--distribution", "vanilla"], "exit": 0, "output": "{\"distribution\": \"vanilla\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:26:11.644904+00:00", "cwd": "/tmp/minecraft validation nix2j4re/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/latest vanilla/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-89e55a52_default Creating \n Network minecraft-89e55a52_default Creating \n Network minecraft-89e55a52_default Created \n Network minecraft-89e55a52_default Created \n Container minecraft-89e55a52-server-1 Creating \n Container minecraft-89e55a52-server-1 Created \n Container minecraft-89e55a52-server-1 Starting \n Container minecraft-89e55a52-server-1 Started \n Container minecraft-89e55a52-server-1 Waiting \n Container minecraft-89e55a52-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:26:27.975496+00:00", "cwd": "/tmp/minecraft validation nix2j4re/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation nix2j4re/latest vanilla/scripts/status", "--port", "54189"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"26.3\", \"protocol\": 777}}\n"} +{"timestamp": "2026-10-01T07:26:28.008931+00:00", "cwd": "/tmp/minecraft validation nix2j4re/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation nix2j4re/latest vanilla/scripts/minecraft", "command", "list"], "exit": 0, "output": "There are 0 of a max of 20 players online: \n"} +{"timestamp": "2026-10-01T07:26:28.218637+00:00", "cwd": "/tmp/minecraft validation nix2j4re/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "find /data -maxdepth 1 -name \"*.jar\" -exec sha1sum {} \\;"], "exit": 0, "output": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c /data/minecraft_server.26.3.jar\n"} +{"timestamp": "2026-10-01T07:26:28.426502+00:00", "cwd": "/tmp/minecraft validation nix2j4re/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:26:28.583176+00:00", "cwd": "/tmp/minecraft validation nix2j4re/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:26:28.788066+00:00", "cwd": "/tmp/minecraft validation nix2j4re/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation nix2j4re/latest vanilla/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 2 1001 1002 4096 Oct 1 07:26 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given VANILLA\nserver-1 | [init] Successfully setup vanilla Minecraft version 26.3\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:26:15.806 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Unpacking 26.3/server-26.3.jar (versions:26.3) to versions/26.3/server-26.3.jar\nserver-1 | Unpacking at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar (libraries:at.yawk.lz4:lz4-java:1.10.1) to libraries/at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar\nserver-1 | Unpacking com/azure/azure-json/1.4.0/azure-json-1.4.0.jar (libraries:com.azure:azure-json:1.4.0) to libraries/com/azure/azure-json/1.4.0/azure-json-1.4.0.jar\nserver-1 | Unpacking com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar (libraries:com.github.oshi:oshi-core:6.9.0) to libraries/com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar\nserver-1 | Unpacking com/google/code/gson/gson/2.14.0/gson-2.14.0.jar (libraries:com.google.code.gson:gson:2.14.0) to libraries/com/google/code/gson/gson/2.14.0/gson-2.14.0.jar\nserver-1 | Unpacking com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar (libraries:com.google.guava:failureaccess:1.0.3) to libraries/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\nserver-1 | Unpacking com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar (libraries:com.google.guava:guava:33.6.0-jre) to libraries/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar\nserver-1 | Unpacking com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar (libraries:com.microsoft.azure:msal4j:1.24.1) to libraries/com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar\nserver-1 | Unpacking com/mojang/authlib/10.0.77/authlib-10.0.77.jar (libraries:com.mojang:authlib:10.0.77) to libraries/com/mojang/authlib/10.0.77/authlib-10.0.77.jar\nserver-1 | Unpacking com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar (libraries:com.mojang:brigadier:1.3.11) to libraries/com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar\nserver-1 | Unpacking com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar (libraries:com.mojang:datafixerupper:10.0.21) to libraries/com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar\nserver-1 | Unpacking com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar (libraries:com.mojang:jtracy:1.14.38) to libraries/com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar\nserver-1 | Unpacking com/mojang/logging/1.7.12/logging-1.7.12.jar (libraries:com.mojang:logging:1.7.12) to libraries/com/mojang/logging/1.7.12/logging-1.7.12.jar\nserver-1 | Unpacking commons-io/commons-io/2.20.0/commons-io-2.20.0.jar (libraries:commons-io:commons-io:2.20.0) to libraries/commons-io/commons-io/2.20.0/commons-io-2.20.0.jar\nserver-1 | Unpacking io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar (libraries:io.netty:netty-buffer:4.2.16.Final) to libraries/io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar (libraries:io.netty:netty-codec-base:4.2.16.Final) to libraries/io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar (libraries:io.netty:netty-codec-compression:4.2.16.Final) to libraries/io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar (libraries:io.netty:netty-codec-http:4.2.16.Final) to libraries/io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar (libraries:io.netty:netty-common:4.2.16.Final) to libraries/io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar (libraries:io.netty:netty-handler:4.2.16.Final) to libraries/io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar (libraries:io.netty:netty-resolver:4.2.16.Final) to libraries/io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar (libraries:io.netty:netty-transport:4.2.16.Final) to libraries/io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-epoll:4.2.16.Final) to libraries/io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-kqueue:4.2.16.Final) to libraries/io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-x86_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-aarch_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-x86_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-aarch_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar (libraries:io.netty:netty-transport-native-unix-common:4.2.16.Final) to libraries/io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar\nserver-1 | Unpacking it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar (libraries:it.unimi.dsi:fastutil:8.5.18) to libraries/it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar\nserver-1 | Unpacking net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar (libraries:net.java.dev.jna:jna:5.17.0) to libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar\nserver-1 | Unpacking net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar (libraries:net.java.dev.jna:jna-platform:5.17.0) to libraries/net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar\nserver-1 | Unpacking net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar (libraries:net.sf.jopt-simple:jopt-simple:5.0.4) to libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar\nserver-1 | Unpacking org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar (libraries:org.apache.commons:commons-lang3:3.20.0) to libraries/org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-api:2.26.0) to libraries/org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-core:2.26.0) to libraries/org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-slf4j2-impl:2.26.0) to libraries/org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar\nserver-1 | Unpacking org/joml/joml/1.10.9/joml-1.10.9.jar (libraries:org.joml:joml:1.10.9) to libraries/org/joml/joml/1.10.9/joml-1.10.9.jar\nserver-1 | Unpacking org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar (libraries:org.jspecify:jspecify:1.0.0) to libraries/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar\nserver-1 | Unpacking org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar (libraries:org.slf4j:slf4j-api:2.0.17) to libraries/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar\nserver-1 | Starting net.minecraft.server.Main\nserver-1 | WARNING: A restricted method in java.lang.System has been called\nserver-1 | WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/data/libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar)\nserver-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nserver-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nserver-1 | \nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.9/joml-1.10.9.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:26:20] [ServerMain/INFO]: Environment: Environment[discoveryUrl=https://discovery.minecraftservices.com/minecraft/client, name=PROD]\nserver-1 | [07:26:20] [Worker-Main-8/INFO]: No existing world data, creating new world\nserver-1 | [07:26:21] [Worker-Main-6/INFO]: Loaded 1866 advancements\nserver-1 | [07:26:21] [Server thread/INFO]: Starting minecraft server version 26.3\nserver-1 | [07:26:21] [Server thread/INFO]: Loading properties\nserver-1 | [07:26:21] [Server thread/INFO]: Default game type: SURVIVAL\nserver-1 | [07:26:21] [Server thread/INFO]: Generating keypair\nserver-1 | [07:26:21] [Server thread/INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:26:21] [Server thread/INFO]: Preparing level \"world\"\nserver-1 | [07:26:21] [Server thread/INFO]: Selecting global world spawn...\nserver-1 | [07:26:23] [Server thread/INFO]: Loading 0 persistent chunks...\nserver-1 | [07:26:23] [Server thread/INFO]: Preparing spawn area: 100%\nserver-1 | [07:26:23] [Server thread/INFO]: Time elapsed: 1398 ms\nserver-1 | [07:26:23] [Server thread/INFO]: Done (1.569s)! For help, type \"help\"\nserver-1 | [07:26:23] [Server thread/INFO]: Starting remote control listener\nserver-1 | [07:26:23] [Server thread/INFO]: Thread RCON Listener started\nserver-1 | [07:26:23] [Server thread/INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:26:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:26:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:26:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:26:27] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:26:27] [RCON Client /0:0:0:0:0:0:0:1 #2/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:26:28] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:26:28] [RCON Client /0:0:0:0:0:0:0:1 #3/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:26:28.960067+00:00", "cwd": "/tmp/minecraft validation nix2j4re/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation nix2j4re/latest vanilla/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-89e55a52-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:26:29.166830+00:00", "cwd": "/tmp/minecraft validation nix2j4re/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/latest vanilla/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-89e55a52-server-1 Stopping \n Container minecraft-89e55a52-server-1 Stopped \n Container minecraft-89e55a52-server-1 Removing \n Container minecraft-89e55a52-server-1 Removed \n Network minecraft-89e55a52_default Removing \n Network minecraft-89e55a52_default Removed \n"} +{"timestamp": "2026-10-01T07:26:30.383825+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "33929", "--web-port", "41383", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--network"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": true, \"profiles\": [\"proxy\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:26:30.425868+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "start"], "exit": 0, "output": " Image itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 Pulling \n df16f6d4c193 Pulling fs layer 0B\n b8df0cc0b8c5 Pulling fs layer 0B\n 59d08cac3c73 Pulling fs layer 0B\n 7cb168fccdd2 Pulling fs layer 0B\n 70624a8d6970 Pulling fs layer 0B\n 703c48e0fe6b Pulling fs layer 0B\n 087bde70e836 Pulling fs layer 0B\n 4f4fb700ef54 Pulling fs layer 0B\n 6e8eb09ed21b Pulling fs layer 0B\n ed9d9ac7c56f Pulling fs layer 0B\n d51d280256da Pulling fs layer 0B\n 428f5140ae47 Pulling fs layer 0B\n f3734a16c5da Pulling fs layer 0B\n b4249104c6f9 Pulling fs layer 0B\n 25cc71e89a62 Pulling fs layer 0B\n 5635c320daf8 Pulling fs layer 0B\n 2038dcb9d19b Pulling fs layer 0B\n 4f4fb700ef54 Already exists 0B\n 7cb168fccdd2 Downloading 7.34MB\n 44136fa355b3 Already exists 0B\n df16f6d4c193 Download complete 0B\n b8df0cc0b8c5 Downloading 2.097MB\n 7cb168fccdd2 Downloading 18.87MB\n 59d08cac3c73 Download complete 0B\n b8df0cc0b8c5 Downloading 12.58MB\n 087bde70e836 Downloading 7.34MB\n 7cb168fccdd2 Downloading 28.31MB\n b8df0cc0b8c5 Downloading 16.78MB\n 087bde70e836 Downloading 16.78MB\n 7cb168fccdd2 Downloading 38.8MB\n 70624a8d6970 Download complete 0B\n b8df0cc0b8c5 Downloading 19.92MB\n 087bde70e836 Downloading 31.46MB\n 7cb168fccdd2 Download complete 0B\n 7cb168fccdd2 Extracting 1B\n b8df0cc0b8c5 Downloading 29.36MB\n 087bde70e836 Downloading 32.51MB\n 703c48e0fe6b Downloading 12.1MB\n 7cb168fccdd2 Extracting 1B\n ed9d9ac7c56f Download complete 0B\n 6e8eb09ed21b Download complete 0B\n b8df0cc0b8c5 Downloading 32.51MB\n 087bde70e836 Downloading 50.33MB\n 703c48e0fe6b Download complete 0B\n 7cb168fccdd2 Extracting 1B\n b8df0cc0b8c5 Downloading 45.09MB\n 087bde70e836 Downloading 61.93MB\n 7cb168fccdd2 Extracting 1B\n b8df0cc0b8c5 Downloading 50.33MB\n 087bde70e836 Download complete 0B\n d51d280256da Downloading 2.097MB\n 7cb168fccdd2 Extracting 1B\n b8df0cc0b8c5 Downloading 53.48MB\n 428f5140ae47 Download complete 0B\n d51d280256da Download complete 0B\n 7cb168fccdd2 Extracting 1B\n f3734a16c5da Download complete 0B\n b8df0cc0b8c5 Downloading 66.06MB\n 7cb168fccdd2 Extracting 1B\n 25cc71e89a62 Downloading 5.778MB\n b8df0cc0b8c5 Downloading 66.06MB\n b4249104c6f9 Download complete 0B\n 7cb168fccdd2 Extracting 1B\n 25cc71e89a62 Download complete 0B\n b8df0cc0b8c5 Downloading 72.78MB\n 5635c320daf8 Downloading 337B\n 70624a8d6970 Extracting 1B\n 7cb168fccdd2 Pull complete 0B\n 5635c320daf8 Download complete 0B\n 2038dcb9d19b Downloading 13.63MB\n b8df0cc0b8c5 Download complete 0B\n b9ec95d77897 Download complete 0B\n 70624a8d6970 Pull complete 0B\n 703c48e0fe6b Extracting 1B\n 2038dcb9d19b Downloading 16.78MB\n 703c48e0fe6b Extracting 1B\n 2038dcb9d19b Downloading 32.51MB\n 703c48e0fe6b Pull complete 0B\n 087bde70e836 Extracting 1B\n 2038dcb9d19b Downloading 41.94MB\n 087bde70e836 Extracting 1B\n 2038dcb9d19b Downloading 50.33MB\n 087bde70e836 Extracting 1B\n 2038dcb9d19b Downloading 54.9MB\n 087bde70e836 Extracting 1B\n 2038dcb9d19b Download complete 0B\n 087bde70e836 Extracting 1B\n 4f4fb700ef54 Pull complete 0B\n ed9d9ac7c56f Pull complete 0B\n 6e8eb09ed21b Pull complete 0B\n 087bde70e836 Pull complete 0B\n b8df0cc0b8c5 Extracting 1B\n b8df0cc0b8c5 Extracting 1B\n b8df0cc0b8c5 Extracting 1B\n b8df0cc0b8c5 Extracting 1B\n b8df0cc0b8c5 Extracting 1B\n b8df0cc0b8c5 Extracting 1B\n b8df0cc0b8c5 Extracting 1B\n b8df0cc0b8c5 Extracting 1B\n b8df0cc0b8c5 Extracting 1B\n b8df0cc0b8c5 Extracting 1B\n 428f5140ae47 Pull complete 0B\n f3734a16c5da Extracting 1B\n b4249104c6f9 Pull complete 0B\n b8df0cc0b8c5 Pull complete 0B\n d51d280256da Pull complete 0B\n f3734a16c5da Pull complete 0B\n 25cc71e89a62 Extracting 1B\n 59d08cac3c73 Pull complete 0B\n 25cc71e89a62 Pull complete 0B\n 5635c320daf8 Pull complete 0B\n 2038dcb9d19b Extracting 1B\n 2038dcb9d19b Extracting 1B\n df16f6d4c193 Pull complete 0B\n 2038dcb9d19b Pull complete 0B\n Image itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 Pulled \n Network minecraft-b2bd56e4_default Creating \n Network minecraft-b2bd56e4_default Creating \n Network minecraft-b2bd56e4_default Created \n Network minecraft-b2bd56e4_default Created \n Container minecraft-b2bd56e4-server-1 Creating \n Container minecraft-b2bd56e4-server-1 Created \n Container minecraft-b2bd56e4-proxy-1 Creating \n Container minecraft-b2bd56e4-proxy-1 Created \n Container minecraft-b2bd56e4-server-1 Starting \n Container minecraft-b2bd56e4-server-1 Started \n Container minecraft-b2bd56e4-server-1 Waiting \n Container minecraft-b2bd56e4-server-1 Healthy \n Container minecraft-b2bd56e4-proxy-1 Starting \n Container minecraft-b2bd56e4-proxy-1 Started \n Container minecraft-b2bd56e4-server-1 Waiting \n Container minecraft-b2bd56e4-proxy-1 Waiting \n Container minecraft-b2bd56e4-server-1 Healthy \n Container minecraft-b2bd56e4-proxy-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:27:05.966656+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation nix2j4re/velocity network/scripts/status", "--port", "33929"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"modinfo\": {\"modList\": [], \"type\": \"FML\"}, \"players\": {\"max\": 20, \"online\": 0, \"sample\": []}, \"version\": {\"name\": \"Velocity 1.7.2-26.3\", \"protocol\": 775}}\n"} +{"timestamp": "2026-10-01T07:27:06.001698+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "compose", "config", "--format", "json"], "exit": 0, "output": "{\n \"name\": \"minecraft-b2bd56e4\",\n \"networks\": {\n \"default\": {\n \"name\": \"minecraft-b2bd56e4_default\",\n \"ipam\": {}\n }\n },\n \"secrets\": {\n \"rcon\": {\n \"name\": \"minecraft-b2bd56e4_rcon\",\n \"file\": \"/tmp/minecraft validation nix2j4re/velocity network/.state/secrets/rcon\"\n }\n },\n \"services\": {\n \"proxy\": {\n \"profiles\": [\n \"proxy\"\n ],\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"depends_on\": {\n \"server\": {\n \"condition\": \"service_healthy\",\n \"required\": true\n }\n },\n \"entrypoint\": null,\n \"environment\": {\n \"ENABLE_RCON\": \"false\",\n \"MEMORY\": \"512M\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"TYPE\": \"VELOCITY\",\n \"VELOCITY_BUILD_ID\": \"36\",\n \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-monitor\",\n \"status\",\n \"--host\",\n \"localhost\",\n \"--port\",\n \"25565\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 12\n },\n \"image\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\n \"mem_limit\": \"1073741824\",\n \"networks\": {\n \"default\": null\n },\n \"ports\": [\n {\n \"mode\": \"ingress\",\n \"host_ip\": \"127.0.0.1\",\n \"target\": 25565,\n \"published\": \"33929\",\n \"protocol\": \"tcp\"\n }\n ],\n \"restart\": \"unless-stopped\",\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"30s\",\n \"user\": \"1001:1002\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation nix2j4re/velocity network/data/proxy\",\n \"target\": \"/server\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation nix2j4re/velocity network/.state/velocity.toml\",\n \"target\": \"/server/velocity.toml\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation nix2j4re/velocity network/.state/secrets/forwarding\",\n \"target\": \"/server/forwarding.secret\",\n \"read_only\": true,\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation nix2j4re/velocity network/plugins/proxy\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {}\n }\n ]\n },\n \"server\": {\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"entrypoint\": null,\n \"environment\": {\n \"COPY_CONFIG_DEST\": \"/data\",\n \"ENABLE_QUERY\": \"false\",\n \"ENABLE_RCON\": \"true\",\n \"EULA\": \"TRUE\",\n \"MEMORY\": \"2G\",\n \"MOTD\": \"Unicode \u2603 $$HOME $${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\",\n \"ONLINE_MODE\": \"false\",\n \"PAPER_BUILD\": \"129\",\n \"PAUSE_WHEN_EMPTY_SECONDS\": \"-1\",\n \"RCON_PASSWORD_FILE\": \"/run/secrets/rcon\",\n \"SIMULATION_DISTANCE\": \"4\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"SYNC_SKIP_NEWER_IN_DESTINATION\": \"false\",\n \"TYPE\": \"PAPER\",\n \"VERSION\": \"26.2\",\n \"VIEW_DISTANCE\": \"6\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-health\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 30,\n \"start_period\": \"1m0s\"\n },\n \"image\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\n \"mem_limit\": \"3221225472\",\n \"networks\": {\n \"default\": null\n },\n \"restart\": \"unless-stopped\",\n \"secrets\": [\n {\n \"source\": \"rcon\",\n \"target\": \"/run/secrets/rcon\"\n }\n ],\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"2m0s\",\n \"user\": \"1001:1002\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation nix2j4re/velocity network/data/server\",\n \"target\": \"/data\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation nix2j4re/velocity network/configs/server\",\n \"target\": \"/config\",\n \"read_only\": true,\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation nix2j4re/velocity network/plugins/server\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {}\n }\n ]\n }\n }\n}"} +{"timestamp": "2026-10-01T07:27:06.160669+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:27:06.367705+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "sha256sum", "/server/velocity-4.2.1-SNAPSHOT-36.jar"], "exit": 0, "output": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c /server/velocity-4.2.1-SNAPSHOT-36.jar\n"} +{"timestamp": "2026-10-01T07:27:06.777470+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation nix2j4re/velocity network/tests/login.py", "--port", "33929", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:27:06.829306+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-b2bd56e4-server-1 Recreate \n Container minecraft-b2bd56e4-server-1 Recreated \n Container minecraft-b2bd56e4-proxy-1 Recreate \n Container minecraft-b2bd56e4-proxy-1 Recreated \n Container minecraft-b2bd56e4-server-1 Starting \n Container minecraft-b2bd56e4-server-1 Started \n Container minecraft-b2bd56e4-server-1 Waiting \n Container minecraft-b2bd56e4-server-1 Healthy \n Container minecraft-b2bd56e4-proxy-1 Starting \n Container minecraft-b2bd56e4-proxy-1 Started \n Container minecraft-b2bd56e4-proxy-1 Waiting \n Container minecraft-b2bd56e4-server-1 Waiting \n Container minecraft-b2bd56e4-server-1 Healthy \n Container minecraft-b2bd56e4-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:27:29.879379+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation nix2j4re/velocity network/tests/login.py", "--port", "33929", "--verify-cli", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft"], "exit": 0, "output": "{\"play\": true, \"backend_list\": \"There are 1 of a max of 20 players online: ForwardProof\\n\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 1], [\"configuration\", 12], [\"configuration\", 14], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 13], [\"configuration\", 4], [\"configuration\", 3]]}\n"} +{"timestamp": "2026-10-01T07:27:32.139073+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "compose", "logs", "--no-color", "server", "proxy"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:27:26.391159835Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:27:26 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:27:26 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:27:26 WARN]: The proxy is running in offline mode! This is a security risk and you will NOT receive any support!\nproxy-1 | [07:27:26 INFO]: Loading localizations...\nproxy-1 | [07:27:26 INFO]: Loading plugins...\nproxy-1 | [07:27:26 INFO]: Loaded 1 plugins\nproxy-1 | [07:27:27 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:27:27 INFO]: Done (0.56s)!\nproxy-1 | [07:27:29 INFO]: [connected player] ForwardProof (/172.19.0.1:58164) has connected\nproxy-1 | [07:27:29 INFO]: [server connection] ForwardProof -> main has connected\nproxy-1 | [07:27:32 INFO]: [connected player] ForwardProof (/172.19.0.1:58164) has disconnected\nproxy-1 | [07:27:32 INFO]: [server connection] ForwardProof -> main has disconnected\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:26 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:27:12.135 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:27:12.139 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:27:13.687483607Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:27:13 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:27:13 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:27:13 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:27:14 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:27:16 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:27:16 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:27:17 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 264.6ms\nserver-1 | [07:27:18 INFO]: Loaded 1585 recipes\nserver-1 | [07:27:18 INFO]: Loaded 1688 advancements\nserver-1 | [07:27:18 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:27:18 INFO]: Loading properties\nserver-1 | [07:27:18 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:27:18 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:27:18 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:27:18 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:27:18 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:27:18 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:27:18 INFO]: Default game type: SURVIVAL\nserver-1 | [07:27:18 INFO]: Generating keypair\nserver-1 | [07:27:18 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:27:18 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:27:18 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:27:18 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:27:18 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:27:18 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:27:18 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:27:18 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:27:18 INFO]: Preparing level \"world\"\nserver-1 | [07:27:19 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:27:19 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:27:19 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:27:19 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:27:19 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:27:19 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:27:19 INFO]: Done preparing level \"world\" (0.291s)\nserver-1 | [07:27:19 INFO]: [spark] Starting background profiler...\nserver-1 | [07:27:19 INFO]: Starting remote control listener\nserver-1 | [07:27:19 INFO]: Thread RCON Listener started\nserver-1 | [07:27:19 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:27:19 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:27:19 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:27:19 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:27:19 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:27:19 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:27:19 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:27:19 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:27:19 INFO]: Running delayed init tasks\nserver-1 | [07:27:19 INFO]: Done (6.059s)! For help, type \"help\"\nserver-1 | [07:27:29 INFO]: UUID of player ForwardProof is d2c1afbf-5081-3449-8752-8558175e1427\nserver-1 | [07:27:32 INFO]: ForwardProof joined the game\nserver-1 | [07:27:32 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:27:32 INFO]: ForwardProof[/172.19.0.1:43960] logged in with entity id 13 at ([minecraft:overworld]-20.5, 67.0, 133.5)\nserver-1 | [07:27:32 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:27:32 INFO]: ForwardProof lost connection: Disconnected\nserver-1 | [07:27:32 INFO]: ForwardProof left the game\n"} +{"timestamp": "2026-10-01T07:27:32.299005+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "compose", "ps", "-q", "server"], "exit": 0, "output": "1aed25a036f59eb59ad9afc272dc4664efda1e17bf3c2d23157f1abf187d620c\n"} +{"timestamp": "2026-10-01T07:27:32.456038+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", "1aed25a036f59eb59ad9afc272dc4664efda1e17bf3c2d23157f1abf187d620c"], "exit": 0, "output": "172.19.0.2\n"} +{"timestamp": "2026-10-01T07:27:32.472270+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation nix2j4re/velocity network/tests/login.py", "--host", "172.19.0.2", "--port", "25565", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"4\\\"This server requires you to connect with Velocity.\\\"\", \"packets\": [[\"login\", 4], [\"login\", 0]]}\n"} +{"timestamp": "2026-10-01T07:27:32.526052+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-b2bd56e4-server-1 Recreate \n Container minecraft-b2bd56e4-server-1 Recreated \n Container minecraft-b2bd56e4-server-1 Starting \n Container minecraft-b2bd56e4-server-1 Started \n Container minecraft-b2bd56e4-server-1 Waiting \n Container minecraft-b2bd56e4-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:27:49.468591+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation nix2j4re/velocity network/tests/login.py", "--port", "33929", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"\\n\\b\\u0000\\u0005color\\u0000\\u0003red\\b\\u0000\\u0004text\\u0000:Unable to connect to main: Unable to verify player details\\u0000\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 2]]}\n"} +{"timestamp": "2026-10-01T07:27:49.555736+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-b2bd56e4-server-1 Recreate \n Container minecraft-b2bd56e4-server-1 Recreated \n Container minecraft-b2bd56e4-proxy-1 Recreate \n Container minecraft-b2bd56e4-proxy-1 Recreated \n Container minecraft-b2bd56e4-server-1 Starting \n Container minecraft-b2bd56e4-server-1 Started \n Container minecraft-b2bd56e4-server-1 Waiting \n Container minecraft-b2bd56e4-server-1 Healthy \n Container minecraft-b2bd56e4-proxy-1 Starting \n Container minecraft-b2bd56e4-proxy-1 Started \n Container minecraft-b2bd56e4-server-1 Waiting \n Container minecraft-b2bd56e4-proxy-1 Waiting \n Container minecraft-b2bd56e4-server-1 Healthy \n Container minecraft-b2bd56e4-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:28:12.461286+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation nix2j4re/velocity network/tests/login.py", "--port", "33929", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:28:12.510922+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:26 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:27:54.753 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:27:54.757 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:27:56.334273283Z ServerMain WARN Advanced terminal features are not available in this environment\nproxy-1 | [init] Resolving type given VELOCITY\nserver-1 | [07:27:56 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:27:56 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:27:56 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:27:56 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:27:59 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:27:59 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:27:59 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 263.6ms\nserver-1 | [07:28:00 INFO]: Loaded 1585 recipes\nserver-1 | [07:28:00 INFO]: Loaded 1688 advancements\nserver-1 | [07:28:00 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:28:00 INFO]: Loading properties\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:28:09.007842573Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:28:09 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:28:09 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:28:09 INFO]: Loading localizations...\nproxy-1 | [07:28:09 INFO]: Loading plugins...\nproxy-1 | [07:28:09 INFO]: Loaded 1 plugins\nproxy-1 | [07:28:09 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:28:09 INFO]: Done (0.5s)!\nproxy-1 | [07:28:12 INFO]: [initial connection] /172.19.0.1:35766 has disconnected\nserver-1 | [07:28:00 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:28:00 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:28:01 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:28:01 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:28:01 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:28:01 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:28:01 INFO]: Default game type: SURVIVAL\nserver-1 | [07:28:01 INFO]: Generating keypair\nserver-1 | [07:28:01 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:28:01 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:28:01 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:28:01 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:28:01 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:28:01 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:28:01 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:28:01 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:28:01 INFO]: Preparing level \"world\"\nserver-1 | [07:28:01 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:28:01 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:28:01 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:28:01 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:28:01 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:28:01 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:28:01 INFO]: Done preparing level \"world\" (0.329s)\nserver-1 | [07:28:01 INFO]: [spark] Starting background profiler...\nserver-1 | [07:28:02 INFO]: Starting remote control listener\nserver-1 | [07:28:02 INFO]: Thread RCON Listener started\nserver-1 | [07:28:02 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:28:02 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:28:02 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:28:02 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:28:02 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:28:02 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:28:02 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:28:02 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:28:02 INFO]: Running delayed init tasks\nserver-1 | [07:28:02 INFO]: Done (6.227s)! For help, type \"help\"\n"} +{"timestamp": "2026-10-01T07:28:12.718719+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\"ContainerName\":\"minecraft-b2bd56e4-proxy-1\",\"Repository\":\"itzg/mc-proxy\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":968846183,\"Created\":\"2026-09-18T17:24:52.935406437Z\",\"LastTagTime\":\"2026-10-01T07:26:34.563926288Z\"},{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-b2bd56e4-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:28:12.924406+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-b2bd56e4-proxy-1 Stopping \n Container minecraft-b2bd56e4-proxy-1 Stopped \n Container minecraft-b2bd56e4-proxy-1 Removing \n Container minecraft-b2bd56e4-proxy-1 Removed \n Container minecraft-b2bd56e4-server-1 Stopping \n Container minecraft-b2bd56e4-server-1 Stopped \n Container minecraft-b2bd56e4-server-1 Removing \n Container minecraft-b2bd56e4-server-1 Removed \n Network minecraft-b2bd56e4_default Removing \n Network minecraft-b2bd56e4_default Removed \n"} +{"timestamp": "2026-10-01T07:28:14.435180+00:00", "cwd": "/tmp/minecraft validation nix2j4re/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation nix2j4re/velocity network/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:14.592366+00:00", "cwd": "/tmp/minecraft validation nix2j4re/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation nix2j4re/latest vanilla/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:14.753165+00:00", "cwd": "/tmp/minecraft validation nix2j4re/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation nix2j4re/restored server/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:14.908717+00:00", "cwd": "/tmp/minecraft validation nix2j4re/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation nix2j4re/stable paper/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": " Volume minecraft-5e4201eb_database Removing \n Volume minecraft-5e4201eb_database Removed \n"} +{"timestamp": "2026-10-01T07:28:15.064572+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "cd4577cd9bc78f2a7c9d0a90a8d0be3f35db320a84ead0e42287ea50846752ce"], "exit": 0, "output": "cd4577cd9bc78f2a7c9d0a90a8d0be3f35db320a84ead0e42287ea50846752ce\n"} +{"timestamp": "2026-10-01T07:28:15.080994+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "rm", "cd4577cd9bc78f2a7c9d0a90a8d0be3f35db320a84ead0e42287ea50846752ce"], "exit": 0, "output": "cd4577cd9bc78f2a7c9d0a90a8d0be3f35db320a84ead0e42287ea50846752ce\n"} +{"timestamp": "2026-10-01T07:28:15.117623+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "ps", "-aq"], "exit": 0, "output": "9fc1c9de7bd4\nb6565a0b2641\ncb032c5d0307\nc4b270652fae\n83b52f82cc55\nfcc32bf402ee\n3faf83c3849e\n14cb2d0322a8\n7ca13c7a9157\n8a106aa4cdf8\n05758f1c498d\n90ed72c10c1c\n4e36373b3ff8\n31f7b35c97a2\n1b9e84a6dac9\n5440b03cc0be\nb659460c72ed\n7910b8100224\nc59f1f70d70f\n1f2fd13508fb\n9a0f33f0c8af\n5f0ffbf98fe9\nd22abb2de519\n"} +{"timestamp": "2026-10-01T07:28:15.171569+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-5e4201eb"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:15.187503+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-5e4201eb"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:15.203862+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-5e4201eb"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:15.219698+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-63d1f842"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:15.235693+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-63d1f842"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:15.252619+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-63d1f842"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:15.268420+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-89e55a52"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:15.285331+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-89e55a52"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:15.300909+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-89e55a52"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:15.316848+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-b2bd56e4"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:15.331919+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-b2bd56e4"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:28:15.347735+00:00", "cwd": "/tmp/minecraft-review-fixes-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-b2bd56e4"], "exit": 0, "output": ""} diff --git a/docs/proof/review-fixes/archive-runtime/inventory-diff.json b/docs/proof/review-fixes/archive-runtime/inventory-diff.json new file mode 100644 index 0000000..b644c18 --- /dev/null +++ b/docs/proof/review-fixes/archive-runtime/inventory-diff.json @@ -0,0 +1,29 @@ +{ + "removed_unrelated_ids": [], + "added_unrelated_ids": [], + "preserved_ids": [ + "05758f1c498d", + "14cb2d0322a8", + "1b9e84a6dac9", + "1f2fd13508fb", + "31f7b35c97a2", + "3faf83c3849e", + "4e36373b3ff8", + "5440b03cc0be", + "5f0ffbf98fe9", + "7910b8100224", + "7ca13c7a9157", + "83b52f82cc55", + "8a106aa4cdf8", + "90ed72c10c1c", + "9a0f33f0c8af", + "9fc1c9de7bd4", + "b6565a0b2641", + "b659460c72ed", + "c4b270652fae", + "c59f1f70d70f", + "cb032c5d0307", + "d22abb2de519", + "fcc32bf402ee" + ] +} diff --git a/docs/proof/review-fixes/archive-runtime/overlap-first.log b/docs/proof/review-fixes/archive-runtime/overlap-first.log new file mode 100644 index 0000000..d93c86d --- /dev/null +++ b/docs/proof/review-fixes/archive-runtime/overlap-first.log @@ -0,0 +1,67 @@ + Container minecraft-5e4201eb-backup-run-d5b3090979fd Creating + Container minecraft-5e4201eb-backup-run-d5b3090979fd Created +time="2026-10-01T07:25:28Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:25:28+0000 INFO Repository already initialized +2026-10-01T07:25:28+0000 INFO Checking for stale locks +2026-10-01T07:25:29+0000 INFO Checking repo integrity +2026-10-01T07:25:30+0000 INFO waiting initial delay of 0... +2026-10-01T07:25:30+0000 INFO waiting for rcon readiness... +2026-10-01T07:25:30+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:25:30+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:25:30+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:25:30+0000 INFO Command executed successfully sync +2026-10-01T07:25:32+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:25:33+0000 INFO using parent snapshot 00bce4b5 +2026-10-01T07:25:33+0000 INFO +2026-10-01T07:25:33+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:25:33+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:25:33+0000 INFO Added to the repository: 31.531 KiB (13.138 KiB stored) +2026-10-01T07:25:33+0000 INFO +2026-10-01T07:25:33+0000 INFO processed 182 files, 174.602 MiB in 0:00 +2026-10-01T07:25:33+0000 INFO snapshot 740c096e saved +2026-10-01T07:25:33+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:25:34+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:25:35+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:25:35+0000 INFO keep 2 snapshots: +2026-10-01T07:25:35+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:25:35+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:25:35+0000 INFO 7daad997 2026-10-01 07:25:14 minecraft mc_backups,server oldest daily snapshot /data 174.602 MiB +2026-10-01T07:25:35+0000 INFO oldest weekly snapshot +2026-10-01T07:25:35+0000 INFO oldest monthly snapshot +2026-10-01T07:25:35+0000 INFO 740c096e 2026-10-01 07:25:32 minecraft mc_backups,server daily snapshot /data 174.602 MiB +2026-10-01T07:25:35+0000 INFO weekly snapshot +2026-10-01T07:25:35+0000 INFO monthly snapshot +2026-10-01T07:25:35+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:25:35+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:25:35+0000 INFO 2 snapshots +2026-10-01T07:25:35+0000 INFO +2026-10-01T07:25:35+0000 INFO remove 1 snapshots: +2026-10-01T07:25:35+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:25:35+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:25:35+0000 INFO 00bce4b5 2026-10-01 07:25:18 minecraft mc_backups,server /data 174.602 MiB +2026-10-01T07:25:35+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:25:35+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:25:35+0000 INFO 1 snapshots +2026-10-01T07:25:35+0000 INFO +2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:25:35+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:25:35+0000 INFO loading all snapshots... +2026-10-01T07:25:35+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:25:35+0000 INFO searching used packs... +2026-10-01T07:25:35+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 15 / 15 packs processed +2026-10-01T07:25:35+0000 INFO +2026-10-01T07:25:35+0000 INFO to repack: 0 blobs / 0 B +2026-10-01T07:25:35+0000 INFO this removes: 0 blobs / 0 B +2026-10-01T07:25:35+0000 INFO to delete: 23 blobs / 11.576 KiB +2026-10-01T07:25:35+0000 INFO total prune: 23 blobs / 11.576 KiB +2026-10-01T07:25:35+0000 INFO remaining: 612 blobs / 160.224 MiB +2026-10-01T07:25:35+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:25:35+0000 INFO +2026-10-01T07:25:35+0000 INFO rebuilding index +2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 3 / 3 indexes processed +2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted +2026-10-01T07:25:35+0000 INFO removing 2 old packs +2026-10-01T07:25:35+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:25:35+0000 INFO done diff --git a/docs/proof/review-fixes/archive-runtime/overlap-second.log b/docs/proof/review-fixes/archive-runtime/overlap-second.log new file mode 100644 index 0000000..88eb336 --- /dev/null +++ b/docs/proof/review-fixes/archive-runtime/overlap-second.log @@ -0,0 +1,70 @@ + Container minecraft-5e4201eb-backup-run-e63191d39d87 Creating + Container minecraft-5e4201eb-backup-run-e63191d39d87 Created +time="2026-10-01T07:25:30Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:25:31+0000 INFO Repository already initialized +2026-10-01T07:25:31+0000 INFO Checking for stale locks +2026-10-01T07:25:31+0000 INFO Checking repo integrity +2026-10-01T07:25:32+0000 INFO waiting initial delay of 0... +2026-10-01T07:25:32+0000 INFO waiting for rcon readiness... +2026-10-01T07:25:32+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:25:33+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:25:33+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:25:33+0000 INFO Command executed successfully sync +2026-10-01T07:25:33+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:25:34+0000 INFO repo already locked, waiting up to 1m0s for the lock +2026-10-01T07:25:39+0000 INFO using parent snapshot 740c096e +2026-10-01T07:25:39+0000 INFO +2026-10-01T07:25:39+0000 INFO Files: 0 new, 12 changed, 170 unmodified +2026-10-01T07:25:39+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:25:39+0000 INFO Added to the repository: 31.007 KiB (12.518 KiB stored) +2026-10-01T07:25:39+0000 INFO +2026-10-01T07:25:39+0000 INFO processed 182 files, 174.602 MiB in 0:05 +2026-10-01T07:25:39+0000 INFO snapshot e5fc2ac5 saved +2026-10-01T07:25:39+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:25:40+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:25:40+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:25:40+0000 INFO keep 2 snapshots: +2026-10-01T07:25:40+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:25:40+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:25:40+0000 INFO 7daad997 2026-10-01 07:25:14 minecraft mc_backups,server oldest daily snapshot /data 174.602 MiB +2026-10-01T07:25:40+0000 INFO oldest weekly snapshot +2026-10-01T07:25:40+0000 INFO oldest monthly snapshot +2026-10-01T07:25:40+0000 INFO e5fc2ac5 2026-10-01 07:25:33 minecraft mc_backups,server daily snapshot /data 174.602 MiB +2026-10-01T07:25:40+0000 INFO weekly snapshot +2026-10-01T07:25:40+0000 INFO monthly snapshot +2026-10-01T07:25:40+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:25:40+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:25:40+0000 INFO 2 snapshots +2026-10-01T07:25:40+0000 INFO +2026-10-01T07:25:40+0000 INFO remove 1 snapshots: +2026-10-01T07:25:40+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:25:40+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:25:40+0000 INFO 740c096e 2026-10-01 07:25:32 minecraft mc_backups,server /data 174.602 MiB +2026-10-01T07:25:40+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:25:40+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:25:40+0000 INFO 1 snapshots +2026-10-01T07:25:40+0000 INFO +2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:25:40+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:25:40+0000 INFO loading all snapshots... +2026-10-01T07:25:40+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:25:40+0000 INFO searching used packs... +2026-10-01T07:25:40+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 15 / 15 packs processed +2026-10-01T07:25:40+0000 INFO +2026-10-01T07:25:40+0000 INFO to repack: 8 blobs / 2.326 KiB +2026-10-01T07:25:40+0000 INFO this removes: 6 blobs / 1.371 KiB +2026-10-01T07:25:40+0000 INFO to delete: 17 blobs / 10.166 KiB +2026-10-01T07:25:40+0000 INFO total prune: 23 blobs / 11.537 KiB +2026-10-01T07:25:40+0000 INFO remaining: 612 blobs / 160.224 MiB +2026-10-01T07:25:40+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:25:40+0000 INFO +2026-10-01T07:25:40+0000 INFO repacking packs +2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 1 / 1 packs repacked +2026-10-01T07:25:40+0000 INFO rebuilding index +2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 3 / 3 indexes processed +2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted +2026-10-01T07:25:40+0000 INFO removing 2 old packs +2026-10-01T07:25:40+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:25:40+0000 INFO done diff --git a/docs/proof/review-fixes/archive-runtime/summary.json b/docs/proof/review-fixes/archive-runtime/summary.json new file mode 100644 index 0000000..7a6b707 --- /dev/null +++ b/docs/proof/review-fixes/archive-runtime/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:24:31.637255+00:00", + "mode": "fullDocker", + "passed": true, + "finished": "2026-10-01T07:28:15.550922+00:00" +} diff --git a/docs/proof/review-fixes/archive-runtime/versions.env b/docs/proof/review-fixes/archive-runtime/versions.env new file mode 100644 index 0000000..16264c6 --- /dev/null +++ b/docs/proof/review-fixes/archive-runtime/versions.env @@ -0,0 +1,13 @@ +SERVER_IMAGE=itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e +PROXY_IMAGE=itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 +BACKUP_IMAGE=itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 +DATABASE_IMAGE=mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1 +WEB_IMAGE=nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 +PAPER_VERSION=26.2 +PAPER_BUILD=129 +VANILLA_VERSION=26.3 +VELOCITY_VERSION=4.2.1-SNAPSHOT +VELOCITY_BUILD_ID=36 +PAPER_SHA256=b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 +VELOCITY_SHA256=62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c +VANILLA_SERVER_SHA1=33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c diff --git a/docs/proof/review-fixes/ci-amd64-run.json b/docs/proof/review-fixes/ci-amd64-run.json new file mode 100644 index 0000000..5b5829e --- /dev/null +++ b/docs/proof/review-fixes/ci-amd64-run.json @@ -0,0 +1 @@ +{"conclusion":"success","createdAt":"2026-10-01T07:41:37Z","databaseId":36831801041,"headSha":"1b6a5eea6e8684d871e76e7bdb53a3797c88b570","jobs":[{"completedAt":"2026-10-01T07:46:05Z","conclusion":"success","databaseId":110269877197,"name":"runtime","startedAt":"2026-10-01T07:41:42Z","status":"completed","steps":[{"completedAt":"2026-10-01T07:41:43Z","conclusion":"success","name":"Set up job","number":1,"startedAt":"2026-10-01T07:41:43Z","status":"completed"},{"completedAt":"2026-10-01T07:41:44Z","conclusion":"success","name":"Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1","number":2,"startedAt":"2026-10-01T07:41:43Z","status":"completed"},{"completedAt":"2026-10-01T07:46:02Z","conclusion":"success","name":"Run ./scripts/validate fullDocker","number":3,"startedAt":"2026-10-01T07:41:44Z","status":"completed"},{"completedAt":"2026-10-01T07:46:03Z","conclusion":"success","name":"Run actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","number":4,"startedAt":"2026-10-01T07:46:02Z","status":"completed"},{"completedAt":"2026-10-01T07:46:03Z","conclusion":"success","name":"Post Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1","number":8,"startedAt":"2026-10-01T07:46:03Z","status":"completed"},{"completedAt":"2026-10-01T07:46:03Z","conclusion":"success","name":"Complete job","number":9,"startedAt":"2026-10-01T07:46:03Z","status":"completed"}],"url":"https://github.com/sVoxelDev/minecraft-server-template/actions/runs/36831801041/job/110269877197"},{"completedAt":"2026-10-01T07:41:51Z","conclusion":"success","databaseId":110269877573,"name":"local","startedAt":"2026-10-01T07:41:40Z","status":"completed","steps":[{"completedAt":"2026-10-01T07:41:42Z","conclusion":"success","name":"Set up job","number":1,"startedAt":"2026-10-01T07:41:41Z","status":"completed"},{"completedAt":"2026-10-01T07:41:43Z","conclusion":"success","name":"Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1","number":2,"startedAt":"2026-10-01T07:41:42Z","status":"completed"},{"completedAt":"2026-10-01T07:41:47Z","conclusion":"success","name":"Run ./scripts/validate local","number":3,"startedAt":"2026-10-01T07:41:43Z","status":"completed"},{"completedAt":"2026-10-01T07:41:48Z","conclusion":"success","name":"Run actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","number":4,"startedAt":"2026-10-01T07:41:47Z","status":"completed"},{"completedAt":"2026-10-01T07:41:49Z","conclusion":"success","name":"Post Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1","number":8,"startedAt":"2026-10-01T07:41:48Z","status":"completed"},{"completedAt":"2026-10-01T07:41:49Z","conclusion":"success","name":"Complete job","number":9,"startedAt":"2026-10-01T07:41:49Z","status":"completed"}],"url":"https://github.com/sVoxelDev/minecraft-server-template/actions/runs/36831801041/job/110269877573"}],"updatedAt":"2026-10-01T07:46:06Z","url":"https://github.com/sVoxelDev/minecraft-server-template/actions/runs/36831801041"} diff --git a/docs/proof/review-fixes/identity.json b/docs/proof/review-fixes/identity.json new file mode 100644 index 0000000..f832b2e --- /dev/null +++ b/docs/proof/review-fixes/identity.json @@ -0,0 +1,19 @@ +{ + "validated_archive_commit": "1b6a5ee", + "first_successful_archive_commit": "34c2ed", + "source_sha256": { + "compose.yaml": "a010a1d910d7c4faa48c3c78cfb6ad67d92449498b748c59df3729652d483a25", + "Dockerfile.backup": "1c6ea31fbca38c60cb9ab8480bb76128c6c3a4f31ca904084d400d285dc7be2d", + "Dockerfile.backup.dockerignore": "e0a0a575a7f69451eab7e5c28bfabd98bb15b7e6b86051d7f3c994480e830027", + "versions.env": "73dbd2e5b0813991ba35171e6899630da3f94774b0e1b5f6c59e48c2d70edcfc", + "scripts/check-versions": "1b17bea02f5b24b8b5959f0d3425284412ee02965ce2d887732b42887fb4e42a", + "scripts/status": "a326245845b7fa44831e4eb0e126614cb4a2d16aeec8d75b26ac5f526b35bcbd", + "scripts/validate": "b53e4b4f7f1dc890c029dcd99e479b40774286b410d9181195c396e61a5e16df", + "scripts/minecraft": "3c8df527f3775fbd21ad0c438ad6b6ef66436493bc799622eb72eb0c4b5757b5", + "tests/login.py": "e92d086ab9e6284cae1147df0d04baba6bdbc93cb27ea4fc3a4e60acdc088004", + "tests/test_cli.py": "52af676c46a5f6f5ea3d09a2e249aef23bcb54d1fbcccc57cc55854693e7da94" + }, + "archive_source": "git archive HEAD; no Git index", + "verified_ci_commit": "1b6a5eea6e8684d871e76e7bdb53a3797c88b570", + "verified_ci_run": "https://github.com/sVoxelDev/minecraft-server-template/actions/runs/36831801041" +} diff --git a/docs/proof/review-fixes/local/commands.jsonl b/docs/proof/review-fixes/local/commands.jsonl new file mode 100644 index 0000000..6469645 --- /dev/null +++ b/docs/proof/review-fixes/local/commands.jsonl @@ -0,0 +1 @@ +{"timestamp": "2026-10-01T07:37:27.745892+00:00", "cwd": "/tmp/minecraft-modernize", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 0, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_ambient_environment_cannot_redirect_project_or_pins (test_cli.SetupBoundary.test_ambient_environment_cannot_redirect_project_or_pins) ... ok\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_rejects_network_bypasses (test_cli.SetupBoundary.test_doctor_rejects_network_bypasses) ... ok\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_literal_motd_survives_setup_and_compose (test_cli.SetupBoundary.test_literal_motd_survives_setup_and_compose) ... ok\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n----------------------------------------------------------------------\nRan 9 tests in 2.706s\n\nOK\n"} diff --git a/docs/proof/review-fixes/local/summary.json b/docs/proof/review-fixes/local/summary.json new file mode 100644 index 0000000..c5577bd --- /dev/null +++ b/docs/proof/review-fixes/local/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:37:27.745878+00:00", + "mode": "local", + "passed": true, + "finished": "2026-10-01T07:37:30.500220+00:00" +} diff --git a/docs/proof/review-fixes/runtime-amd64/assertions.json b/docs/proof/review-fixes/runtime-amd64/assertions.json new file mode 100644 index 0000000..428c80a --- /dev/null +++ b/docs/proof/review-fixes/runtime-amd64/assertions.json @@ -0,0 +1,182 @@ +[ + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "custom MOTD reached protocol", + "passed": true + }, + { + "assertion": "Paper exact build", + "passed": true + }, + { + "assertion": "Paper downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective standalone authentication and query settings", + "passed": true + }, + { + "assertion": "standalone requires account authentication", + "passed": true + }, + { + "assertion": "wrong RCON password denied", + "passed": true + }, + { + "assertion": "world survives container recreation", + "passed": true + }, + { + "assertion": "encrypted snapshot created", + "passed": true + }, + { + "assertion": "backup flushed world and resumed saves", + "passed": true + }, + { + "assertion": "scheduled backup interval active", + "passed": true + }, + { + "assertion": "backup failure is reported", + "passed": true + }, + { + "assertion": "backup failure resumes automatic saving", + "passed": true + }, + { + "assertion": "inner Restic failure returns nonzero with useful output", + "passed": true + }, + { + "assertion": "inner Restic failure resumes saves", + "passed": true + }, + { + "assertion": "first backup holds lock after flush", + "passed": true + }, + { + "assertion": "second backup completed nonmutating readiness while first locked", + "passed": true + }, + { + "assertion": "overlap cannot enable saving while first holds lock", + "passed": true + }, + { + "assertion": "overlap-first succeeded", + "passed": true + }, + { + "assertion": "overlap-second succeeded", + "passed": true + }, + { + "assertion": "both overlapping backups resume saves", + "passed": true + }, + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "restored server contains snapshot world", + "passed": true + }, + { + "assertion": "database authenticates and round trips data", + "passed": true + }, + { + "assertion": "database survives recreation", + "passed": true + }, + { + "assertion": "database wrong password denied", + "passed": true + }, + { + "assertion": "optional web serves files", + "passed": true + }, + { + "assertion": "26.3 Minecraft status", + "passed": true + }, + { + "assertion": "Vanilla RCON works", + "passed": true + }, + { + "assertion": "Vanilla downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective Vanilla authentication and query settings", + "passed": true + }, + { + "assertion": "Velocity Minecraft status", + "passed": true + }, + { + "assertion": "literal Velocity MOTD reached protocol", + "passed": true + }, + { + "assertion": "backend has no published port", + "passed": true + }, + { + "assertion": "production Velocity online authentication", + "passed": true + }, + { + "assertion": "forwarding secret reaches effective Paper config", + "passed": true + }, + { + "assertion": "Velocity downloaded artifact checksum", + "passed": true + }, + { + "assertion": "production proxy requires account authentication", + "passed": true + }, + { + "assertion": "real client enters play through authenticated modern forwarding", + "passed": true + }, + { + "assertion": "backend logged the real client join", + "passed": true + }, + { + "assertion": "direct backend client denied without forwarding", + "passed": true + }, + { + "assertion": "wrong forwarding secret denies client login", + "passed": true + }, + { + "assertion": "production online authentication restored", + "passed": true + }, + { + "assertion": "unrelated stable sentinel survives contaminated cleanup", + "passed": true + }, + { + "assertion": "owned containers networks and volumes removed", + "passed": true + } +] diff --git a/docs/proof/review-fixes/runtime-amd64/cleanup.json b/docs/proof/review-fixes/runtime-amd64/cleanup.json new file mode 100644 index 0000000..943c2d4 --- /dev/null +++ b/docs/proof/review-fixes/runtime-amd64/cleanup.json @@ -0,0 +1,3 @@ +{ + "remaining": [] +} diff --git a/docs/proof/review-fixes/runtime-amd64/commands.jsonl b/docs/proof/review-fixes/runtime-amd64/commands.jsonl new file mode 100644 index 0000000..33af16d --- /dev/null +++ b/docs/proof/review-fixes/runtime-amd64/commands.jsonl @@ -0,0 +1,96 @@ +{"timestamp": "2026-10-01T07:41:44.497410+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 0, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_ambient_environment_cannot_redirect_project_or_pins (test_cli.SetupBoundary.test_ambient_environment_cannot_redirect_project_or_pins) ... ok\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_rejects_network_bypasses (test_cli.SetupBoundary.test_doctor_rejects_network_bypasses) ... ok\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_literal_motd_survives_setup_and_compose (test_cli.SetupBoundary.test_literal_motd_survives_setup_and_compose) ... ok\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n----------------------------------------------------------------------\nRan 9 tests in 3.171s\n\nOK\n"} +{"timestamp": "2026-10-01T07:41:47.715131+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "ps", "-aq"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:41:47.727524+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "version"], "exit": 0, "output": "Client: Docker Engine - Community\n Version: 28.0.4\n API version: 1.48\n Go version: go1.23.7\n Git commit: b8034c0\n Built: Tue Mar 25 15:07:16 2025\n OS/Arch: linux/amd64\n Context: default\n\nServer: Docker Engine - Community\n Engine:\n Version: 28.0.4\n API version: 1.48 (minimum version 1.24)\n Go version: go1.23.7\n Git commit: 6430e49\n Built: Tue Mar 25 15:07:16 2025\n OS/Arch: linux/amd64\n Experimental: false\n containerd:\n Version: v2.3.5\n GitCommit: 1294c24a7da8e5a793ed378161673abe94118892\n runc:\n Version: 1.5.1\n GitCommit: v1.5.1-0-g8f2685a4\n docker-init:\n Version: 0.19.0\n GitCommit: de40ad0\n"} +{"timestamp": "2026-10-01T07:41:47.744022+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "docker", "create", "--label", "com.docker.compose.project=minecraft-sentinel-8cd902f7227a906c", "--name", "minecraft-sentinel-8cd902f7227a906c", "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94"], "exit": 0, "output": "Unable to find image 'nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94' locally\ndocker.io/library/nginx@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94: Pulling from library/nginx\ne2de96513ba9: Pulling fs layer\ne3320d02d578: Pulling fs layer\n3d85d110b167: Pulling fs layer\n22e5a8a110ec: Pulling fs layer\n6b4dfb2e8f8a: Pulling fs layer\n703c5424632f: Pulling fs layer\nb335b7ac3a40: Pulling fs layer\nb27cf3f7c39d: Pulling fs layer\n6b4dfb2e8f8a: Waiting\n703c5424632f: Waiting\nb335b7ac3a40: Waiting\nb27cf3f7c39d: Waiting\n22e5a8a110ec: Waiting\n3d85d110b167: Verifying Checksum\n3d85d110b167: Download complete\ne2de96513ba9: Verifying Checksum\ne2de96513ba9: Download complete\ne3320d02d578: Verifying Checksum\ne3320d02d578: Download complete\n22e5a8a110ec: Verifying Checksum\n22e5a8a110ec: Download complete\n6b4dfb2e8f8a: Verifying Checksum\n6b4dfb2e8f8a: Download complete\n703c5424632f: Verifying Checksum\n703c5424632f: Download complete\ne2de96513ba9: Pull complete\nb335b7ac3a40: Verifying Checksum\nb335b7ac3a40: Download complete\nb27cf3f7c39d: Verifying Checksum\nb27cf3f7c39d: Download complete\ne3320d02d578: Pull complete\n3d85d110b167: Pull complete\n22e5a8a110ec: Pull complete\n6b4dfb2e8f8a: Pull complete\n703c5424632f: Pull complete\nb335b7ac3a40: Pull complete\nb27cf3f7c39d: Pull complete\nDigest: sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\nStatus: Downloaded newer image for nginx@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\n0cef389c0c7b4b5b1d7b946a9be43f1be263686514031e75325051aea7561457\n"} +{"timestamp": "2026-10-01T07:41:54.165388+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "minecraft-sentinel-8cd902f7227a906c"], "exit": 0, "output": "0cef389c0c7b4b5b1d7b946a9be43f1be263686514031e75325051aea7561457\n"} +{"timestamp": "2026-10-01T07:41:54.183492+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "58803", "--web-port", "54571", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--profile", "backup", "--profile", "database", "--profile", "web"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [\"backup\", \"database\", \"web\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:41:54.222974+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "58803", "--web-port", "54571", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--profile", "backup", "--profile", "database", "--profile", "web", "--start"], "exit": 0, "output": " database Pulling \n server Pulling \n backup Pulling \n backup Warning pull access denied for minecraft-template-backup, repository does not exist or may require 'docker login': denied: requested access to the resource is denied\n edd1ed89f0d4 Already exists \n b4bd6fae5549 Pulling fs layer \n 3b72eb79f0f5 Pulling fs layer \n d1f1d0a4cd2c Pulling fs layer \n 60e6ed308d6f Pulling fs layer \n dd4a227feb44 Pulling fs layer \n 50521443ed25 Pulling fs layer \n 67227d402a14 Pulling fs layer \n 60e6ed308d6f Waiting \n dd4a227feb44 Waiting \n 50521443ed25 Waiting \n 67227d402a14 Waiting \n edd1ed89f0d4 Already exists \n 6feed5b2ec5c Pulling fs layer \n ae73d3b72fc6 Pulling fs layer \n 6feed5b2ec5c Waiting \n 4f4fb700ef54 Pulling fs layer \n d53e85d07d74 Pulling fs layer \n b848944be864 Pulling fs layer \n 9ebe4816f1dd Pulling fs layer \n 23b9d66badbc Pulling fs layer \n 952cc891a60e Pulling fs layer \n aac82a21e07d Pulling fs layer \n 69adc395f642 Pulling fs layer \n d3e7be5328a5 Pulling fs layer \n c21d27a13af2 Pulling fs layer \n 53a34cf230ea Pulling fs layer \n 3c03da64f274 Pulling fs layer \n 952cc891a60e Waiting \n ae73d3b72fc6 Waiting \n 4f4fb700ef54 Waiting \n aac82a21e07d Waiting \n d53e85d07d74 Waiting \n 69adc395f642 Waiting \n b848944be864 Waiting \n 9ebe4816f1dd Waiting \n 23b9d66badbc Waiting \n 53a34cf230ea Waiting \n d3e7be5328a5 Waiting \n c21d27a13af2 Waiting \n 3c03da64f274 Waiting \n 2751382ff006 Pulling fs layer \n b35ea58ffaca Pulling fs layer \n 2bcd55e54e2e Pulling fs layer \n e9154a98649b Pulling fs layer \n 2751382ff006 Waiting \n dbe8bf0adba7 Pulling fs layer \n b35ea58ffaca Waiting \n b4a4674a0291 Pulling fs layer \n ab3e69122a26 Pulling fs layer \n f64b25968e12 Pulling fs layer \n 08bd7e2acf12 Pulling fs layer \n e9154a98649b Waiting \n 2bcd55e54e2e Waiting \n f64b25968e12 Waiting \n b4a4674a0291 Waiting \n 08bd7e2acf12 Waiting \n ab3e69122a26 Waiting \n dbe8bf0adba7 Waiting \n b4bd6fae5549 Downloading [==================================================>] 1.341kB/1.341kB\n b4bd6fae5549 Verifying Checksum \n b4bd6fae5549 Download complete \n b4bd6fae5549 Extracting [==================================================>] 1.341kB/1.341kB\n b4bd6fae5549 Extracting [==================================================>] 1.341kB/1.341kB\n d1f1d0a4cd2c Downloading [==================================================>] 116B/116B\n d1f1d0a4cd2c Verifying Checksum \n d1f1d0a4cd2c Download complete \n 3b72eb79f0f5 Downloading [> ] 64.9kB/5.246MB\n b4bd6fae5549 Pull complete \n 60e6ed308d6f Downloading [==================================================>] 327B/327B\n 60e6ed308d6f Verifying Checksum \n 60e6ed308d6f Download complete \n 3b72eb79f0f5 Verifying Checksum \n 3b72eb79f0f5 Download complete \n 3b72eb79f0f5 Extracting [> ] 65.54kB/5.246MB\n dd4a227feb44 Downloading [> ] 524.4kB/70.4MB\n 50521443ed25 Downloading [===========================================> ] 3.501kB/4.035kB\n 50521443ed25 Downloading [==================================================>] 4.035kB/4.035kB\n 50521443ed25 Verifying Checksum \n 50521443ed25 Download complete \n 67227d402a14 Downloading [====================> ] 3.501kB/8.494kB\n 67227d402a14 Downloading [==================================================>] 8.494kB/8.494kB\n 67227d402a14 Download complete \n 6feed5b2ec5c Downloading [> ] 130kB/11.44MB\n ae73d3b72fc6 Downloading [> ] 540.1kB/63.08MB\n 6feed5b2ec5c Verifying Checksum \n 6feed5b2ec5c Download complete \n 6feed5b2ec5c Extracting [> ] 131.1kB/11.44MB\n 3b72eb79f0f5 Extracting [========================> ] 2.556MB/5.246MB\n dd4a227feb44 Downloading [======================> ] 32.36MB/70.4MB\n 4f4fb700ef54 Downloading [==================================================>] 32B/32B\n 4f4fb700ef54 Verifying Checksum \n 4f4fb700ef54 Download complete \n ae73d3b72fc6 Downloading [=========================> ] 31.9MB/63.08MB\n d53e85d07d74 Downloading [==================================================>] 2.465kB/2.465kB\n d53e85d07d74 Verifying Checksum \n d53e85d07d74 Download complete \n 6feed5b2ec5c Extracting [====> ] 917.5kB/11.44MB\n 3b72eb79f0f5 Extracting [===========================================> ] 4.522MB/5.246MB\n dd4a227feb44 Downloading [===============================================> ] 66.41MB/70.4MB\n dd4a227feb44 Verifying Checksum \n dd4a227feb44 Download complete \n b848944be864 Downloading [> ] 538kB/171.5MB\n 9ebe4816f1dd Downloading [=> ] 16.38kB/783.6kB\n ae73d3b72fc6 Verifying Checksum \n ae73d3b72fc6 Download complete \n 9ebe4816f1dd Download complete \n 23b9d66badbc Downloading [==================================================>] 1.294kB/1.294kB\n 23b9d66badbc Verifying Checksum \n 23b9d66badbc Download complete \n 952cc891a60e Downloading [> ] 49.15kB/3.557MB\n 6feed5b2ec5c Extracting [================> ] 3.67MB/11.44MB\n aac82a21e07d Downloading [> ] 48.51kB/3.557MB\n b848944be864 Downloading [=======> ] 27.11MB/171.5MB\n 952cc891a60e Verifying Checksum \n 952cc891a60e Download complete \n 3b72eb79f0f5 Extracting [============================================> ] 4.719MB/5.246MB\n aac82a21e07d Download complete \n 69adc395f642 Downloading [> ] 45.17kB/3.519MB\n d3e7be5328a5 Downloading [> ] 32.77kB/2.427MB\n d3e7be5328a5 Verifying Checksum \n d3e7be5328a5 Download complete \n 69adc395f642 Verifying Checksum \n 69adc395f642 Download complete \n 6feed5b2ec5c Extracting [=================================> ] 7.602MB/11.44MB\n b848944be864 Downloading [===================> ] 66.37MB/171.5MB\n 3b72eb79f0f5 Extracting [=================================================> ] 5.243MB/5.246MB\n c21d27a13af2 Downloading [> ] 63.96kB/6.348MB\n 53a34cf230ea Downloading [> ] 49.15kB/3.396MB\n 3b72eb79f0f5 Extracting [==================================================>] 5.246MB/5.246MB\n 53a34cf230ea Downloading [==================================================>] 3.396MB/3.396MB\n 53a34cf230ea Verifying Checksum \n 53a34cf230ea Download complete \n c21d27a13af2 Verifying Checksum \n c21d27a13af2 Download complete \n 2751382ff006 Downloading [===================> ] 16.38kB/42.82kB\n 2751382ff006 Downloading [==================================================>] 42.82kB/42.82kB\n 2751382ff006 Verifying Checksum \n 2751382ff006 Download complete \n 3c03da64f274 Downloading [> ] 540kB/54.9MB\n 6feed5b2ec5c Extracting [========================================> ] 9.306MB/11.44MB\n b848944be864 Downloading [==============================> ] 105.1MB/171.5MB\n b35ea58ffaca Downloading [==================================================>] 134B/134B\n b35ea58ffaca Verifying Checksum \n b35ea58ffaca Download complete \n 2bcd55e54e2e Downloading [=================================================> ] 3.198kB/3.229kB\n 2bcd55e54e2e Verifying Checksum \n 2bcd55e54e2e Download complete \n e9154a98649b Downloading [==================================================>] 1.026kB/1.026kB\n e9154a98649b Verifying Checksum \n e9154a98649b Download complete \n 3c03da64f274 Downloading [==================================> ] 37.85MB/54.9MB\n dbe8bf0adba7 Downloading [==================================================>] 229B/229B\n dbe8bf0adba7 Verifying Checksum \n dbe8bf0adba7 Download complete \n b848944be864 Downloading [==========================================> ] 144.3MB/171.5MB\n 6feed5b2ec5c Extracting [==============================================> ] 10.75MB/11.44MB\n b4a4674a0291 Downloading [==================================================>] 4.821kB/4.821kB\n 3c03da64f274 Downloading [================================================> ] 52.99MB/54.9MB\n 3c03da64f274 Verifying Checksum \n 3c03da64f274 Download complete \n b848944be864 Downloading [==============================================> ] 160.7MB/171.5MB\n b4a4674a0291 Verifying Checksum \n b4a4674a0291 Download complete \n ab3e69122a26 Downloading [====> ] 16.38kB/171.4kB\n f64b25968e12 Downloading [==================> ] 16.38kB/45.46kB\n f64b25968e12 Download complete \n b848944be864 Downloading [================================================> ] 167.6MB/171.5MB\n ab3e69122a26 Downloading [==================================================>] 171.4kB/171.4kB\n ab3e69122a26 Verifying Checksum \n ab3e69122a26 Download complete \n b848944be864 Verifying Checksum \n b848944be864 Download complete \n 08bd7e2acf12 Downloading [==================================================>] 220B/220B\n 08bd7e2acf12 Verifying Checksum \n 08bd7e2acf12 Download complete \n 6feed5b2ec5c Extracting [===============================================> ] 10.88MB/11.44MB\n 6feed5b2ec5c Extracting [================================================> ] 11.01MB/11.44MB\n 6feed5b2ec5c Extracting [=================================================> ] 11.4MB/11.44MB\n 6feed5b2ec5c Extracting [==================================================>] 11.44MB/11.44MB\n 3b72eb79f0f5 Pull complete \n d1f1d0a4cd2c Extracting [==================================================>] 116B/116B\n d1f1d0a4cd2c Extracting [==================================================>] 116B/116B\n 6feed5b2ec5c Pull complete \n d1f1d0a4cd2c Pull complete \n 60e6ed308d6f Extracting [==================================================>] 327B/327B\n 60e6ed308d6f Extracting [==================================================>] 327B/327B\n 60e6ed308d6f Pull complete \n dd4a227feb44 Extracting [> ] 557.1kB/70.4MB\n ae73d3b72fc6 Extracting [> ] 557.1kB/63.08MB\n dd4a227feb44 Extracting [====> ] 6.685MB/70.4MB\n ae73d3b72fc6 Extracting [======> ] 8.356MB/63.08MB\n dd4a227feb44 Extracting [=========> ] 13.93MB/70.4MB\n ae73d3b72fc6 Extracting [===========> ] 15.04MB/63.08MB\n dd4a227feb44 Extracting [==============> ] 20.61MB/70.4MB\n ae73d3b72fc6 Extracting [==================> ] 23.95MB/63.08MB\n dd4a227feb44 Extracting [==================> ] 26.18MB/70.4MB\n ae73d3b72fc6 Extracting [=========================> ] 31.75MB/63.08MB\n dd4a227feb44 Extracting [======================> ] 31.75MB/70.4MB\n ae73d3b72fc6 Extracting [==============================> ] 38.99MB/63.08MB\n dd4a227feb44 Extracting [=============================> ] 41.22MB/70.4MB\n ae73d3b72fc6 Extracting [====================================> ] 46.24MB/63.08MB\n dd4a227feb44 Extracting [================================> ] 46.24MB/70.4MB\n ae73d3b72fc6 Extracting [==========================================> ] 53.48MB/63.08MB\n ae73d3b72fc6 Extracting [==================================================>] 63.08MB/63.08MB\n dd4a227feb44 Extracting [===================================> ] 49.58MB/70.4MB\n dd4a227feb44 Extracting [======================================> ] 54.03MB/70.4MB\n dd4a227feb44 Extracting [=============================================> ] 63.5MB/70.4MB\n dd4a227feb44 Extracting [=============================================> ] 64.06MB/70.4MB\n dd4a227feb44 Extracting [==============================================> ] 65.73MB/70.4MB\n dd4a227feb44 Extracting [================================================> ] 67.96MB/70.4MB\n dd4a227feb44 Extracting [=================================================> ] 70.19MB/70.4MB\n dd4a227feb44 Extracting [==================================================>] 70.4MB/70.4MB\n ae73d3b72fc6 Pull complete \n 4f4fb700ef54 Extracting [==================================================>] 32B/32B\n 4f4fb700ef54 Extracting [==================================================>] 32B/32B\n 4f4fb700ef54 Pull complete \n dd4a227feb44 Pull complete \n d53e85d07d74 Extracting [==================================================>] 2.465kB/2.465kB\n d53e85d07d74 Extracting [==================================================>] 2.465kB/2.465kB\n 50521443ed25 Extracting [==================================================>] 4.035kB/4.035kB\n d53e85d07d74 Pull complete \n 50521443ed25 Pull complete \n 67227d402a14 Extracting [==================================================>] 8.494kB/8.494kB\n 67227d402a14 Pull complete \n database Pulled \n b848944be864 Extracting [> ] 557.1kB/171.5MB\n b848944be864 Extracting [==> ] 10.03MB/171.5MB\n b848944be864 Extracting [=====> ] 20.05MB/171.5MB\n b848944be864 Extracting [=======> ] 27.3MB/171.5MB\n b848944be864 Extracting [=========> ] 33.42MB/171.5MB\n b848944be864 Extracting [===========> ] 40.67MB/171.5MB\n b848944be864 Extracting [=============> ] 45.12MB/171.5MB\n b848944be864 Extracting [==============> ] 48.46MB/171.5MB\n b848944be864 Extracting [==============> ] 50.69MB/171.5MB\n b848944be864 Extracting [=================> ] 60.16MB/171.5MB\n b848944be864 Extracting [====================> ] 69.07MB/171.5MB\n b848944be864 Extracting [=======================> ] 81.33MB/171.5MB\n b848944be864 Extracting [==========================> ] 91.36MB/171.5MB\n b848944be864 Extracting [============================> ] 96.37MB/171.5MB\n b848944be864 Extracting [=============================> ] 100.3MB/171.5MB\n b848944be864 Extracting [=============================> ] 100.8MB/171.5MB\n b848944be864 Extracting [==============================> ] 103.6MB/171.5MB\n b848944be864 Extracting [===============================> ] 109.7MB/171.5MB\n b848944be864 Extracting [===================================> ] 122MB/171.5MB\n b848944be864 Extracting [===================================> ] 123.1MB/171.5MB\n b848944be864 Extracting [====================================> ] 124.8MB/171.5MB\n b848944be864 Extracting [=====================================> ] 127.6MB/171.5MB\n b848944be864 Extracting [=====================================> ] 128.1MB/171.5MB\n b848944be864 Extracting [======================================> ] 133.7MB/171.5MB\n b848944be864 Extracting [===========================================> ] 148.2MB/171.5MB\n b848944be864 Extracting [===============================================> ] 162.7MB/171.5MB\n b848944be864 Extracting [==================================================>] 171.5MB/171.5MB\n b848944be864 Pull complete \n 9ebe4816f1dd Extracting [==> ] 32.77kB/783.6kB\n 9ebe4816f1dd Extracting [==================================================>] 783.6kB/783.6kB\n 9ebe4816f1dd Extracting [==================================================>] 783.6kB/783.6kB\n 9ebe4816f1dd Pull complete \n 23b9d66badbc Extracting [==================================================>] 1.294kB/1.294kB\n 23b9d66badbc Extracting [==================================================>] 1.294kB/1.294kB\n 23b9d66badbc Pull complete \n 952cc891a60e Extracting [> ] 65.54kB/3.557MB\n 952cc891a60e Extracting [==================================================>] 3.557MB/3.557MB\n 952cc891a60e Pull complete \n aac82a21e07d Extracting [> ] 65.54kB/3.557MB\n aac82a21e07d Extracting [==================================================>] 3.557MB/3.557MB\n aac82a21e07d Pull complete \n 69adc395f642 Extracting [> ] 65.54kB/3.519MB\n 69adc395f642 Extracting [==================================================>] 3.519MB/3.519MB\n 69adc395f642 Extracting [==================================================>] 3.519MB/3.519MB\n 69adc395f642 Pull complete \n d3e7be5328a5 Extracting [> ] 32.77kB/2.427MB\n d3e7be5328a5 Extracting [==================================================>] 2.427MB/2.427MB\n d3e7be5328a5 Pull complete \n c21d27a13af2 Extracting [> ] 65.54kB/6.348MB\n c21d27a13af2 Extracting [==================================================>] 6.348MB/6.348MB\n c21d27a13af2 Pull complete \n 53a34cf230ea Extracting [> ] 65.54kB/3.396MB\n 53a34cf230ea Extracting [==================================================>] 3.396MB/3.396MB\n 53a34cf230ea Extracting [==================================================>] 3.396MB/3.396MB\n 53a34cf230ea Pull complete \n 3c03da64f274 Extracting [> ] 557.1kB/54.9MB\n 3c03da64f274 Extracting [=========================> ] 27.85MB/54.9MB\n 3c03da64f274 Extracting [==================================================>] 54.9MB/54.9MB\n 3c03da64f274 Pull complete \n 2751382ff006 Extracting [======================================> ] 32.77kB/42.82kB\n 2751382ff006 Extracting [==================================================>] 42.82kB/42.82kB\n 2751382ff006 Pull complete \n b35ea58ffaca Extracting [==================================================>] 134B/134B\n b35ea58ffaca Extracting [==================================================>] 134B/134B\n b35ea58ffaca Pull complete \n 2bcd55e54e2e Extracting [==================================================>] 3.229kB/3.229kB\n 2bcd55e54e2e Extracting [==================================================>] 3.229kB/3.229kB\n 2bcd55e54e2e Pull complete \n e9154a98649b Extracting [==================================================>] 1.026kB/1.026kB\n e9154a98649b Extracting [==================================================>] 1.026kB/1.026kB\n e9154a98649b Pull complete \n dbe8bf0adba7 Extracting [==================================================>] 229B/229B\n dbe8bf0adba7 Extracting [==================================================>] 229B/229B\n dbe8bf0adba7 Pull complete \n b4a4674a0291 Extracting [==================================================>] 4.821kB/4.821kB\n b4a4674a0291 Extracting [==================================================>] 4.821kB/4.821kB\n b4a4674a0291 Pull complete \n ab3e69122a26 Extracting [=========> ] 32.77kB/171.4kB\n ab3e69122a26 Extracting [==================================================>] 171.4kB/171.4kB\n ab3e69122a26 Extracting [==================================================>] 171.4kB/171.4kB\n ab3e69122a26 Pull complete \n f64b25968e12 Extracting [====================================> ] 32.77kB/45.46kB\n f64b25968e12 Extracting [==================================================>] 45.46kB/45.46kB\n f64b25968e12 Pull complete \n 08bd7e2acf12 Extracting [==================================================>] 220B/220B\n 08bd7e2acf12 Extracting [==================================================>] 220B/220B\n 08bd7e2acf12 Pull complete \n server Pulled \n#1 [internal] load local bake definitions\n#1 reading from stdin 592B done\n#1 DONE 0.0s\n\n#2 [internal] load build definition from Dockerfile.backup\n#2 transferring dockerfile: 731B done\n#2 WARN: InvalidDefaultArgInFrom: Default value for ARG ${BACKUP_IMAGE} results in empty or invalid base image name (line 2)\n#2 DONE 0.0s\n\n#3 [auth] itzg/mc-backup:pull token for registry-1.docker.io\n#3 DONE 0.0s\n\n#4 [internal] load metadata for docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\n#4 DONE 0.4s\n\n#5 [1/2] FROM docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\n#5 resolve docker.io/itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 done\n#5 sha256:db55201be050ce35939491a7fcd73384337adf61ea25f36d8dd1a0dc435158db 8.40MB / 8.40MB 0.1s\n#5 sha256:67af7cc0b97936effa07ab7b24bc957e3b7562f9bbe30ff0ebc731ad1fd0a00a 3.14kB / 3.14kB done\n#5 sha256:0e7e1b6bfd91ec67d295c42c825b88e54d83e58d2fef5c4218ea3033fd24067b 5.00kB / 5.00kB done\n#5 sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 2.38kB / 2.38kB done\n#5 sha256:2f1c6308cf870da7ecb2b34237f7b3d8afc6e8204b8854f6a80c6fdd86031ba1 146B / 146B 0.0s done\n#5 sha256:87010e4033ef983674ded4ab649d4f0f04d7f0702a36f3c9f1b507c23d26bf3f 6.35MB / 6.35MB 0.1s\n#5 sha256:1722eeb3dd13ba9f9cf5088324ba31b728697fb322126c6a06119f02a814fb14 2.43MB / 2.43MB 0.1s\n#5 sha256:db55201be050ce35939491a7fcd73384337adf61ea25f36d8dd1a0dc435158db 8.40MB / 8.40MB 0.2s done\n#5 sha256:87010e4033ef983674ded4ab649d4f0f04d7f0702a36f3c9f1b507c23d26bf3f 6.35MB / 6.35MB 0.2s done\n#5 sha256:1722eeb3dd13ba9f9cf5088324ba31b728697fb322126c6a06119f02a814fb14 2.43MB / 2.43MB 0.2s done\n#5 extracting sha256:db55201be050ce35939491a7fcd73384337adf61ea25f36d8dd1a0dc435158db\n#5 sha256:f1b5fd2badbd1ebc8bd78039587b08514ae6e3bfa1e0306eb9596a85584eee98 7.34MB / 11.24MB 0.2s\n#5 sha256:2c78adffe8a7e6588bc2ffa36b08aa32b6bb84aa6c58b287be6b84067a810cea 147B / 147B 0.2s done\n#5 sha256:786e45e8ca43ce65183867a788dba8ca191d91938a5d6566f4501f8b48014a2c 1.21MB / 1.21MB 0.2s done\n#5 sha256:97528720ab13819a52072d2f420584e248378f1ac1a8c9a3e18db4d2e2f22540 151B / 151B 0.2s done\n#5 sha256:25069bfd3042c08cf604e15e5301f842f55334a592abc847d68e2556d106fc31 0B / 23.71MB 0.2s\n#5 sha256:5207b5f7343469fcb533b4aa0c57ba58d69544f5ee6d2c01b05c396f7355b476 159B / 159B 0.2s done\n#5 sha256:d27d7298f4c7166e137ddc6c2dff327d3da84ffa79e4b917d5531b797da92dd8 0B / 148B 0.2s\n#5 extracting sha256:db55201be050ce35939491a7fcd73384337adf61ea25f36d8dd1a0dc435158db 0.2s done\n#5 sha256:f1b5fd2badbd1ebc8bd78039587b08514ae6e3bfa1e0306eb9596a85584eee98 11.24MB / 11.24MB 0.3s done\n#5 sha256:25069bfd3042c08cf604e15e5301f842f55334a592abc847d68e2556d106fc31 19.92MB / 23.71MB 0.3s\n#5 sha256:d27d7298f4c7166e137ddc6c2dff327d3da84ffa79e4b917d5531b797da92dd8 148B / 148B 0.2s done\n#5 sha256:0f3cb0f1efd21258b8180dea5454d2c5b3aa3afbe7f4c4179284a87ae0ccb85e 1.31kB / 1.31kB 0.3s done\n#5 sha256:ebfa261bc7840cd306d627fb15a4c2d1682b62a0fd8881b75a4c81514f57eeea 7.25kB / 7.25kB 0.3s done\n#5 sha256:005ce725ec492ebdac5850cab1a6e99efce8b2111b52d0aeea493bae01af3a3d 97B / 97B 0.3s done\n#5 sha256:25069bfd3042c08cf604e15e5301f842f55334a592abc847d68e2556d106fc31 23.71MB / 23.71MB 0.4s done\n#5 extracting sha256:1722eeb3dd13ba9f9cf5088324ba31b728697fb322126c6a06119f02a814fb14 0.0s done\n#5 extracting sha256:2f1c6308cf870da7ecb2b34237f7b3d8afc6e8204b8854f6a80c6fdd86031ba1\n#5 extracting sha256:2f1c6308cf870da7ecb2b34237f7b3d8afc6e8204b8854f6a80c6fdd86031ba1 done\n#5 extracting sha256:87010e4033ef983674ded4ab649d4f0f04d7f0702a36f3c9f1b507c23d26bf3f 0.1s done\n#5 extracting sha256:97528720ab13819a52072d2f420584e248378f1ac1a8c9a3e18db4d2e2f22540\n#5 extracting sha256:97528720ab13819a52072d2f420584e248378f1ac1a8c9a3e18db4d2e2f22540 done\n#5 extracting sha256:f1b5fd2badbd1ebc8bd78039587b08514ae6e3bfa1e0306eb9596a85584eee98 0.1s\n#5 extracting sha256:f1b5fd2badbd1ebc8bd78039587b08514ae6e3bfa1e0306eb9596a85584eee98 0.1s done\n#5 extracting sha256:2c78adffe8a7e6588bc2ffa36b08aa32b6bb84aa6c58b287be6b84067a810cea\n#5 extracting sha256:2c78adffe8a7e6588bc2ffa36b08aa32b6bb84aa6c58b287be6b84067a810cea done\n#5 extracting sha256:786e45e8ca43ce65183867a788dba8ca191d91938a5d6566f4501f8b48014a2c 0.0s done\n#5 extracting sha256:5207b5f7343469fcb533b4aa0c57ba58d69544f5ee6d2c01b05c396f7355b476 done\n#5 extracting sha256:25069bfd3042c08cf604e15e5301f842f55334a592abc847d68e2556d106fc31 0.1s\n#5 extracting sha256:25069bfd3042c08cf604e15e5301f842f55334a592abc847d68e2556d106fc31 0.2s done\n#5 extracting sha256:d27d7298f4c7166e137ddc6c2dff327d3da84ffa79e4b917d5531b797da92dd8\n#5 extracting sha256:d27d7298f4c7166e137ddc6c2dff327d3da84ffa79e4b917d5531b797da92dd8 done\n#5 extracting sha256:ebfa261bc7840cd306d627fb15a4c2d1682b62a0fd8881b75a4c81514f57eeea done\n#5 extracting sha256:0f3cb0f1efd21258b8180dea5454d2c5b3aa3afbe7f4c4179284a87ae0ccb85e done\n#5 extracting sha256:005ce725ec492ebdac5850cab1a6e99efce8b2111b52d0aeea493bae01af3a3d done\n#5 DONE 1.8s\n\n#6 [2/2] RUN script=/opt/backup-loop.sh; expected=' retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on'; test \"$(grep -Fxc \"$expected\" \"$script\")\" -eq 2 && awk 'previous == \" log INFO \\\"waiting for rcon readiness...\\\"\" { if ($0 != \" retry ${RCON_RETRIES} ${RCON_RETRY_INTERVAL} rcon-cli save-on\") exit 1; sub(/save-on$/, \"list\"); changed++ } { print; previous=$0 } END { if (changed != 1) exit 1 }' \"$script\" > /tmp/backup-loop.patched && mv /tmp/backup-loop.patched \"$script\" && chmod +x \"$script\"\n#6 DONE 0.1s\n\n#7 exporting to image\n#7 exporting layers\n#7 exporting layers 0.2s done\n#7 writing image sha256:6b73c27e6ec57061dd6e9058dd55f96cd784329667b550d504977d9e0fef70a2 done\n#7 naming to docker.io/library/minecraft-template-backup:3ff6a1e8fa15ca4e-1c6ea31fbca3 done\n#7 DONE 0.2s\n\n#8 resolving provenance for metadata file\n#8 DONE 0.0s\n backup Built\n Network minecraft-60552461_default Creating\n Network minecraft-60552461_default Created\n Volume \"minecraft-60552461_database\" Creating\n Volume \"minecraft-60552461_database\" Created\n Container minecraft-60552461-web-1 Creating\n Container minecraft-60552461-server-1 Creating\n Container minecraft-60552461-database-1 Creating\n Container minecraft-60552461-database-1 Created\n Container minecraft-60552461-web-1 Created\n Container minecraft-60552461-server-1 Created\n Container minecraft-60552461-backup-1 Creating\n Container minecraft-60552461-backup-1 Created\n Container minecraft-60552461-database-1 Starting\n Container minecraft-60552461-server-1 Starting\n Container minecraft-60552461-web-1 Starting\n Container minecraft-60552461-database-1 Started\n Container minecraft-60552461-server-1 Started\n Container minecraft-60552461-server-1 Waiting\n Container minecraft-60552461-web-1 Started\n Container minecraft-60552461-server-1 Healthy\n Container minecraft-60552461-backup-1 Starting\n Container minecraft-60552461-backup-1 Started\n Container minecraft-60552461-server-1 Waiting\n Container minecraft-60552461-backup-1 Waiting\n Container minecraft-60552461-database-1 Waiting\n Container minecraft-60552461-web-1 Waiting\n Container minecraft-60552461-backup-1 Healthy\n Container minecraft-60552461-server-1 Healthy\n Container minecraft-60552461-database-1 Healthy\n Container minecraft-60552461-web-1 Healthy\nThere are 0 of a max of 20 players online: \n{\"distribution\": \"paper\", \"network\": false, \"setup\": \"unchanged\"}\n{\"architecture\": \"amd64\", \"compose\": \"2.38.2\", \"configuration\": \"valid\", \"docker\": \"28.0.4\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:42:39.655240+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation l848fbi_/stable paper/scripts/status", "--port", "58803"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:42:39.696356+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 2 1001 1001 4096 Oct 1 07:41 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | \u001b[39m[mc-image-helper] 07:42:13.839 INFO : Downloaded /data/paper-26.2-129.jar\nserver-1 | \u001b[0;39m[init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:42:16.763 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Applying patches\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:42:20.407491513Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:42:20 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nserver-1 | [07:42:20 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:42:20 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:42:20 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:42:23 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:42:23 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:42:24 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 403.5ms\nserver-1 | [07:42:24 INFO]: Found new data pack paper, loading it automatically\nserver-1 | [07:42:24 INFO]: No existing world data, creating new world\nserver-1 | [07:42:25 INFO]: Loaded 1585 recipes\nserver-1 | [07:42:25 INFO]: Loaded 1688 advancements\nserver-1 | [07:42:25 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:42:25 INFO]: Loading properties\nserver-1 | [07:42:25 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:42:25 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:42:25 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:42:25 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:42:25 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:42:26 INFO]: Default game type: SURVIVAL\nserver-1 | [07:42:26 INFO]: Generating keypair\nserver-1 | [07:42:26 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:42:26 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:42:26 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:42:26 INFO]: Preparing level \"world\"\nserver-1 | [07:42:26 INFO]: Selecting spawn point for level 'minecraft:overworld'...\nserver-1 | [07:42:32 INFO]: Selecting spawn point for level 'minecraft:the_nether'...\nserver-1 | [07:42:33 INFO]: Selecting spawn point for level 'minecraft:the_end'...\nserver-1 | [07:42:33 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:42:33 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:33 INFO]: Prepared spawn area in 6912 ms\nserver-1 | [07:42:33 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:42:33 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:33 INFO]: Prepared spawn area in 776 ms\nserver-1 | [07:42:33 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:42:33 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:33 INFO]: Prepared spawn area in 232 ms\nserver-1 | [07:42:33 INFO]: Done preparing level \"world\" (7.150s)\nserver-1 | [07:42:33 INFO]: [spark] Starting background profiler...\nserver-1 | [07:42:33 INFO]: Starting remote control listener\nserver-1 | [07:42:33 INFO]: Thread RCON Listener started\nserver-1 | [07:42:33 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:42:33 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:42:33 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:42:33 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:42:33 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:42:33 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:42:33 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:42:33 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:42:33 INFO]: Running delayed init tasks\nserver-1 | [07:42:33 INFO]: Done (13.608s)! For help, type \"help\"\nserver-1 | [07:42:33 INFO]: *************************************************************************************\nserver-1 | [07:42:33 INFO]: This is the first time you're starting this server.\nserver-1 | [07:42:33 INFO]: It's recommended you read our 'Getting Started' documentation for guidance.\nserver-1 | [07:42:33 INFO]: View this and more helpful information here: https://docs.papermc.io/paper/next-steps\nserver-1 | [07:42:33 INFO]: *************************************************************************************\nserver-1 | [07:42:39 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:42:39 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:42:39.925369+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sha256sum", "/data/paper-26.2-129.jar"], "exit": 0, "output": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 /data/paper-26.2-129.jar\n"} +{"timestamp": "2026-10-01T07:42:40.211505+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:42:40.449262+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation l848fbi_/stable paper/tests/login.py", "--port", "58803", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:42:40.498000+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:42:40.731892+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "rcon-cli", "--password", "wrong", "list"], "exit": 1, "output": "2026/10/01 07:42:40 Failed to connect to RCON serverrcon: authentication failed\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-60552461', '--project-directory', '/tmp/minecraft validation l848fbi_/stable paper', '--env-file', '/tmp/minecraft validation l848fbi_/stable paper/versions.env', '--env-file', '/tmp/minecraft validation l848fbi_/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation l848fbi_/stable paper/compose.yaml', '-f', '/tmp/minecraft validation l848fbi_/stable paper/.state/compose.yaml', 'exec', '-T', 'server', 'rcon-cli', '--password', 'wrong', 'list']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:42:40.959741+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "command", "scoreboard objectives add proof dummy"], "exit": 0, "output": "Created new objective [proof]\n"} +{"timestamp": "2026-10-01T07:42:41.244789+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 42"], "exit": 0, "output": "Set [proof] for Proof to 42\n"} +{"timestamp": "2026-10-01T07:42:41.482272+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "command", "save-all flush"], "exit": 0, "output": "Saving the game (this may take a moment!)Saved the game\n"} +{"timestamp": "2026-10-01T07:42:41.717530+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-60552461-server-1 Recreate\n Container minecraft-60552461-server-1 Recreated\n Container minecraft-60552461-server-1 Starting\n Container minecraft-60552461-server-1 Started\n Container minecraft-60552461-server-1 Waiting\n Container minecraft-60552461-server-1 Healthy\n"} +{"timestamp": "2026-10-01T07:42:59.041709+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:42:59.269982+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "backup"], "exit": 0, "output": "time=\"2026-10-01T07:42:59Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:43:00+0000 INFO Repository already initialized\n2026-10-01T07:43:00+0000 INFO Checking for stale locks\n2026-10-01T07:43:00+0000 INFO Checking repo integrity\n2026-10-01T07:43:01+0000 INFO waiting initial delay of 0...\n2026-10-01T07:43:01+0000 INFO waiting for rcon readiness...\n2026-10-01T07:43:01+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:43:01+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:43:01+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:43:01+0000 INFO Command executed successfully sync\n2026-10-01T07:43:01+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:43:01+0000 INFO using parent snapshot d1b0ce57\n2026-10-01T07:43:01+0000 INFO \n2026-10-01T07:43:01+0000 INFO Files: 0 new, 43 changed, 139 unmodified\n2026-10-01T07:43:01+0000 INFO Dirs: 0 new, 23 changed, 286 unmodified\n2026-10-01T07:43:01+0000 INFO Added to the repository: 35.969 KiB (15.914 KiB stored)\n2026-10-01T07:43:01+0000 INFO \n2026-10-01T07:43:01+0000 INFO processed 182 files, 174.586 MiB in 0:00\n2026-10-01T07:43:01+0000 INFO snapshot 1318dcad saved\n2026-10-01T07:43:01+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:43:02.554921+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "snapshots"], "exit": 0, "output": "[{\"time\":\"2026-10-01T07:42:41.254352831Z\",\"tree\":\"32a4547cc33e5a95dab1e99fa8aa2f43251176b0db95e1c2a15358bb6378421d\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:42:41.254352831Z\",\"backup_end\":\"2026-10-01T07:42:43.38691296Z\",\"files_new\":182,\"files_changed\":0,\"files_unmodified\":0,\"dirs_new\":309,\"dirs_changed\":0,\"dirs_unmodified\":0,\"data_blobs\":266,\"tree_blobs\":308,\"data_added\":183113711,\"data_added_packed\":167997930,\"total_files_processed\":182,\"total_bytes_processed\":183067137},\"id\":\"d1b0ce57cff5850246077a93138f288a38c785c2b0b3ff77a79722d92184af85\",\"short_id\":\"d1b0ce57\"},{\"time\":\"2026-10-01T07:43:01.247334907Z\",\"parent\":\"d1b0ce57cff5850246077a93138f288a38c785c2b0b3ff77a79722d92184af85\",\"tree\":\"6a876f8a36472b63e9491ae28fa2f88670fa1d66d99eaf94c2d63add99bfabfd\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:43:01.247334907Z\",\"backup_end\":\"2026-10-01T07:43:01.87550932Z\",\"files_new\":0,\"files_changed\":43,\"files_unmodified\":139,\"dirs_new\":0,\"dirs_changed\":23,\"dirs_unmodified\":286,\"data_blobs\":9,\"tree_blobs\":23,\"data_added\":36832,\"data_added_packed\":16296,\"total_files_processed\":182,\"total_bytes_processed\":183067145},\"id\":\"1318dcadc208c5948cfda498a73a41a56a08bc4efd4c8ce37a61ab3eabb64eaa\",\"short_id\":\"1318dcad\"}]\n"} +{"timestamp": "2026-10-01T07:43:03.526504+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server", "backup"], "exit": 0, "output": "backup-1 | time=\"2026-10-01T07:42:38Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:42:38+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO created restic repository 282d65c279 at /backups/repository\nbackup-1 | 2026-10-01T07:42:41+0000 INFO \nbackup-1 | 2026-10-01T07:42:41+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:42:41+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:42:41+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:42:41+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:42:41+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:42:43+0000 INFO \nbackup-1 | 2026-10-01T07:42:43+0000 INFO Files: 182 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:42:43+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:42:43+0000 INFO Added to the repository: 174.631 MiB (160.215 MiB stored)\nbackup-1 | 2026-10-01T07:42:43+0000 INFO \nbackup-1 | 2026-10-01T07:42:43+0000 INFO processed 182 files, 174.586 MiB in 0:02\nbackup-1 | 2026-10-01T07:42:43+0000 INFO snapshot d1b0ce57 saved\nbackup-1 | 2026-10-01T07:42:43+0000 ERROR Unable to execute rcon-cli save-on - try 0/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:43+0000 ERROR Failure reason: 2026/10/01 07:42:43 Failed to connect to RCON serverdial tcp: lookup server on 127.0.0.11:53: server misbehaving\t\nbackup-1 | 2026-10-01T07:42:48+0000 ERROR Unable to execute rcon-cli save-on - try 1/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:48+0000 ERROR Failure reason: 2026/10/01 07:42:48 Failed to connect to RCON serverdial tcp 172.18.0.3:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:42:53+0000 ERROR Unable to execute rcon-cli save-on - try 2/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:53+0000 ERROR Failure reason: 2026/10/01 07:42:53 Failed to connect to RCON serverdial tcp 172.18.0.3:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:42:58+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:42:59+0000 INFO sleeping 6h...\nserver-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 11 1001 1001 4096 Oct 1 07:42 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:42:48.533772061Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:42:48 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nserver-1 | [07:42:48 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:42:48 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:42:48 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:42:51 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:42:51 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:42:52 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 542.9ms\nserver-1 | [07:42:53 INFO]: Loaded 1585 recipes\nserver-1 | [07:42:53 INFO]: Loaded 1688 advancements\nserver-1 | [07:42:53 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:42:53 INFO]: Loading properties\nserver-1 | [07:42:53 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:42:53 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:42:53 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:42:53 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:42:54 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:42:54 INFO]: Default game type: SURVIVAL\nserver-1 | [07:42:54 INFO]: Generating keypair\nserver-1 | [07:42:54 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:42:54 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:42:54 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:42:54 INFO]: Preparing level \"world\"\nserver-1 | [07:42:54 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:42:54 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:54 INFO]: Prepared spawn area in 2 ms\nserver-1 | [07:42:54 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:42:54 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:42:54 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:42:54 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:42:54 INFO]: Done preparing level \"world\" (0.344s)\nserver-1 | [07:42:54 INFO]: [spark] Starting background profiler...\nserver-1 | [07:42:54 INFO]: Starting remote control listener\nserver-1 | [07:42:54 INFO]: Thread RCON Listener started\nserver-1 | [07:42:54 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:42:54 INFO]: Running delayed init tasks\nserver-1 | [07:42:54 INFO]: Done (6.886s)! For help, type \"help\"\nserver-1 | [07:42:58 INFO]: Thread RCON Client /172.18.0.5 started\nserver-1 | [07:42:58 INFO]: Thread RCON Client /172.18.0.5 shutting down\nserver-1 | [07:42:59 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:42:59 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:01 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:01 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:01 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 shutting down\n"} +{"timestamp": "2026-10-01T07:43:03.746869+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "PRE_BACKUP_SCRIPT=exit 73", "backup"], "exit": 1, "output": "time=\"2026-10-01T07:43:04Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:43:04+0000 INFO Repository already initialized\n2026-10-01T07:43:04+0000 INFO Checking for stale locks\n2026-10-01T07:43:05+0000 INFO Checking repo integrity\n2026-10-01T07:43:05+0000 INFO waiting initial delay of 0...\n2026-10-01T07:43:05+0000 INFO waiting for rcon readiness...\n2026-10-01T07:43:05+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:43:05+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:43:05+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:43:05+0000 INFO Command executed successfully sync\n2026-10-01T07:43:05+0000 INFO Command executed successfully rcon-cli save-on\n\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-60552461', '--project-directory', '/tmp/minecraft validation l848fbi_/stable paper', '--env-file', '/tmp/minecraft validation l848fbi_/stable paper/versions.env', '--env-file', '/tmp/minecraft validation l848fbi_/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation l848fbi_/stable paper/compose.yaml', '-f', '/tmp/minecraft validation l848fbi_/stable paper/.state/compose.yaml', 'run', '--rm', '--no-deps', '-e', 'BACKUP_INTERVAL=0', '-e', 'INITIAL_DELAY=0', '-e', 'PRE_BACKUP_SCRIPT=exit 73', 'backup']' returned non-zero exit status 73.\"}\n"} +{"timestamp": "2026-10-01T07:43:05.770220+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:43:05.990317+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "backup"], "exit": 1, "output": "{\"error\": \"Backup reported an error; inspect service logs.\"}\ntime=\"2026-10-01T07:43:06Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:43:06+0000 INFO Repository already initialized\n2026-10-01T07:43:06+0000 INFO Checking for stale locks\n2026-10-01T07:43:07+0000 INFO Checking repo integrity\n2026-10-01T07:43:07+0000 INFO waiting initial delay of 0...\n2026-10-01T07:43:07+0000 INFO waiting for rcon readiness...\n2026-10-01T07:43:07+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:43:07+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:43:07+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:43:07+0000 INFO Command executed successfully sync\n2026-10-01T07:43:07+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:43:07+0000 INFO invalid argument \"invalid-proof\" for \"--limit-upload\" flag: strconv.ParseInt: parsing \"invalid-proof\": invalid syntax\n2026-10-01T07:43:07+0000 ERROR Backup failed with exit code 1\n2026-10-01T07:43:07+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:43:08.616242+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:43:12.744393+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "command", "save-off"], "exit": 0, "output": "Saving is already turned off\n"} +{"timestamp": "2026-10-01T07:43:15.580225+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "-e", "PRE_BACKUP_SCRIPT=touch /backups/first-locked; timeout 60 sh -c 'until test -f /backups/release-first; do sleep 0.2; done'", "backup"], "exit": 0, "output": "time=\"2026-10-01T07:43:09Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:43:09+0000 INFO Repository already initialized\n2026-10-01T07:43:09+0000 INFO Checking for stale locks\n2026-10-01T07:43:10+0000 INFO Checking repo integrity\n2026-10-01T07:43:10+0000 INFO waiting initial delay of 0...\n2026-10-01T07:43:10+0000 INFO waiting for rcon readiness...\n2026-10-01T07:43:10+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:43:10+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:43:10+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:43:10+0000 INFO Command executed successfully sync\n2026-10-01T07:43:12+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:43:13+0000 INFO using parent snapshot 1318dcad\n2026-10-01T07:43:13+0000 INFO \n2026-10-01T07:43:13+0000 INFO Files: 0 new, 15 changed, 167 unmodified\n2026-10-01T07:43:13+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:43:13+0000 INFO Added to the repository: 31.114 KiB (12.898 KiB stored)\n2026-10-01T07:43:13+0000 INFO \n2026-10-01T07:43:13+0000 INFO processed 182 files, 174.586 MiB in 0:00\n2026-10-01T07:43:13+0000 INFO snapshot 2d1b7ff3 saved\n2026-10-01T07:43:13+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:43:14+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:43:14+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:43:14+0000 INFO keep 2 snapshots:\n2026-10-01T07:43:14+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:43:14+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:43:14+0000 INFO d1b0ce57 2026-10-01 07:42:41 minecraft mc_backups,server oldest daily snapshot /data 174.586 MiB\n2026-10-01T07:43:14+0000 INFO oldest weekly snapshot\n2026-10-01T07:43:14+0000 INFO oldest monthly snapshot\n2026-10-01T07:43:14+0000 INFO 2d1b7ff3 2026-10-01 07:43:12 minecraft mc_backups,server daily snapshot /data 174.586 MiB\n2026-10-01T07:43:14+0000 INFO weekly snapshot\n2026-10-01T07:43:14+0000 INFO monthly snapshot\n2026-10-01T07:43:14+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:43:14+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:43:14+0000 INFO 2 snapshots\n2026-10-01T07:43:14+0000 INFO \n2026-10-01T07:43:14+0000 INFO remove 1 snapshots:\n2026-10-01T07:43:14+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:43:14+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:43:14+0000 INFO 1318dcad 2026-10-01 07:43:01 minecraft mc_backups,server /data 174.586 MiB\n2026-10-01T07:43:14+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:43:14+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:43:14+0000 INFO 1 snapshots\n2026-10-01T07:43:14+0000 INFO \n2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:43:14+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:43:14+0000 INFO loading all snapshots...\n2026-10-01T07:43:14+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:43:14+0000 INFO searching used packs...\n2026-10-01T07:43:14+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 15 / 15 packs processed\n2026-10-01T07:43:14+0000 INFO \n2026-10-01T07:43:14+0000 INFO to repack: 32 blobs / 15.984 KiB\n2026-10-01T07:43:14+0000 INFO this removes: 24 blobs / 11.746 KiB\n2026-10-01T07:43:14+0000 INFO to delete: 0 blobs / 0 B\n2026-10-01T07:43:14+0000 INFO total prune: 24 blobs / 11.746 KiB\n2026-10-01T07:43:14+0000 INFO remaining: 607 blobs / 160.207 MiB\n2026-10-01T07:43:14+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:43:14+0000 INFO \n2026-10-01T07:43:14+0000 INFO repacking packs\n2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 2 / 2 packs repacked\n2026-10-01T07:43:14+0000 INFO rebuilding index\n2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 4 / 4 indexes processed\n2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted\n2026-10-01T07:43:14+0000 INFO removing 2 old packs\n2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:43:14+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:43:21.256276+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "backup"], "exit": 0, "output": "time=\"2026-10-01T07:43:11Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:43:11+0000 INFO Repository already initialized\n2026-10-01T07:43:11+0000 INFO Checking for stale locks\n2026-10-01T07:43:12+0000 INFO Checking repo integrity\n2026-10-01T07:43:12+0000 INFO waiting initial delay of 0...\n2026-10-01T07:43:12+0000 INFO waiting for rcon readiness...\n2026-10-01T07:43:12+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:43:13+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:43:13+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:43:13+0000 INFO Command executed successfully sync\n2026-10-01T07:43:13+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:43:14+0000 INFO repo already locked, waiting up to 1m0s for the lock\n2026-10-01T07:43:19+0000 INFO using parent snapshot 2d1b7ff3\n2026-10-01T07:43:19+0000 INFO \n2026-10-01T07:43:19+0000 INFO Files: 0 new, 12 changed, 170 unmodified\n2026-10-01T07:43:19+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:43:19+0000 INFO Added to the repository: 30.601 KiB (12.210 KiB stored)\n2026-10-01T07:43:19+0000 INFO \n2026-10-01T07:43:19+0000 INFO processed 182 files, 174.586 MiB in 0:05\n2026-10-01T07:43:19+0000 INFO snapshot ff91fb20 saved\n2026-10-01T07:43:19+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:43:19+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:43:20+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:43:20+0000 INFO keep 2 snapshots:\n2026-10-01T07:43:20+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:43:20+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:43:20+0000 INFO d1b0ce57 2026-10-01 07:42:41 minecraft mc_backups,server oldest daily snapshot /data 174.586 MiB\n2026-10-01T07:43:20+0000 INFO oldest weekly snapshot\n2026-10-01T07:43:20+0000 INFO oldest monthly snapshot\n2026-10-01T07:43:20+0000 INFO ff91fb20 2026-10-01 07:43:13 minecraft mc_backups,server daily snapshot /data 174.586 MiB\n2026-10-01T07:43:20+0000 INFO weekly snapshot\n2026-10-01T07:43:20+0000 INFO monthly snapshot\n2026-10-01T07:43:20+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:43:20+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:43:20+0000 INFO 2 snapshots\n2026-10-01T07:43:20+0000 INFO \n2026-10-01T07:43:20+0000 INFO remove 1 snapshots:\n2026-10-01T07:43:20+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:43:20+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:43:20+0000 INFO 2d1b7ff3 2026-10-01 07:43:12 minecraft mc_backups,server /data 174.586 MiB\n2026-10-01T07:43:20+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:43:20+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:43:20+0000 INFO 1 snapshots\n2026-10-01T07:43:20+0000 INFO \n2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:43:20+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:43:20+0000 INFO loading all snapshots...\n2026-10-01T07:43:20+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:43:20+0000 INFO searching used packs...\n2026-10-01T07:43:20+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 17 / 17 packs processed\n2026-10-01T07:43:20+0000 INFO \n2026-10-01T07:43:20+0000 INFO to repack: 8 blobs / 2.318 KiB\n2026-10-01T07:43:20+0000 INFO this removes: 6 blobs / 1.364 KiB\n2026-10-01T07:43:20+0000 INFO to delete: 17 blobs / 9.935 KiB\n2026-10-01T07:43:20+0000 INFO total prune: 23 blobs / 11.299 KiB\n2026-10-01T07:43:20+0000 INFO remaining: 607 blobs / 160.207 MiB\n2026-10-01T07:43:20+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:43:20+0000 INFO \n2026-10-01T07:43:20+0000 INFO repacking packs\n2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 1 / 1 packs repacked\n2026-10-01T07:43:20+0000 INFO rebuilding index\n2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 3 / 3 indexes processed\n2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted\n2026-10-01T07:43:20+0000 INFO removing 2 old packs\n2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:43:20+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:43:21.256664+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:43:21.475656+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 99"], "exit": 0, "output": "Set [proof] for Proof to 99\n"} +{"timestamp": "2026-10-01T07:43:21.701641+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "restore", "/tmp/minecraft validation l848fbi_/restored snapshot"], "exit": 0, "output": "restoring snapshot ff91fb20 of [/data] at 2026-10-01 07:43:13.67070111 +0000 UTC by @minecraft to /restore\nSummary: Restored 491 files/dirs (174.586 MiB) in 0:00\n{\"restored\": \"/tmp/minecraft validation l848fbi_/restored snapshot/data\", \"snapshot\": \"latest\"}\n"} +{"timestamp": "2026-10-01T07:43:23.730130+00:00", "cwd": "/tmp/minecraft validation l848fbi_/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/restored server/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "50921", "--web-port", "41595", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:43:23.840886+00:00", "cwd": "/tmp/minecraft validation l848fbi_/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/restored server/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-5c37039d_default Creating\n Network minecraft-5c37039d_default Created\n Container minecraft-5c37039d-server-1 Creating\n Container minecraft-5c37039d-server-1 Created\n Container minecraft-5c37039d-server-1 Starting\n Container minecraft-5c37039d-server-1 Started\n Container minecraft-5c37039d-server-1 Waiting\n Container minecraft-5c37039d-server-1 Healthy\nThere are 0 of a max of 20 players online: \n{\"architecture\": \"amd64\", \"compose\": \"2.38.2\", \"configuration\": \"valid\", \"docker\": \"28.0.4\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:43:40.925512+00:00", "cwd": "/tmp/minecraft validation l848fbi_/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation l848fbi_/restored server/scripts/status", "--port", "50921"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:43:40.967796+00:00", "cwd": "/tmp/minecraft validation l848fbi_/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation l848fbi_/restored server/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:43:41.193166+00:00", "cwd": "/tmp/minecraft validation l848fbi_/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation l848fbi_/restored server/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 9 1001 1001 4096 Oct 1 07:42 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:43:29.335 INFO : Created/updated 1 property in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:43:30.950422718Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:43:31 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nserver-1 | [07:43:31 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:43:31 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:43:31 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:43:34 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:43:34 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:43:34 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 427.4ms\nserver-1 | [07:43:35 INFO]: Loaded 1585 recipes\nserver-1 | [07:43:35 INFO]: Loaded 1688 advancements\nserver-1 | [07:43:35 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:43:35 INFO]: Loading properties\nserver-1 | [07:43:36 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:43:36 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:43:36 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:43:36 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:43:36 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:43:36 INFO]: Default game type: SURVIVAL\nserver-1 | [07:43:36 INFO]: Generating keypair\nserver-1 | [07:43:36 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:43:36 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:43:36 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:43:36 INFO]: Preparing level \"world\"\nserver-1 | [07:43:37 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:43:37 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:43:37 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:43:37 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:43:37 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:43:37 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:43:37 INFO]: Done preparing level \"world\" (0.360s)\nserver-1 | [07:43:37 INFO]: [spark] Starting background profiler...\nserver-1 | [07:43:37 INFO]: Starting remote control listener\nserver-1 | [07:43:37 INFO]: Thread RCON Listener started\nserver-1 | [07:43:37 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:43:37 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:43:37 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:43:37 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:43:37 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:37 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:37 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:37 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:37 INFO]: Running delayed init tasks\nserver-1 | [07:43:37 INFO]: Done (6.738s)! For help, type \"help\"\nserver-1 | [07:43:40 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:40 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:41 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:41 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:43:41.418622+00:00", "cwd": "/tmp/minecraft validation l848fbi_/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation l848fbi_/restored server/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:77cf7afee4256e350761abe7a70f823b2e42742d5ab724e9fa75f0f13dfbfed2\",\"ContainerName\":\"minecraft-5c37039d-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":870684768,\"LastTagTime\":\"0001-01-01T00:00:00Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:43:41.598081+00:00", "cwd": "/tmp/minecraft validation l848fbi_/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/restored server/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-5c37039d-server-1 Stopping\n Container minecraft-5c37039d-server-1 Stopped\n Container minecraft-5c37039d-server-1 Removing\n Container minecraft-5c37039d-server-1 Removed\n Network minecraft-5c37039d_default Removing\n Network minecraft-5c37039d_default Removed\n"} +{"timestamp": "2026-10-01T07:43:42.675132+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"CREATE TABLE proof (value INT); INSERT INTO proof VALUES (42); SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:43:42.894058+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "300", "database"], "exit": 0, "output": " Container minecraft-60552461-database-1 Recreate\n Container minecraft-60552461-database-1 Recreated\n Container minecraft-60552461-database-1 Starting\n Container minecraft-60552461-database-1 Started\n Container minecraft-60552461-database-1 Waiting\n Container minecraft-60552461-database-1 Healthy\n"} +{"timestamp": "2026-10-01T07:43:48.825971+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:43:49.055838+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "mariadb", "-uminecraft", "-pwrong", "minecraft", "-e", "SELECT 1"], "exit": 1, "output": "ERROR 1045 (28000): Access denied for user 'minecraft'@'localhost' (using password: YES)\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-60552461', '--project-directory', '/tmp/minecraft validation l848fbi_/stable paper', '--env-file', '/tmp/minecraft validation l848fbi_/stable paper/versions.env', '--env-file', '/tmp/minecraft validation l848fbi_/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation l848fbi_/stable paper/compose.yaml', '-f', '/tmp/minecraft validation l848fbi_/stable paper/.state/compose.yaml', 'exec', '-T', 'database', 'mariadb', '-uminecraft', '-pwrong', 'minecraft', '-e', 'SELECT 1']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:43:49.274956+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "python3", "-c", "import urllib.request; print(urllib.request.urlopen(\"http://127.0.0.1:54571\").read().decode())"], "exit": 0, "output": "Minecraft files

Minecraft files

\n\n"} +{"timestamp": "2026-10-01T07:43:49.333617+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "web-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration\nweb-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf\nweb-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh\nweb-1 | /docker-entrypoint.sh: Configuration complete; ready for start up\nweb-1 | 2026/10/01 07:42:11 [notice] 1#1: using the \"epoll\" event method\nbackup-1 | time=\"2026-10-01T07:42:38Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:42:38+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO created restic repository 282d65c279 at /backups/repository\nbackup-1 | 2026-10-01T07:42:41+0000 INFO \nbackup-1 | 2026-10-01T07:42:41+0000 INFO Please note that knowledge of your password is required to access\nweb-1 | 2026/10/01 07:42:11 [notice] 1#1: nginx/1.30.5\nweb-1 | 2026/10/01 07:42:11 [notice] 1#1: built by gcc 15.2.0 (Alpine 15.2.0) \nweb-1 | 2026/10/01 07:42:11 [notice] 1#1: OS: Linux 6.17.0-1022-azure\nweb-1 | 2026/10/01 07:42:11 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 65536:65536\nweb-1 | 2026/10/01 07:42:11 [notice] 1#1: start worker processes\nweb-1 | 2026/10/01 07:42:11 [notice] 1#1: start worker process 30\nweb-1 | 2026/10/01 07:42:11 [notice] 1#1: start worker process 31\nweb-1 | 2026/10/01 07:42:11 [notice] 1#1: start worker process 32\nweb-1 | 2026/10/01 07:42:11 [notice] 1#1: start worker process 33\nbackup-1 | 2026-10-01T07:42:41+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:42:41+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:42:41+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Backing up content in /data as host minecraft\nserver-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 11 1001 1001 4096 Oct 1 07:42 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:42:48.533772061Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:42:48 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:42:21 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nserver-1 | [07:42:48 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:42:31 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nbackup-1 | 2026-10-01T07:42:41+0000 INFO no parent snapshot found, will read all files\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:42:41 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nbackup-1 | 2026-10-01T07:42:43+0000 INFO \nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:42:51 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nbackup-1 | 2026-10-01T07:42:43+0000 INFO Files: 182 new, 0 changed, 0 unmodified\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:43:01 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nbackup-1 | 2026-10-01T07:42:43+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:42:43+0000 INFO Added to the repository: 174.631 MiB (160.215 MiB stored)\nbackup-1 | 2026-10-01T07:42:43+0000 INFO \nbackup-1 | 2026-10-01T07:42:43+0000 INFO processed 182 files, 174.586 MiB in 0:02\nbackup-1 | 2026-10-01T07:42:43+0000 INFO snapshot d1b0ce57 saved\nserver-1 | [07:42:48 INFO]: [PluginInitializerManager] Initializing plugins...\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:43:11 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nserver-1 | [07:42:48 INFO]: [PluginInitializerManager] Initialized 0 plugins\nbackup-1 | 2026-10-01T07:42:43+0000 ERROR Unable to execute rcon-cli save-on - try 0/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:43+0000 ERROR Failure reason: 2026/10/01 07:42:43 Failed to connect to RCON serverdial tcp: lookup server on 127.0.0.11:53: server misbehaving\t\nbackup-1 | 2026-10-01T07:42:48+0000 ERROR Unable to execute rcon-cli save-on - try 1/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:48+0000 ERROR Failure reason: 2026/10/01 07:42:48 Failed to connect to RCON serverdial tcp 172.18.0.3:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:42:53+0000 ERROR Unable to execute rcon-cli save-on - try 2/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:53+0000 ERROR Failure reason: 2026/10/01 07:42:53 Failed to connect to RCON serverdial tcp 172.18.0.3:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:42:58+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:42:59+0000 INFO sleeping 6h...\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:42:51 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:43:21 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:43:31 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:43:41 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\ndatabase-1 | 2026-10-01 07:43:43+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\ndatabase-1 | 2026-10-01 07:43:43+00:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB\ndatabase-1 | 2026-10-01 07:43:43+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'\ndatabase-1 | 2026-10-01 07:43:43+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\ndatabase-1 | 2026-10-01 07:43:43+00:00 [Note] [Entrypoint]: MariaDB upgrade not required\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] Starting MariaDB 12.3.3-MariaDB-ubu2404 source revision 83e909fc2a0dbc394b4b683fb3fa2d7dcf26cc5e server_uid gb6ayN4O/QcIU4T3HJqIByFgd+w= as process 1\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: Compressed tables use zlib 1.3\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: Number of transaction pools: 1\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: Using AVX512 instructions\ndatabase-1 | 2026-10-01 7:43:43 0 [Warning] mariadbd: io_uring_queue_init() failed with EPERM: sysctl kernel.io_uring_disabled has the value 2, or 1 and the user of the process is not a member of sysctl kernel.io_uring_group. (see man 2 io_uring_setup).\ndatabase-1 | create_uring failed: falling back to libaio\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: Using Linux native AIO\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: innodb_buffer_pool_size_max=8388608m, innodb_buffer_pool_size=128m\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: Completed initialization of buffer pool\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: File system buffers for log disabled (block size=4096 bytes)\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: End of log at LSN=47793\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: Opened 3 undo tablespaces\nweb-1 | 172.18.0.1 - - [01/Oct/2026:07:43:49 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Python-urllib/3.12\" \"-\"\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: 128 rollback segments in 3 undo tablespaces are active.\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: log sequence number 47793; transaction id 23\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] Plugin 'FEEDBACK' is disabled.\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] Plugin 'wsrep-provider' is disabled.\ndatabase-1 | 2026-10-01 7:43:43 0 [Note] InnoDB: Buffer pool(s) load completed at 261001 7:43:43\ndatabase-1 | 2026-10-01 7:43:44 0 [Note] Server socket created on IP: '0.0.0.0', port: '3306'.\ndatabase-1 | 2026-10-01 7:43:44 0 [Note] Server socket created on IP: '::', port: '3306'.\ndatabase-1 | 2026-10-01 7:43:44 0 [Note] mariadbd: Event Scheduler: Loaded 0 events\ndatabase-1 | 2026-10-01 7:43:44 0 [Note] mariadbd: ready for connections.\ndatabase-1 | Version: '12.3.3-MariaDB-ubu2404' socket: '/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution\ndatabase-1 | 2026-10-01 7:43:49 6 [Warning] Access denied for user 'minecraft'@'localhost' (using password: YES)\nserver-1 | [07:42:51 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:42:52 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 542.9ms\nserver-1 | [07:42:53 INFO]: Loaded 1585 recipes\nserver-1 | [07:42:53 INFO]: Loaded 1688 advancements\nserver-1 | [07:42:53 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:42:53 INFO]: Loading properties\nserver-1 | [07:42:53 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:42:53 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:42:53 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:42:53 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:42:54 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:42:54 INFO]: Default game type: SURVIVAL\nserver-1 | [07:42:54 INFO]: Generating keypair\nserver-1 | [07:42:54 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:42:54 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:42:54 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:42:54 INFO]: Preparing level \"world\"\nserver-1 | [07:42:54 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:42:54 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:54 INFO]: Prepared spawn area in 2 ms\nserver-1 | [07:42:54 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:42:54 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:42:54 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:42:54 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:42:54 INFO]: Done preparing level \"world\" (0.344s)\nserver-1 | [07:42:54 INFO]: [spark] Starting background profiler...\nserver-1 | [07:42:54 INFO]: Starting remote control listener\nserver-1 | [07:42:54 INFO]: Thread RCON Listener started\nserver-1 | [07:42:54 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:42:54 INFO]: Running delayed init tasks\nserver-1 | [07:42:54 INFO]: Done (6.886s)! For help, type \"help\"\nserver-1 | [07:42:58 INFO]: Thread RCON Client /172.18.0.5 started\nserver-1 | [07:42:58 INFO]: Thread RCON Client /172.18.0.5 shutting down\nserver-1 | [07:42:59 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:42:59 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:01 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:01 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:01 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:05 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:05 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:05 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:05 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:05 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:05 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:05 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:05 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:05 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:05 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:05 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:05 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:05 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:05 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:43:05 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:05 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:05 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:07 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:07 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:07 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:07 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:07 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:07 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:07 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:08 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:08 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:10 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:10 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:10 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:10 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:10 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:10 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:12 INFO]: Thread RCON Client /172.18.0.7 started\nserver-1 | [07:43:12 INFO]: Thread RCON Client /172.18.0.7 shutting down\nserver-1 | [07:43:12 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:12 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:13 INFO]: Thread RCON Client /172.18.0.6 started\nserver-1 | [07:43:13 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:43:13 INFO]: Thread RCON Client /172.18.0.6 shutting down\nserver-1 | [07:43:13 INFO]: Thread RCON Client /172.18.0.7 started\nserver-1 | [07:43:13 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:13 INFO]: Thread RCON Client /172.18.0.7 shutting down\nserver-1 | [07:43:13 INFO]: Thread RCON Client /172.18.0.7 started\nserver-1 | [07:43:13 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:13 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:13 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:13 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:13 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:13 INFO]: Thread RCON Client /172.18.0.7 shutting down\nserver-1 | [07:43:19 INFO]: Thread RCON Client /172.18.0.7 started\nserver-1 | [07:43:19 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:43:19 INFO]: Thread RCON Client /172.18.0.7 shutting down\nserver-1 | [07:43:21 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:21 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:21 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:21 INFO]: [Rcon: Set [proof] for Proof to 99]\nserver-1 | [07:43:21 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:43:49.554103+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:43d9d8c1f8968f09df8c1aa6c136ecc617e62d64fe4c0b24c97de4eb210bd973\",\"ContainerName\":\"minecraft-60552461-web-1\",\"Repository\":\"nginx\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":62374029,\"LastTagTime\":\"0001-01-01T00:00:00Z\"},{\"ID\":\"sha256:dfff46ef3f9d674ab66853ee68066e495af7942bfa4255dc39ce2ff64ac05cbe\",\"ContainerName\":\"minecraft-60552461-database-1\",\"Repository\":\"mariadb\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":333796770,\"LastTagTime\":\"0001-01-01T00:00:00Z\"},{\"ID\":\"sha256:6b73c27e6ec57061dd6e9058dd55f96cd784329667b550d504977d9e0fef70a2\",\"ContainerName\":\"minecraft-60552461-backup-1\",\"Repository\":\"minecraft-template-backup\",\"Tag\":\"3ff6a1e8fa15ca4e-1c6ea31fbca3\",\"Platform\":\"linux/amd64\",\"Size\":153672059,\"LastTagTime\":\"2026-10-01T07:42:11.004906381Z\"},{\"ID\":\"sha256:77cf7afee4256e350761abe7a70f823b2e42742d5ab724e9fa75f0f13dfbfed2\",\"ContainerName\":\"minecraft-60552461-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":870684768,\"LastTagTime\":\"0001-01-01T00:00:00Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:43:49.723997+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-60552461-web-1 Stopping\n Container minecraft-60552461-backup-1 Stopping\n Container minecraft-60552461-database-1 Stopping\n Container minecraft-60552461-backup-1 Stopped\n Container minecraft-60552461-backup-1 Removing\n Container minecraft-60552461-backup-1 Removed\n Container minecraft-60552461-server-1 Stopping\n Container minecraft-60552461-database-1 Stopped\n Container minecraft-60552461-database-1 Removing\n Container minecraft-60552461-web-1 Stopped\n Container minecraft-60552461-web-1 Removing\n Container minecraft-60552461-database-1 Removed\n Container minecraft-60552461-web-1 Removed\n Container minecraft-60552461-server-1 Stopped\n Container minecraft-60552461-server-1 Removing\n Container minecraft-60552461-server-1 Removed\n Network minecraft-60552461_default Removing\n Network minecraft-60552461_default Removed\n"} +{"timestamp": "2026-10-01T07:43:50.600009+00:00", "cwd": "/tmp/minecraft validation l848fbi_/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/latest vanilla/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "36891", "--web-port", "48367", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--distribution", "vanilla"], "exit": 0, "output": "{\"distribution\": \"vanilla\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:43:50.640129+00:00", "cwd": "/tmp/minecraft validation l848fbi_/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/latest vanilla/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-ef15ef16_default Creating\n Network minecraft-ef15ef16_default Created\n Container minecraft-ef15ef16-server-1 Creating\n Container minecraft-ef15ef16-server-1 Created\n Container minecraft-ef15ef16-server-1 Starting\n Container minecraft-ef15ef16-server-1 Started\n Container minecraft-ef15ef16-server-1 Waiting\n Container minecraft-ef15ef16-server-1 Healthy\nThere are 0 of a max of 20 players online: \n{\"architecture\": \"amd64\", \"compose\": \"2.38.2\", \"configuration\": \"valid\", \"docker\": \"28.0.4\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:44:06.801550+00:00", "cwd": "/tmp/minecraft validation l848fbi_/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation l848fbi_/latest vanilla/scripts/status", "--port", "36891"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"26.3\", \"protocol\": 777}}\n"} +{"timestamp": "2026-10-01T07:44:06.834461+00:00", "cwd": "/tmp/minecraft validation l848fbi_/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation l848fbi_/latest vanilla/scripts/minecraft", "command", "list"], "exit": 0, "output": "There are 0 of a max of 20 players online: \n"} +{"timestamp": "2026-10-01T07:44:07.052565+00:00", "cwd": "/tmp/minecraft validation l848fbi_/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "find /data -maxdepth 1 -name \"*.jar\" -exec sha1sum {} \\;"], "exit": 0, "output": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c /data/minecraft_server.26.3.jar\n"} +{"timestamp": "2026-10-01T07:44:07.321651+00:00", "cwd": "/tmp/minecraft validation l848fbi_/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:44:07.540551+00:00", "cwd": "/tmp/minecraft validation l848fbi_/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:44:07.759338+00:00", "cwd": "/tmp/minecraft validation l848fbi_/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation l848fbi_/latest vanilla/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 2 1001 1001 4096 Oct 1 07:43 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given VANILLA\nserver-1 | [init] Successfully setup vanilla Minecraft version 26.3\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:43:54.502 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Unpacking 26.3/server-26.3.jar (versions:26.3) to versions/26.3/server-26.3.jar\nserver-1 | Unpacking at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar (libraries:at.yawk.lz4:lz4-java:1.10.1) to libraries/at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar\nserver-1 | Unpacking com/azure/azure-json/1.4.0/azure-json-1.4.0.jar (libraries:com.azure:azure-json:1.4.0) to libraries/com/azure/azure-json/1.4.0/azure-json-1.4.0.jar\nserver-1 | Unpacking com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar (libraries:com.github.oshi:oshi-core:6.9.0) to libraries/com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar\nserver-1 | Unpacking com/google/code/gson/gson/2.14.0/gson-2.14.0.jar (libraries:com.google.code.gson:gson:2.14.0) to libraries/com/google/code/gson/gson/2.14.0/gson-2.14.0.jar\nserver-1 | Unpacking com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar (libraries:com.google.guava:failureaccess:1.0.3) to libraries/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\nserver-1 | Unpacking com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar (libraries:com.google.guava:guava:33.6.0-jre) to libraries/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar\nserver-1 | Unpacking com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar (libraries:com.microsoft.azure:msal4j:1.24.1) to libraries/com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar\nserver-1 | Unpacking com/mojang/authlib/10.0.77/authlib-10.0.77.jar (libraries:com.mojang:authlib:10.0.77) to libraries/com/mojang/authlib/10.0.77/authlib-10.0.77.jar\nserver-1 | Unpacking com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar (libraries:com.mojang:brigadier:1.3.11) to libraries/com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar\nserver-1 | Unpacking com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar (libraries:com.mojang:datafixerupper:10.0.21) to libraries/com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar\nserver-1 | Unpacking com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar (libraries:com.mojang:jtracy:1.14.38) to libraries/com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar\nserver-1 | Unpacking com/mojang/logging/1.7.12/logging-1.7.12.jar (libraries:com.mojang:logging:1.7.12) to libraries/com/mojang/logging/1.7.12/logging-1.7.12.jar\nserver-1 | Unpacking commons-io/commons-io/2.20.0/commons-io-2.20.0.jar (libraries:commons-io:commons-io:2.20.0) to libraries/commons-io/commons-io/2.20.0/commons-io-2.20.0.jar\nserver-1 | Unpacking io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar (libraries:io.netty:netty-buffer:4.2.16.Final) to libraries/io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar (libraries:io.netty:netty-codec-base:4.2.16.Final) to libraries/io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar (libraries:io.netty:netty-codec-compression:4.2.16.Final) to libraries/io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar (libraries:io.netty:netty-codec-http:4.2.16.Final) to libraries/io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar (libraries:io.netty:netty-common:4.2.16.Final) to libraries/io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar (libraries:io.netty:netty-handler:4.2.16.Final) to libraries/io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar (libraries:io.netty:netty-resolver:4.2.16.Final) to libraries/io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar (libraries:io.netty:netty-transport:4.2.16.Final) to libraries/io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-epoll:4.2.16.Final) to libraries/io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-kqueue:4.2.16.Final) to libraries/io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-x86_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-aarch_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-x86_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-aarch_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar (libraries:io.netty:netty-transport-native-unix-common:4.2.16.Final) to libraries/io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar\nserver-1 | Unpacking it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar (libraries:it.unimi.dsi:fastutil:8.5.18) to libraries/it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar\nserver-1 | Unpacking net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar (libraries:net.java.dev.jna:jna:5.17.0) to libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar\nserver-1 | Unpacking net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar (libraries:net.java.dev.jna:jna-platform:5.17.0) to libraries/net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar\nserver-1 | Unpacking net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar (libraries:net.sf.jopt-simple:jopt-simple:5.0.4) to libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar\nserver-1 | Unpacking org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar (libraries:org.apache.commons:commons-lang3:3.20.0) to libraries/org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-api:2.26.0) to libraries/org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-core:2.26.0) to libraries/org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-slf4j2-impl:2.26.0) to libraries/org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar\nserver-1 | Unpacking org/joml/joml/1.10.9/joml-1.10.9.jar (libraries:org.joml:joml:1.10.9) to libraries/org/joml/joml/1.10.9/joml-1.10.9.jar\nserver-1 | Unpacking org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar (libraries:org.jspecify:jspecify:1.0.0) to libraries/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar\nserver-1 | Unpacking org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar (libraries:org.slf4j:slf4j-api:2.0.17) to libraries/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar\nserver-1 | Starting net.minecraft.server.Main\nserver-1 | WARNING: A restricted method in java.lang.System has been called\nserver-1 | WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/data/libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar)\nserver-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nserver-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nserver-1 | \nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.9/joml-1.10.9.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:43:59] [ServerMain/INFO]: Environment: Environment[discoveryUrl=https://discovery.minecraftservices.com/minecraft/client, name=PROD]\nserver-1 | [07:43:59] [Worker-Main-1/INFO]: No existing world data, creating new world\nserver-1 | [07:44:00] [Worker-Main-1/INFO]: Loaded 1866 advancements\nserver-1 | [07:44:00] [Server thread/INFO]: Starting minecraft server version 26.3\nserver-1 | [07:44:00] [Server thread/INFO]: Loading properties\nserver-1 | [07:44:00] [Server thread/INFO]: Default game type: SURVIVAL\nserver-1 | [07:44:00] [Server thread/INFO]: Generating keypair\nserver-1 | [07:44:00] [Server thread/INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:44:00] [Server thread/INFO]: Preparing level \"world\"\nserver-1 | [07:44:00] [Server thread/INFO]: Selecting global world spawn...\nserver-1 | [07:44:03] [Server thread/INFO]: Loading 0 persistent chunks...\nserver-1 | [07:44:03] [Server thread/INFO]: Preparing spawn area: 100%\nserver-1 | [07:44:03] [Server thread/INFO]: Time elapsed: 2625 ms\nserver-1 | [07:44:03] [Server thread/INFO]: Done (2.767s)! For help, type \"help\"\nserver-1 | [07:44:03] [Server thread/INFO]: Starting remote control listener\nserver-1 | [07:44:03] [Server thread/INFO]: Thread RCON Listener started\nserver-1 | [07:44:03] [Server thread/INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:44:03] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:44:03] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:44:03] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:44:06] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:44:06] [RCON Client /0:0:0:0:0:0:0:1 #2/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:44:07] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:44:07] [RCON Client /0:0:0:0:0:0:0:1 #3/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:44:07.977359+00:00", "cwd": "/tmp/minecraft validation l848fbi_/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation l848fbi_/latest vanilla/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:77cf7afee4256e350761abe7a70f823b2e42742d5ab724e9fa75f0f13dfbfed2\",\"ContainerName\":\"minecraft-ef15ef16-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":870684768,\"LastTagTime\":\"0001-01-01T00:00:00Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:44:08.145853+00:00", "cwd": "/tmp/minecraft validation l848fbi_/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/latest vanilla/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-ef15ef16-server-1 Stopping\n Container minecraft-ef15ef16-server-1 Stopped\n Container minecraft-ef15ef16-server-1 Removing\n Container minecraft-ef15ef16-server-1 Removed\n Network minecraft-ef15ef16_default Removing\n Network minecraft-ef15ef16_default Removed\n"} +{"timestamp": "2026-10-01T07:44:09.521692+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "52491", "--web-port", "55403", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--network"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": true, \"profiles\": [\"proxy\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:44:09.562116+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "start"], "exit": 0, "output": " proxy Pulling \n 09923199ca0e Pulling fs layer \n d9b985643753 Pulling fs layer \n 6e35f74cacf0 Pulling fs layer \n 21f76ee5bdee Pulling fs layer \n 4f4fb700ef54 Pulling fs layer \n 9f4a81b2a5fd Pulling fs layer \n 1bef7f8d1aac Pulling fs layer \n d64507fe87e0 Pulling fs layer \n 6131e0c34789 Pulling fs layer \n d837d7ae14fd Pulling fs layer \n e2cc9a4041ad Pulling fs layer \n 15dc23b25651 Pulling fs layer \n e7aa0a743692 Pulling fs layer \n 3a4e6be39b49 Pulling fs layer \n 5635c320daf8 Pulling fs layer \n 17f3ff6c3d4a Pulling fs layer \n 4eaa9fed82b4 Pulling fs layer \n d837d7ae14fd Waiting \n e2cc9a4041ad Waiting \n 15dc23b25651 Waiting \n e7aa0a743692 Waiting \n 9f4a81b2a5fd Waiting \n 21f76ee5bdee Waiting \n 4f4fb700ef54 Waiting \n 1bef7f8d1aac Waiting \n d64507fe87e0 Waiting \n 6131e0c34789 Waiting \n 3a4e6be39b49 Waiting \n 17f3ff6c3d4a Waiting \n 5635c320daf8 Waiting \n 4eaa9fed82b4 Waiting \n d9b985643753 Downloading [==================================================>] 391B/391B\n d9b985643753 Verifying Checksum \n d9b985643753 Download complete \n 09923199ca0e Downloading [> ] 425.4kB/41.57MB\n 6e35f74cacf0 Downloading [> ] 130.5kB/12.15MB\n 21f76ee5bdee Downloading [> ] 539.4kB/63.08MB\n 6e35f74cacf0 Verifying Checksum \n 6e35f74cacf0 Download complete \n 4f4fb700ef54 Downloading [==================================================>] 32B/32B\n 4f4fb700ef54 Verifying Checksum \n 4f4fb700ef54 Download complete \n 09923199ca0e Downloading [======================================> ] 31.95MB/41.57MB\n 9f4a81b2a5fd Downloading [==================================================>] 2.465kB/2.465kB\n 9f4a81b2a5fd Download complete \n 21f76ee5bdee Downloading [==============================> ] 38.35MB/63.08MB\n 09923199ca0e Verifying Checksum \n 09923199ca0e Download complete \n 1bef7f8d1aac Downloading [==================================================>] 96B/96B\n 1bef7f8d1aac Verifying Checksum \n 1bef7f8d1aac Download complete \n d64507fe87e0 Downloading [> ] 538.3kB/73.68MB\n 6131e0c34789 Downloading [=> ] 15.75kB/783.6kB\n 6131e0c34789 Verifying Checksum \n 6131e0c34789 Download complete \n 21f76ee5bdee Verifying Checksum \n 21f76ee5bdee Download complete \n 09923199ca0e Extracting [> ] 426kB/41.57MB\n d837d7ae14fd Downloading [==================================================>] 1.212kB/1.212kB\n d837d7ae14fd Verifying Checksum \n d837d7ae14fd Download complete \n e2cc9a4041ad Downloading [> ] 48.51kB/3.557MB\n 15dc23b25651 Downloading [> ] 49.15kB/3.557MB\n 15dc23b25651 Verifying Checksum \n 15dc23b25651 Download complete \n d64507fe87e0 Downloading [=======================> ] 34.59MB/73.68MB\n e2cc9a4041ad Verifying Checksum \n e2cc9a4041ad Download complete \n 09923199ca0e Extracting [========> ] 7.242MB/41.57MB\n e7aa0a743692 Downloading [> ] 64.47kB/6.338MB\n 3a4e6be39b49 Downloading [> ] 32.77kB/2.427MB\n 3a4e6be39b49 Verifying Checksum \n 3a4e6be39b49 Download complete \n d64507fe87e0 Verifying Checksum \n d64507fe87e0 Download complete \n 5635c320daf8 Downloading [==================================================>] 337B/337B\n 5635c320daf8 Verifying Checksum \n 5635c320daf8 Download complete \n e7aa0a743692 Downloading [===================================> ] 4.533MB/6.338MB\n 09923199ca0e Extracting [==============> ] 12.35MB/41.57MB\n 17f3ff6c3d4a Downloading [> ] 527.1kB/54.9MB\n 4eaa9fed82b4 Downloading [==============================> ] 3.502kB/5.679kB\n 4eaa9fed82b4 Downloading [==================================================>] 5.679kB/5.679kB\n 4eaa9fed82b4 Verifying Checksum \n 4eaa9fed82b4 Download complete \n e7aa0a743692 Verifying Checksum \n e7aa0a743692 Download complete \n 17f3ff6c3d4a Downloading [=====> ] 6.329MB/54.9MB\n 09923199ca0e Extracting [======================> ] 18.32MB/41.57MB\n 17f3ff6c3d4a Downloading [=============> ] 15.35MB/54.9MB\n 09923199ca0e Extracting [==========================> ] 21.73MB/41.57MB\n 17f3ff6c3d4a Verifying Checksum \n 17f3ff6c3d4a Download complete \n 09923199ca0e Extracting [=====================================> ] 31.1MB/41.57MB\n 09923199ca0e Extracting [===========================================> ] 35.78MB/41.57MB\n 09923199ca0e Extracting [===========================================> ] 36.21MB/41.57MB\n 09923199ca0e Extracting [==============================================> ] 38.76MB/41.57MB\n 09923199ca0e Extracting [===============================================> ] 39.19MB/41.57MB\n 09923199ca0e Extracting [===============================================> ] 39.62MB/41.57MB\n 09923199ca0e Extracting [=================================================> ] 40.89MB/41.57MB\n 09923199ca0e Extracting [==================================================>] 41.57MB/41.57MB\n 09923199ca0e Pull complete \n d9b985643753 Extracting [==================================================>] 391B/391B\n d9b985643753 Extracting [==================================================>] 391B/391B\n d9b985643753 Pull complete \n 6e35f74cacf0 Extracting [> ] 131.1kB/12.15MB\n 6e35f74cacf0 Extracting [==================> ] 4.456MB/12.15MB\n 6e35f74cacf0 Extracting [=========================================> ] 10.09MB/12.15MB\n 6e35f74cacf0 Extracting [================================================> ] 11.67MB/12.15MB\n 6e35f74cacf0 Extracting [==================================================>] 12.15MB/12.15MB\n 6e35f74cacf0 Pull complete \n 21f76ee5bdee Extracting [> ] 557.1kB/63.08MB\n 21f76ee5bdee Extracting [========> ] 11.14MB/63.08MB\n 21f76ee5bdee Extracting [=================> ] 22.28MB/63.08MB\n 21f76ee5bdee Extracting [=========================> ] 32.31MB/63.08MB\n 21f76ee5bdee Extracting [================================> ] 41.22MB/63.08MB\n 21f76ee5bdee Extracting [=======================================> ] 49.58MB/63.08MB\n 21f76ee5bdee Extracting [===============================================> ] 60.16MB/63.08MB\n 21f76ee5bdee Extracting [==================================================>] 63.08MB/63.08MB\n 21f76ee5bdee Pull complete \n 4f4fb700ef54 Extracting [==================================================>] 32B/32B\n 4f4fb700ef54 Extracting [==================================================>] 32B/32B\n 4f4fb700ef54 Pull complete \n 9f4a81b2a5fd Extracting [==================================================>] 2.465kB/2.465kB\n 9f4a81b2a5fd Extracting [==================================================>] 2.465kB/2.465kB\n 9f4a81b2a5fd Pull complete \n 1bef7f8d1aac Extracting [==================================================>] 96B/96B\n 1bef7f8d1aac Extracting [==================================================>] 96B/96B\n 1bef7f8d1aac Pull complete \n d64507fe87e0 Extracting [> ] 557.1kB/73.68MB\n d64507fe87e0 Extracting [==> ] 3.342MB/73.68MB\n d64507fe87e0 Extracting [======> ] 10.03MB/73.68MB\n d64507fe87e0 Extracting [========> ] 12.26MB/73.68MB\n d64507fe87e0 Extracting [==========> ] 16.15MB/73.68MB\n d64507fe87e0 Extracting [============> ] 18.94MB/73.68MB\n d64507fe87e0 Extracting [====================> ] 29.52MB/73.68MB\n d64507fe87e0 Extracting [=========================> ] 37.88MB/73.68MB\n d64507fe87e0 Extracting [================================> ] 47.35MB/73.68MB\n d64507fe87e0 Extracting [================================> ] 48.46MB/73.68MB\n d64507fe87e0 Extracting [========================================> ] 59.6MB/73.68MB\n d64507fe87e0 Extracting [=============================================> ] 66.85MB/73.68MB\n d64507fe87e0 Extracting [==============================================> ] 67.96MB/73.68MB\n d64507fe87e0 Extracting [================================================> ] 70.75MB/73.68MB\n d64507fe87e0 Extracting [=================================================> ] 73.53MB/73.68MB\n d64507fe87e0 Extracting [==================================================>] 73.68MB/73.68MB\n d64507fe87e0 Pull complete \n 6131e0c34789 Extracting [==> ] 32.77kB/783.6kB\n 6131e0c34789 Extracting [==================================================>] 783.6kB/783.6kB\n 6131e0c34789 Extracting [==================================================>] 783.6kB/783.6kB\n 6131e0c34789 Pull complete \n d837d7ae14fd Extracting [==================================================>] 1.212kB/1.212kB\n d837d7ae14fd Extracting [==================================================>] 1.212kB/1.212kB\n d837d7ae14fd Pull complete \n e2cc9a4041ad Extracting [> ] 65.54kB/3.557MB\n e2cc9a4041ad Extracting [==================================================>] 3.557MB/3.557MB\n e2cc9a4041ad Pull complete \n 15dc23b25651 Extracting [> ] 65.54kB/3.557MB\n 15dc23b25651 Extracting [==================================================>] 3.557MB/3.557MB\n 15dc23b25651 Pull complete \n e7aa0a743692 Extracting [> ] 65.54kB/6.338MB\n e7aa0a743692 Extracting [==================================================>] 6.338MB/6.338MB\n e7aa0a743692 Pull complete \n 3a4e6be39b49 Extracting [> ] 32.77kB/2.427MB\n 3a4e6be39b49 Extracting [==================================================>] 2.427MB/2.427MB\n 3a4e6be39b49 Pull complete \n 5635c320daf8 Extracting [==================================================>] 337B/337B\n 5635c320daf8 Extracting [==================================================>] 337B/337B\n 5635c320daf8 Pull complete \n 17f3ff6c3d4a Extracting [> ] 557.1kB/54.9MB\n 17f3ff6c3d4a Extracting [=========================> ] 27.85MB/54.9MB\n 17f3ff6c3d4a Extracting [==================================================>] 54.9MB/54.9MB\n 17f3ff6c3d4a Pull complete \n 4eaa9fed82b4 Extracting [==================================================>] 5.679kB/5.679kB\n 4eaa9fed82b4 Extracting [==================================================>] 5.679kB/5.679kB\n 4eaa9fed82b4 Pull complete \n proxy Pulled \n Network minecraft-a5cb6426_default Creating\n Network minecraft-a5cb6426_default Created\n Container minecraft-a5cb6426-server-1 Creating\n Container minecraft-a5cb6426-server-1 Created\n Container minecraft-a5cb6426-proxy-1 Creating\n Container minecraft-a5cb6426-proxy-1 Created\n Container minecraft-a5cb6426-server-1 Starting\n Container minecraft-a5cb6426-server-1 Started\n Container minecraft-a5cb6426-server-1 Waiting\n Container minecraft-a5cb6426-server-1 Healthy\n Container minecraft-a5cb6426-proxy-1 Starting\n Container minecraft-a5cb6426-proxy-1 Started\n Container minecraft-a5cb6426-server-1 Waiting\n Container minecraft-a5cb6426-proxy-1 Waiting\n Container minecraft-a5cb6426-server-1 Healthy\n Container minecraft-a5cb6426-proxy-1 Healthy\nThere are 0 of a max of 20 players online: \n{\"architecture\": \"amd64\", \"compose\": \"2.38.2\", \"configuration\": \"valid\", \"docker\": \"28.0.4\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:44:52.234416+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation l848fbi_/velocity network/scripts/status", "--port", "52491"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"modinfo\": {\"modList\": [], \"type\": \"FML\"}, \"players\": {\"max\": 20, \"online\": 0, \"sample\": []}, \"version\": {\"name\": \"Velocity 1.7.2-26.3\", \"protocol\": 775}}\n"} +{"timestamp": "2026-10-01T07:44:52.268256+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "compose", "config", "--format", "json"], "exit": 0, "output": "{\n \"name\": \"minecraft-a5cb6426\",\n \"networks\": {\n \"default\": {\n \"name\": \"minecraft-a5cb6426_default\",\n \"ipam\": {}\n }\n },\n \"secrets\": {\n \"rcon\": {\n \"name\": \"minecraft-a5cb6426_rcon\",\n \"file\": \"/tmp/minecraft validation l848fbi_/velocity network/.state/secrets/rcon\"\n }\n },\n \"services\": {\n \"proxy\": {\n \"profiles\": [\n \"proxy\"\n ],\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"depends_on\": {\n \"server\": {\n \"condition\": \"service_healthy\",\n \"required\": true\n }\n },\n \"entrypoint\": null,\n \"environment\": {\n \"ENABLE_RCON\": \"false\",\n \"MEMORY\": \"512M\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"TYPE\": \"VELOCITY\",\n \"VELOCITY_BUILD_ID\": \"36\",\n \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-monitor\",\n \"status\",\n \"--host\",\n \"localhost\",\n \"--port\",\n \"25565\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 12\n },\n \"image\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\n \"mem_limit\": \"1073741824\",\n \"networks\": {\n \"default\": null\n },\n \"ports\": [\n {\n \"mode\": \"ingress\",\n \"host_ip\": \"127.0.0.1\",\n \"target\": 25565,\n \"published\": \"52491\",\n \"protocol\": \"tcp\"\n }\n ],\n \"restart\": \"unless-stopped\",\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"30s\",\n \"user\": \"1001:1001\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation l848fbi_/velocity network/data/proxy\",\n \"target\": \"/server\",\n \"bind\": {\n \"create_host_path\": true\n }\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation l848fbi_/velocity network/.state/velocity.toml\",\n \"target\": \"/server/velocity.toml\",\n \"bind\": {\n \"create_host_path\": true\n }\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation l848fbi_/velocity network/.state/secrets/forwarding\",\n \"target\": \"/server/forwarding.secret\",\n \"read_only\": true,\n \"bind\": {\n \"create_host_path\": true\n }\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation l848fbi_/velocity network/plugins/proxy\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {\n \"create_host_path\": true\n }\n }\n ]\n },\n \"server\": {\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"entrypoint\": null,\n \"environment\": {\n \"COPY_CONFIG_DEST\": \"/data\",\n \"ENABLE_QUERY\": \"false\",\n \"ENABLE_RCON\": \"true\",\n \"EULA\": \"TRUE\",\n \"MEMORY\": \"2G\",\n \"MOTD\": \"Unicode \u2603 $$HOME $${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\",\n \"ONLINE_MODE\": \"false\",\n \"PAPER_BUILD\": \"129\",\n \"PAUSE_WHEN_EMPTY_SECONDS\": \"-1\",\n \"RCON_PASSWORD_FILE\": \"/run/secrets/rcon\",\n \"SIMULATION_DISTANCE\": \"4\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"SYNC_SKIP_NEWER_IN_DESTINATION\": \"false\",\n \"TYPE\": \"PAPER\",\n \"VERSION\": \"26.2\",\n \"VIEW_DISTANCE\": \"6\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-health\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 30,\n \"start_period\": \"1m0s\"\n },\n \"image\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\n \"mem_limit\": \"3221225472\",\n \"networks\": {\n \"default\": null\n },\n \"restart\": \"unless-stopped\",\n \"secrets\": [\n {\n \"source\": \"rcon\",\n \"target\": \"/run/secrets/rcon\"\n }\n ],\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"2m0s\",\n \"user\": \"1001:1001\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation l848fbi_/velocity network/data/server\",\n \"target\": \"/data\",\n \"bind\": {\n \"create_host_path\": true\n }\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation l848fbi_/velocity network/configs/server\",\n \"target\": \"/config\",\n \"read_only\": true,\n \"bind\": {\n \"create_host_path\": true\n }\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation l848fbi_/velocity network/plugins/server\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {\n \"create_host_path\": true\n }\n }\n ]\n }\n }\n}"} +{"timestamp": "2026-10-01T07:44:52.439213+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:44:52.658990+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "sha256sum", "/server/velocity-4.2.1-SNAPSHOT-36.jar"], "exit": 0, "output": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c /server/velocity-4.2.1-SNAPSHOT-36.jar\n"} +{"timestamp": "2026-10-01T07:44:52.978493+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation l848fbi_/velocity network/tests/login.py", "--port", "52491", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:44:53.028669+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-a5cb6426-server-1 Recreate\n Container minecraft-a5cb6426-server-1 Recreated\n Container minecraft-a5cb6426-proxy-1 Recreate\n Container minecraft-a5cb6426-proxy-1 Recreated\n Container minecraft-a5cb6426-server-1 Starting\n Container minecraft-a5cb6426-server-1 Started\n Container minecraft-a5cb6426-server-1 Waiting\n Container minecraft-a5cb6426-server-1 Healthy\n Container minecraft-a5cb6426-proxy-1 Starting\n Container minecraft-a5cb6426-proxy-1 Started\n Container minecraft-a5cb6426-proxy-1 Waiting\n Container minecraft-a5cb6426-server-1 Waiting\n Container minecraft-a5cb6426-server-1 Healthy\n Container minecraft-a5cb6426-proxy-1 Healthy\n"} +{"timestamp": "2026-10-01T07:45:15.553925+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation l848fbi_/velocity network/tests/login.py", "--port", "52491", "--verify-cli", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft"], "exit": 0, "output": "{\"play\": true, \"backend_list\": \"There are 1 of a max of 20 players online: ForwardProof\\n\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 1], [\"configuration\", 12], [\"configuration\", 14], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 13], [\"configuration\", 4], [\"configuration\", 4], [\"configuration\", 4], [\"configuration\", 4], [\"configuration\", 3]]}\n"} +{"timestamp": "2026-10-01T07:45:20.405778+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "compose", "logs", "--no-color", "server", "proxy"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:45:12.152297757Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:45:12 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:45:12 INFO]: Connections will use epoll channels, libdeflate (Linux x86_64) compression, OpenSSL 3.x.x (Linux x86_64) ciphers\nproxy-1 | [07:45:12 WARN]: The proxy is running in offline mode! This is a security risk and you will NOT receive any support!\nproxy-1 | [07:45:12 INFO]: Loading localizations...\nproxy-1 | [07:45:12 INFO]: Loading plugins...\nproxy-1 | [07:45:12 INFO]: Loaded 1 plugins\nproxy-1 | [07:45:12 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:45:12 INFO]: Done (0.62s)!\nproxy-1 | [07:45:15 INFO]: [connected player] ForwardProof (/172.18.0.1:44008) has connected\nproxy-1 | [07:45:15 INFO]: [server connection] ForwardProof -> main has connected\nproxy-1 | [07:45:20 INFO]: [connected player] ForwardProof (/172.18.0.1:44008) has disconnected\nproxy-1 | [07:45:20 INFO]: [server connection] ForwardProof -> main has disconnected\nserver-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 11 1001 1001 4096 Oct 1 07:44 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:44:57.910 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:44:57.913 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:44:59.362557366Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:44:59 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nserver-1 | [07:44:59 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:44:59 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:44:59 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:45:02 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:45:02 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:45:03 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 456.5ms\nserver-1 | [07:45:04 INFO]: Loaded 1585 recipes\nserver-1 | [07:45:04 INFO]: Loaded 1688 advancements\nserver-1 | [07:45:04 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:45:04 INFO]: Loading properties\nserver-1 | [07:45:04 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:45:04 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:45:04 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:45:04 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:45:04 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:45:05 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:45:05 INFO]: Default game type: SURVIVAL\nserver-1 | [07:45:05 INFO]: Generating keypair\nserver-1 | [07:45:05 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:45:05 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:45:05 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:45:05 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:45:05 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:45:05 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:45:05 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:45:05 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:45:05 INFO]: Preparing level \"world\"\nserver-1 | [07:45:05 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:45:05 INFO]: Preparing spawn area: 100%\nserver-1 | [07:45:05 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:45:05 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:45:05 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:45:05 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:45:05 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:45:05 INFO]: Done preparing level \"world\" (0.298s)\nserver-1 | [07:45:05 INFO]: [spark] Starting background profiler...\nserver-1 | [07:45:05 INFO]: Starting remote control listener\nserver-1 | [07:45:05 INFO]: Thread RCON Listener started\nserver-1 | [07:45:05 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:45:05 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:45:05 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:45:05 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:45:05 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:45:05 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:45:05 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:45:05 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:45:05 INFO]: Running delayed init tasks\nserver-1 | [07:45:05 INFO]: Done (6.968s)! For help, type \"help\"\nserver-1 | [07:45:15 INFO]: UUID of player ForwardProof is d2c1afbf-5081-3449-8752-8558175e1427\nserver-1 | [07:45:20 INFO]: ForwardProof joined the game\nserver-1 | [07:45:20 INFO]: ForwardProof[/172.18.0.1:52250] logged in with entity id 19 at ([minecraft:overworld]-109.5, 64.0, 1.5)\nserver-1 | [07:45:20 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:45:20 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:45:20 INFO]: ForwardProof lost connection: Disconnected\nserver-1 | [07:45:20 INFO]: ForwardProof left the game\n"} +{"timestamp": "2026-10-01T07:45:20.655070+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "compose", "ps", "-q", "server"], "exit": 0, "output": "851a2cacd043e18a558aa3754c63f9cf5abe6fc79b1b3c5e1d677bf742b47cc0\n"} +{"timestamp": "2026-10-01T07:45:20.877420+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", "851a2cacd043e18a558aa3754c63f9cf5abe6fc79b1b3c5e1d677bf742b47cc0"], "exit": 0, "output": "172.18.0.2\n"} +{"timestamp": "2026-10-01T07:45:20.890889+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation l848fbi_/velocity network/tests/login.py", "--host", "172.18.0.2", "--port", "25565", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"4\\\"This server requires you to connect with Velocity.\\\"\", \"packets\": [[\"login\", 4], [\"login\", 0]]}\n"} +{"timestamp": "2026-10-01T07:45:20.943011+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-a5cb6426-server-1 Recreate\n Container minecraft-a5cb6426-server-1 Recreated\n Container minecraft-a5cb6426-server-1 Starting\n Container minecraft-a5cb6426-server-1 Started\n Container minecraft-a5cb6426-server-1 Waiting\n Container minecraft-a5cb6426-server-1 Healthy\n"} +{"timestamp": "2026-10-01T07:45:37.775823+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation l848fbi_/velocity network/tests/login.py", "--port", "52491", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"\\n\\b\\u0000\\u0005color\\u0000\\u0003red\\b\\u0000\\u0004text\\u0000:Unable to connect to main: Unable to verify player details\\u0000\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 2]]}\n"} +{"timestamp": "2026-10-01T07:45:37.858701+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-a5cb6426-server-1 Recreate\n Container minecraft-a5cb6426-server-1 Recreated\n Container minecraft-a5cb6426-proxy-1 Recreate\n Container minecraft-a5cb6426-proxy-1 Recreated\n Container minecraft-a5cb6426-server-1 Starting\n Container minecraft-a5cb6426-server-1 Started\n Container minecraft-a5cb6426-server-1 Waiting\n Container minecraft-a5cb6426-server-1 Healthy\n Container minecraft-a5cb6426-proxy-1 Starting\n Container minecraft-a5cb6426-proxy-1 Started\n Container minecraft-a5cb6426-server-1 Waiting\n Container minecraft-a5cb6426-proxy-1 Waiting\n Container minecraft-a5cb6426-server-1 Healthy\n Container minecraft-a5cb6426-proxy-1 Healthy\n"} +{"timestamp": "2026-10-01T07:46:00.200855+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation l848fbi_/velocity network/tests/login.py", "--port", "52491", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:46:00.248798+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:45:56.809007253Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:45:57 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:45:57 INFO]: Connections will use epoll channels, libdeflate (Linux x86_64) compression, OpenSSL 3.x.x (Linux x86_64) ciphers\nproxy-1 | [07:45:57 INFO]: Loading localizations...\nproxy-1 | [07:45:57 INFO]: Loading plugins...\nproxy-1 | [07:45:57 INFO]: Loaded 1 plugins\nproxy-1 | [07:45:57 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:45:57 INFO]: Done (0.57s)!\nproxy-1 | [07:46:00 INFO]: [initial connection] /172.18.0.1:51754 has disconnected\nserver-1 | [init] Running as uid=1001 gid=1001 with /data as 'drwx------ 11 1001 1001 4096 Oct 1 07:44 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:45:42.526 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:45:42.530 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:45:43.955610437Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:45:44 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 6.17.0-1022-azure (amd64)\nserver-1 | [07:45:44 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:45:44 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:45:44 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:45:47 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:45:47 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:45:47 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 425.1ms\nserver-1 | [07:45:49 INFO]: Loaded 1585 recipes\nserver-1 | [07:45:49 INFO]: Loaded 1688 advancements\nserver-1 | [07:45:49 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:45:49 INFO]: Loading properties\nserver-1 | [07:45:49 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:45:49 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:45:49 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:45:49 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:45:49 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:45:49 INFO]: [MoonriseCommon] Paper is using 1 worker threads, 1 I/O threads\nserver-1 | [07:45:49 INFO]: Default game type: SURVIVAL\nserver-1 | [07:45:49 INFO]: Generating keypair\nserver-1 | [07:45:49 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:45:49 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.\nserver-1 | [07:45:49 INFO]: Paper: Using OpenSSL 3.x.x (Linux x86_64) cipher from Velocity.\nserver-1 | [07:45:49 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:45:49 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:45:49 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:45:49 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:45:49 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:45:49 INFO]: Preparing level \"world\"\nserver-1 | [07:45:50 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:45:50 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:45:50 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:45:50 INFO]: Preparing spawn area: 100%\nserver-1 | [07:45:50 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:45:50 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:45:50 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:45:50 INFO]: Done preparing level \"world\" (0.292s)\nserver-1 | [07:45:50 INFO]: [spark] Starting background profiler...\nserver-1 | [07:45:50 INFO]: Starting remote control listener\nserver-1 | [07:45:50 INFO]: Thread RCON Listener started\nserver-1 | [07:45:50 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:45:50 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:45:50 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:45:50 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:45:50 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:45:50 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:45:50 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:45:50 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:45:50 INFO]: Running delayed init tasks\nserver-1 | [07:45:50 INFO]: Done (7.047s)! For help, type \"help\"\n"} +{"timestamp": "2026-10-01T07:46:00.466881+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:b760ef5a7ffc32448d7ec242393cfc437f87e74826050567d4710c060d4ac794\",\"ContainerName\":\"minecraft-a5cb6426-proxy-1\",\"Repository\":\"itzg/mc-proxy\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":631318150,\"LastTagTime\":\"0001-01-01T00:00:00Z\"},{\"ID\":\"sha256:77cf7afee4256e350761abe7a70f823b2e42742d5ab724e9fa75f0f13dfbfed2\",\"ContainerName\":\"minecraft-a5cb6426-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/amd64\",\"Size\":870684768,\"LastTagTime\":\"0001-01-01T00:00:00Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:46:00.634909+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-a5cb6426-proxy-1 Stopping\n Container minecraft-a5cb6426-proxy-1 Stopped\n Container minecraft-a5cb6426-proxy-1 Removing\n Container minecraft-a5cb6426-proxy-1 Removed\n Container minecraft-a5cb6426-server-1 Stopping\n Container minecraft-a5cb6426-server-1 Stopped\n Container minecraft-a5cb6426-server-1 Removing\n Container minecraft-a5cb6426-server-1 Removed\n Network minecraft-a5cb6426_default Removing\n Network minecraft-a5cb6426_default Removed\n"} +{"timestamp": "2026-10-01T07:46:01.755298+00:00", "cwd": "/tmp/minecraft validation l848fbi_/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation l848fbi_/velocity network/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:01.923964+00:00", "cwd": "/tmp/minecraft validation l848fbi_/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation l848fbi_/latest vanilla/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.092210+00:00", "cwd": "/tmp/minecraft validation l848fbi_/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation l848fbi_/restored server/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.259308+00:00", "cwd": "/tmp/minecraft validation l848fbi_/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation l848fbi_/stable paper/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": " Volume minecraft-60552461_database Removing\n Volume minecraft-60552461_database Removed\n"} +{"timestamp": "2026-10-01T07:46:02.477678+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "minecraft-sentinel-8cd902f7227a906c"], "exit": 0, "output": "0cef389c0c7b4b5b1d7b946a9be43f1be263686514031e75325051aea7561457\n"} +{"timestamp": "2026-10-01T07:46:02.491951+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "rm", "minecraft-sentinel-8cd902f7227a906c"], "exit": 0, "output": "minecraft-sentinel-8cd902f7227a906c\n"} +{"timestamp": "2026-10-01T07:46:02.509051+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "ps", "-aq"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.521441+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-60552461"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.533523+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-60552461"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.545242+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-60552461"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.557750+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-5c37039d"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.569689+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-5c37039d"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.581701+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-5c37039d"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.593874+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-ef15ef16"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.605799+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-ef15ef16"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.617545+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-ef15ef16"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.629561+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-a5cb6426"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.641196+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-a5cb6426"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:46:02.653395+00:00", "cwd": "/home/runner/work/minecraft-server-template/minecraft-server-template", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-a5cb6426"], "exit": 0, "output": ""} diff --git a/docs/proof/review-fixes/runtime-amd64/inventory-diff.json b/docs/proof/review-fixes/runtime-amd64/inventory-diff.json new file mode 100644 index 0000000..5540634 --- /dev/null +++ b/docs/proof/review-fixes/runtime-amd64/inventory-diff.json @@ -0,0 +1,5 @@ +{ + "removed_unrelated_ids": [], + "added_unrelated_ids": [], + "preserved_ids": [] +} diff --git a/docs/proof/review-fixes/runtime-amd64/overlap-first.log b/docs/proof/review-fixes/runtime-amd64/overlap-first.log new file mode 100644 index 0000000..46fa572 --- /dev/null +++ b/docs/proof/review-fixes/runtime-amd64/overlap-first.log @@ -0,0 +1,67 @@ +time="2026-10-01T07:43:09Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:43:09+0000 INFO Repository already initialized +2026-10-01T07:43:09+0000 INFO Checking for stale locks +2026-10-01T07:43:10+0000 INFO Checking repo integrity +2026-10-01T07:43:10+0000 INFO waiting initial delay of 0... +2026-10-01T07:43:10+0000 INFO waiting for rcon readiness... +2026-10-01T07:43:10+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:43:10+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:43:10+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:43:10+0000 INFO Command executed successfully sync +2026-10-01T07:43:12+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:43:13+0000 INFO using parent snapshot 1318dcad +2026-10-01T07:43:13+0000 INFO +2026-10-01T07:43:13+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:43:13+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:43:13+0000 INFO Added to the repository: 31.114 KiB (12.898 KiB stored) +2026-10-01T07:43:13+0000 INFO +2026-10-01T07:43:13+0000 INFO processed 182 files, 174.586 MiB in 0:00 +2026-10-01T07:43:13+0000 INFO snapshot 2d1b7ff3 saved +2026-10-01T07:43:13+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:43:14+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:43:14+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:43:14+0000 INFO keep 2 snapshots: +2026-10-01T07:43:14+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:43:14+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:43:14+0000 INFO d1b0ce57 2026-10-01 07:42:41 minecraft mc_backups,server oldest daily snapshot /data 174.586 MiB +2026-10-01T07:43:14+0000 INFO oldest weekly snapshot +2026-10-01T07:43:14+0000 INFO oldest monthly snapshot +2026-10-01T07:43:14+0000 INFO 2d1b7ff3 2026-10-01 07:43:12 minecraft mc_backups,server daily snapshot /data 174.586 MiB +2026-10-01T07:43:14+0000 INFO weekly snapshot +2026-10-01T07:43:14+0000 INFO monthly snapshot +2026-10-01T07:43:14+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:43:14+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:43:14+0000 INFO 2 snapshots +2026-10-01T07:43:14+0000 INFO +2026-10-01T07:43:14+0000 INFO remove 1 snapshots: +2026-10-01T07:43:14+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:43:14+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:43:14+0000 INFO 1318dcad 2026-10-01 07:43:01 minecraft mc_backups,server /data 174.586 MiB +2026-10-01T07:43:14+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:43:14+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:43:14+0000 INFO 1 snapshots +2026-10-01T07:43:14+0000 INFO +2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:43:14+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:43:14+0000 INFO loading all snapshots... +2026-10-01T07:43:14+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:43:14+0000 INFO searching used packs... +2026-10-01T07:43:14+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 15 / 15 packs processed +2026-10-01T07:43:14+0000 INFO +2026-10-01T07:43:14+0000 INFO to repack: 32 blobs / 15.984 KiB +2026-10-01T07:43:14+0000 INFO this removes: 24 blobs / 11.746 KiB +2026-10-01T07:43:14+0000 INFO to delete: 0 blobs / 0 B +2026-10-01T07:43:14+0000 INFO total prune: 24 blobs / 11.746 KiB +2026-10-01T07:43:14+0000 INFO remaining: 607 blobs / 160.207 MiB +2026-10-01T07:43:14+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:43:14+0000 INFO +2026-10-01T07:43:14+0000 INFO repacking packs +2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 2 / 2 packs repacked +2026-10-01T07:43:14+0000 INFO rebuilding index +2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 4 / 4 indexes processed +2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted +2026-10-01T07:43:14+0000 INFO removing 2 old packs +2026-10-01T07:43:14+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:43:14+0000 INFO done diff --git a/docs/proof/review-fixes/runtime-amd64/overlap-second.log b/docs/proof/review-fixes/runtime-amd64/overlap-second.log new file mode 100644 index 0000000..4f7bcdf --- /dev/null +++ b/docs/proof/review-fixes/runtime-amd64/overlap-second.log @@ -0,0 +1,68 @@ +time="2026-10-01T07:43:11Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:43:11+0000 INFO Repository already initialized +2026-10-01T07:43:11+0000 INFO Checking for stale locks +2026-10-01T07:43:12+0000 INFO Checking repo integrity +2026-10-01T07:43:12+0000 INFO waiting initial delay of 0... +2026-10-01T07:43:12+0000 INFO waiting for rcon readiness... +2026-10-01T07:43:12+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:43:13+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:43:13+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:43:13+0000 INFO Command executed successfully sync +2026-10-01T07:43:13+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:43:14+0000 INFO repo already locked, waiting up to 1m0s for the lock +2026-10-01T07:43:19+0000 INFO using parent snapshot 2d1b7ff3 +2026-10-01T07:43:19+0000 INFO +2026-10-01T07:43:19+0000 INFO Files: 0 new, 12 changed, 170 unmodified +2026-10-01T07:43:19+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:43:19+0000 INFO Added to the repository: 30.601 KiB (12.210 KiB stored) +2026-10-01T07:43:19+0000 INFO +2026-10-01T07:43:19+0000 INFO processed 182 files, 174.586 MiB in 0:05 +2026-10-01T07:43:19+0000 INFO snapshot ff91fb20 saved +2026-10-01T07:43:19+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:43:19+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:43:20+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:43:20+0000 INFO keep 2 snapshots: +2026-10-01T07:43:20+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:43:20+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:43:20+0000 INFO d1b0ce57 2026-10-01 07:42:41 minecraft mc_backups,server oldest daily snapshot /data 174.586 MiB +2026-10-01T07:43:20+0000 INFO oldest weekly snapshot +2026-10-01T07:43:20+0000 INFO oldest monthly snapshot +2026-10-01T07:43:20+0000 INFO ff91fb20 2026-10-01 07:43:13 minecraft mc_backups,server daily snapshot /data 174.586 MiB +2026-10-01T07:43:20+0000 INFO weekly snapshot +2026-10-01T07:43:20+0000 INFO monthly snapshot +2026-10-01T07:43:20+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:43:20+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:43:20+0000 INFO 2 snapshots +2026-10-01T07:43:20+0000 INFO +2026-10-01T07:43:20+0000 INFO remove 1 snapshots: +2026-10-01T07:43:20+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:43:20+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:43:20+0000 INFO 2d1b7ff3 2026-10-01 07:43:12 minecraft mc_backups,server /data 174.586 MiB +2026-10-01T07:43:20+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:43:20+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:43:20+0000 INFO 1 snapshots +2026-10-01T07:43:20+0000 INFO +2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:43:20+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:43:20+0000 INFO loading all snapshots... +2026-10-01T07:43:20+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:43:20+0000 INFO searching used packs... +2026-10-01T07:43:20+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 17 / 17 packs processed +2026-10-01T07:43:20+0000 INFO +2026-10-01T07:43:20+0000 INFO to repack: 8 blobs / 2.318 KiB +2026-10-01T07:43:20+0000 INFO this removes: 6 blobs / 1.364 KiB +2026-10-01T07:43:20+0000 INFO to delete: 17 blobs / 9.935 KiB +2026-10-01T07:43:20+0000 INFO total prune: 23 blobs / 11.299 KiB +2026-10-01T07:43:20+0000 INFO remaining: 607 blobs / 160.207 MiB +2026-10-01T07:43:20+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:43:20+0000 INFO +2026-10-01T07:43:20+0000 INFO repacking packs +2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 1 / 1 packs repacked +2026-10-01T07:43:20+0000 INFO rebuilding index +2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 3 / 3 indexes processed +2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted +2026-10-01T07:43:20+0000 INFO removing 2 old packs +2026-10-01T07:43:20+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:43:20+0000 INFO done diff --git a/docs/proof/review-fixes/runtime-amd64/summary.json b/docs/proof/review-fixes/runtime-amd64/summary.json new file mode 100644 index 0000000..686fa91 --- /dev/null +++ b/docs/proof/review-fixes/runtime-amd64/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:41:44.497398+00:00", + "mode": "fullDocker", + "passed": true, + "finished": "2026-10-01T07:46:02.962040+00:00" +} diff --git a/docs/proof/review-fixes/runtime-amd64/versions.env b/docs/proof/review-fixes/runtime-amd64/versions.env new file mode 100644 index 0000000..16264c6 --- /dev/null +++ b/docs/proof/review-fixes/runtime-amd64/versions.env @@ -0,0 +1,13 @@ +SERVER_IMAGE=itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e +PROXY_IMAGE=itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 +BACKUP_IMAGE=itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 +DATABASE_IMAGE=mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1 +WEB_IMAGE=nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 +PAPER_VERSION=26.2 +PAPER_BUILD=129 +VANILLA_VERSION=26.3 +VELOCITY_VERSION=4.2.1-SNAPSHOT +VELOCITY_BUILD_ID=36 +PAPER_SHA256=b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 +VELOCITY_SHA256=62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c +VANILLA_SERVER_SHA1=33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c diff --git a/docs/proof/review-fixes/runtime-arm64-final/assertions.json b/docs/proof/review-fixes/runtime-arm64-final/assertions.json new file mode 100644 index 0000000..428c80a --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64-final/assertions.json @@ -0,0 +1,182 @@ +[ + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "custom MOTD reached protocol", + "passed": true + }, + { + "assertion": "Paper exact build", + "passed": true + }, + { + "assertion": "Paper downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective standalone authentication and query settings", + "passed": true + }, + { + "assertion": "standalone requires account authentication", + "passed": true + }, + { + "assertion": "wrong RCON password denied", + "passed": true + }, + { + "assertion": "world survives container recreation", + "passed": true + }, + { + "assertion": "encrypted snapshot created", + "passed": true + }, + { + "assertion": "backup flushed world and resumed saves", + "passed": true + }, + { + "assertion": "scheduled backup interval active", + "passed": true + }, + { + "assertion": "backup failure is reported", + "passed": true + }, + { + "assertion": "backup failure resumes automatic saving", + "passed": true + }, + { + "assertion": "inner Restic failure returns nonzero with useful output", + "passed": true + }, + { + "assertion": "inner Restic failure resumes saves", + "passed": true + }, + { + "assertion": "first backup holds lock after flush", + "passed": true + }, + { + "assertion": "second backup completed nonmutating readiness while first locked", + "passed": true + }, + { + "assertion": "overlap cannot enable saving while first holds lock", + "passed": true + }, + { + "assertion": "overlap-first succeeded", + "passed": true + }, + { + "assertion": "overlap-second succeeded", + "passed": true + }, + { + "assertion": "both overlapping backups resume saves", + "passed": true + }, + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "restored server contains snapshot world", + "passed": true + }, + { + "assertion": "database authenticates and round trips data", + "passed": true + }, + { + "assertion": "database survives recreation", + "passed": true + }, + { + "assertion": "database wrong password denied", + "passed": true + }, + { + "assertion": "optional web serves files", + "passed": true + }, + { + "assertion": "26.3 Minecraft status", + "passed": true + }, + { + "assertion": "Vanilla RCON works", + "passed": true + }, + { + "assertion": "Vanilla downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective Vanilla authentication and query settings", + "passed": true + }, + { + "assertion": "Velocity Minecraft status", + "passed": true + }, + { + "assertion": "literal Velocity MOTD reached protocol", + "passed": true + }, + { + "assertion": "backend has no published port", + "passed": true + }, + { + "assertion": "production Velocity online authentication", + "passed": true + }, + { + "assertion": "forwarding secret reaches effective Paper config", + "passed": true + }, + { + "assertion": "Velocity downloaded artifact checksum", + "passed": true + }, + { + "assertion": "production proxy requires account authentication", + "passed": true + }, + { + "assertion": "real client enters play through authenticated modern forwarding", + "passed": true + }, + { + "assertion": "backend logged the real client join", + "passed": true + }, + { + "assertion": "direct backend client denied without forwarding", + "passed": true + }, + { + "assertion": "wrong forwarding secret denies client login", + "passed": true + }, + { + "assertion": "production online authentication restored", + "passed": true + }, + { + "assertion": "unrelated stable sentinel survives contaminated cleanup", + "passed": true + }, + { + "assertion": "owned containers networks and volumes removed", + "passed": true + } +] diff --git a/docs/proof/review-fixes/runtime-arm64-final/cleanup.json b/docs/proof/review-fixes/runtime-arm64-final/cleanup.json new file mode 100644 index 0000000..943c2d4 --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64-final/cleanup.json @@ -0,0 +1,3 @@ +{ + "remaining": [] +} diff --git a/docs/proof/review-fixes/runtime-arm64-final/commands.jsonl b/docs/proof/review-fixes/runtime-arm64-final/commands.jsonl new file mode 100644 index 0000000..7d5543a --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64-final/commands.jsonl @@ -0,0 +1,96 @@ +{"timestamp": "2026-10-01T07:42:13.800975+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 0, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_ambient_environment_cannot_redirect_project_or_pins (test_cli.SetupBoundary.test_ambient_environment_cannot_redirect_project_or_pins) ... ok\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_rejects_network_bypasses (test_cli.SetupBoundary.test_doctor_rejects_network_bypasses) ... ok\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_literal_motd_survives_setup_and_compose (test_cli.SetupBoundary.test_literal_motd_survives_setup_and_compose) ... ok\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n----------------------------------------------------------------------\nRan 9 tests in 2.765s\n\nOK\n"} +{"timestamp": "2026-10-01T07:42:16.613684+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "ps", "-aq"], "exit": 0, "output": "9fc1c9de7bd4\nb6565a0b2641\ncb032c5d0307\nc4b270652fae\n83b52f82cc55\nfcc32bf402ee\n3faf83c3849e\n14cb2d0322a8\n7ca13c7a9157\n8a106aa4cdf8\n05758f1c498d\n90ed72c10c1c\n4e36373b3ff8\n31f7b35c97a2\n1b9e84a6dac9\n5440b03cc0be\nb659460c72ed\n7910b8100224\nc59f1f70d70f\n1f2fd13508fb\n9a0f33f0c8af\n5f0ffbf98fe9\nd22abb2de519\n"} +{"timestamp": "2026-10-01T07:42:16.665999+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "version"], "exit": 0, "output": "Client: Docker Engine - Community\n Version: 29.8.0\n API version: 1.56\n Go version: go1.26.8\n Git commit: 88096ef\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Context: default\n\nServer: Docker Engine - Community\n Engine:\n Version: 29.8.0\n API version: 1.56 (minimum version 1.40)\n Go version: go1.26.8\n Git commit: 3ce5872\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Experimental: false\n containerd:\n Version: v2.3.5\n GitCommit: 1294c24a7da8e5a793ed378161673abe94118892\n runc:\n Version: 1.5.1\n GitCommit: v1.5.1-0-g8f2685a4\n docker-init:\n Version: 0.19.0\n GitCommit: de40ad0\n"} +{"timestamp": "2026-10-01T07:42:16.685137+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "docker", "create", "--label", "com.docker.compose.project=minecraft-sentinel-d7c8025242ceb4db", "--name", "minecraft-sentinel-d7c8025242ceb4db", "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94"], "exit": 0, "output": "10019f9eb24dbd3e97ea9f684ece7f7ba6a39319242ae566cec18cffa717e6ce\n"} +{"timestamp": "2026-10-01T07:42:16.945395+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "minecraft-sentinel-d7c8025242ceb4db"], "exit": 0, "output": "10019f9eb24dbd3e97ea9f684ece7f7ba6a39319242ae566cec18cffa717e6ce\n"} +{"timestamp": "2026-10-01T07:42:16.970724+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "50589", "--web-port", "40839", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--profile", "backup", "--profile", "database", "--profile", "web"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [\"backup\", \"database\", \"web\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:42:17.013161+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "50589", "--web-port", "40839", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--profile", "backup", "--profile", "database", "--profile", "web", "--start"], "exit": 0, "output": " Network minecraft-d34e02d0_default Creating \n Network minecraft-d34e02d0_default Creating \n Volume minecraft-d34e02d0_database Creating \n Volume minecraft-d34e02d0_database Creating \n Volume minecraft-d34e02d0_database Created \n Volume minecraft-d34e02d0_database Created \n Network minecraft-d34e02d0_default Created \n Network minecraft-d34e02d0_default Created \n Container minecraft-d34e02d0-web-1 Creating \n Container minecraft-d34e02d0-database-1 Creating \n Container minecraft-d34e02d0-server-1 Creating \n Container minecraft-d34e02d0-database-1 Created \n Container minecraft-d34e02d0-web-1 Created \n Container minecraft-d34e02d0-server-1 Created \n Container minecraft-d34e02d0-backup-1 Creating \n Container minecraft-d34e02d0-backup-1 Created \n Container minecraft-d34e02d0-web-1 Starting \n Container minecraft-d34e02d0-database-1 Starting \n Container minecraft-d34e02d0-server-1 Starting \n Container minecraft-d34e02d0-web-1 Started \n Container minecraft-d34e02d0-database-1 Started \n Container minecraft-d34e02d0-server-1 Started \n Container minecraft-d34e02d0-server-1 Waiting \n Container minecraft-d34e02d0-server-1 Healthy \n Container minecraft-d34e02d0-backup-1 Starting \n Container minecraft-d34e02d0-backup-1 Started \n Container minecraft-d34e02d0-server-1 Waiting \n Container minecraft-d34e02d0-backup-1 Waiting \n Container minecraft-d34e02d0-database-1 Waiting \n Container minecraft-d34e02d0-web-1 Waiting \n Container minecraft-d34e02d0-backup-1 Healthy \n Container minecraft-d34e02d0-web-1 Healthy \n Container minecraft-d34e02d0-server-1 Healthy \n Container minecraft-d34e02d0-database-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"distribution\": \"paper\", \"network\": false, \"setup\": \"unchanged\"}\n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:42:39.177715+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation la9irp4r/stable paper/scripts/status", "--port", "50589"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:42:39.210746+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 2 1001 1002 4096 Oct 1 07:42 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | \u001b[39m[mc-image-helper] 07:42:19.524 INFO : Downloaded /data/paper-26.2-129.jar\nserver-1 | \u001b[0;39m[init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:42:22.167 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Applying patches\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:42:28.063686608Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:42:28 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:42:28 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:42:28 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:42:28 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:42:31 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:42:31 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:42:31 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 264.3ms\nserver-1 | [07:42:31 INFO]: Found new data pack paper, loading it automatically\nserver-1 | [07:42:31 INFO]: No existing world data, creating new world\nserver-1 | [07:42:32 INFO]: Loaded 1585 recipes\nserver-1 | [07:42:32 INFO]: Loaded 1688 advancements\nserver-1 | [07:42:32 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:42:32 INFO]: Loading properties\nserver-1 | [07:42:32 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:42:32 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:42:32 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:42:32 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:42:32 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:42:32 INFO]: Default game type: SURVIVAL\nserver-1 | [07:42:32 INFO]: Generating keypair\nserver-1 | [07:42:32 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:42:33 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:42:33 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:42:33 INFO]: Preparing level \"world\"\nserver-1 | [07:42:33 INFO]: Selecting spawn point for level 'minecraft:overworld'...\nserver-1 | [07:42:34 INFO]: Selecting spawn point for level 'minecraft:the_nether'...\nserver-1 | [07:42:35 INFO]: Selecting spawn point for level 'minecraft:the_end'...\nserver-1 | [07:42:35 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:42:35 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:35 INFO]: Prepared spawn area in 2024 ms\nserver-1 | [07:42:35 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:42:35 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:35 INFO]: Prepared spawn area in 423 ms\nserver-1 | [07:42:35 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:42:35 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:35 INFO]: Prepared spawn area in 117 ms\nserver-1 | [07:42:35 INFO]: Done preparing level \"world\" (2.261s)\nserver-1 | [07:42:35 INFO]: [spark] Starting background profiler...\nserver-1 | [07:42:35 INFO]: Starting remote control listener\nserver-1 | [07:42:35 INFO]: Thread RCON Listener started\nserver-1 | [07:42:35 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:42:35 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:42:35 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:42:35 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:42:35 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:42:35 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:42:35 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:42:35 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:42:35 INFO]: Running delayed init tasks\nserver-1 | [07:42:35 INFO]: Done (7.973s)! For help, type \"help\"\nserver-1 | [07:42:35 INFO]: *************************************************************************************\nserver-1 | [07:42:35 INFO]: This is the first time you're starting this server.\nserver-1 | [07:42:35 INFO]: It's recommended you read our 'Getting Started' documentation for guidance.\nserver-1 | [07:42:35 INFO]: View this and more helpful information here: https://docs.papermc.io/paper/next-steps\nserver-1 | [07:42:35 INFO]: *************************************************************************************\nserver-1 | [07:42:39 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:42:39 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:42:39.419124+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sha256sum", "/data/paper-26.2-129.jar"], "exit": 0, "output": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 /data/paper-26.2-129.jar\n"} +{"timestamp": "2026-10-01T07:42:39.626310+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:42:39.785424+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation la9irp4r/stable paper/tests/login.py", "--port", "50589", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:42:39.834237+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:42:40.042526+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "rcon-cli", "--password", "wrong", "list"], "exit": 1, "output": "2026/10/01 07:42:40 Failed to connect to RCON serverrcon: authentication failed\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-d34e02d0', '--project-directory', '/tmp/minecraft validation la9irp4r/stable paper', '--env-file', '/tmp/minecraft validation la9irp4r/stable paper/versions.env', '--env-file', '/tmp/minecraft validation la9irp4r/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation la9irp4r/stable paper/compose.yaml', '-f', '/tmp/minecraft validation la9irp4r/stable paper/.state/compose.yaml', 'exec', '-T', 'server', 'rcon-cli', '--password', 'wrong', 'list']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:42:40.248987+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "command", "scoreboard objectives add proof dummy"], "exit": 0, "output": "Created new objective [proof]\n"} +{"timestamp": "2026-10-01T07:42:40.455798+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 42"], "exit": 0, "output": "Set [proof] for Proof to 42\n"} +{"timestamp": "2026-10-01T07:42:40.660577+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "command", "save-all flush"], "exit": 0, "output": "Saving the game (this may take a moment!)Saved the game\n"} +{"timestamp": "2026-10-01T07:42:40.916812+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-d34e02d0-server-1 Recreate \n Container minecraft-d34e02d0-server-1 Recreated \n Container minecraft-d34e02d0-server-1 Starting \n Container minecraft-d34e02d0-server-1 Started \n Container minecraft-d34e02d0-server-1 Waiting \n Container minecraft-d34e02d0-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:42:59.108534+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:42:59.316391+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "backup"], "exit": 0, "output": " Container minecraft-d34e02d0-backup-run-769e3308a7d8 Creating \n Container minecraft-d34e02d0-backup-run-769e3308a7d8 Created \ntime=\"2026-10-01T07:42:59Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:43:00+0000 INFO Repository already initialized\n2026-10-01T07:43:00+0000 INFO Checking for stale locks\n2026-10-01T07:43:00+0000 INFO Checking repo integrity\n2026-10-01T07:43:01+0000 INFO waiting initial delay of 0...\n2026-10-01T07:43:01+0000 INFO waiting for rcon readiness...\n2026-10-01T07:43:01+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:43:01+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:43:01+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:43:01+0000 INFO Command executed successfully sync\n2026-10-01T07:43:01+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:43:02+0000 INFO using parent snapshot e420d03b\n2026-10-01T07:43:02+0000 INFO \n2026-10-01T07:43:02+0000 INFO Files: 0 new, 43 changed, 139 unmodified\n2026-10-01T07:43:02+0000 INFO Dirs: 0 new, 23 changed, 286 unmodified\n2026-10-01T07:43:02+0000 INFO Added to the repository: 36.067 KiB (16.096 KiB stored)\n2026-10-01T07:43:02+0000 INFO \n2026-10-01T07:43:02+0000 INFO processed 182 files, 174.571 MiB in 0:00\n2026-10-01T07:43:02+0000 INFO snapshot dc79dca3 saved\n2026-10-01T07:43:02+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:43:03.664297+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "snapshots"], "exit": 0, "output": " Container minecraft-d34e02d0-backup-run-74b1eabb1ac9 Creating \n Container minecraft-d34e02d0-backup-run-74b1eabb1ac9 Created \n[{\"time\":\"2026-10-01T07:42:41.357901343Z\",\"tree\":\"f4c5e1ece89679bee6acfec65b891ae49daed2e884257c51bbb2430321fdc063\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:42:41.357901343Z\",\"backup_end\":\"2026-10-01T07:42:43.463666174Z\",\"files_new\":182,\"files_changed\":0,\"files_unmodified\":0,\"dirs_new\":309,\"dirs_changed\":0,\"dirs_unmodified\":0,\"data_blobs\":272,\"tree_blobs\":308,\"data_added\":183220394,\"data_added_packed\":167954306,\"total_files_processed\":182,\"total_bytes_processed\":183050740},\"id\":\"e420d03b4f6a0e89cbbce6f68d001a632ba1e0caa361e159eb2bf528e7572926\",\"short_id\":\"e420d03b\"},{\"time\":\"2026-10-01T07:43:01.780429735Z\",\"parent\":\"e420d03b4f6a0e89cbbce6f68d001a632ba1e0caa361e159eb2bf528e7572926\",\"tree\":\"c1a8dbaf5c96b1744dad801a8d39a756ffcd810798065a9a9577a5d1ff6dbacd\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:43:01.780429735Z\",\"backup_end\":\"2026-10-01T07:43:02.594060093Z\",\"files_new\":0,\"files_changed\":43,\"files_unmodified\":139,\"dirs_new\":0,\"dirs_changed\":23,\"dirs_unmodified\":286,\"data_blobs\":9,\"tree_blobs\":23,\"data_added\":36933,\"data_added_packed\":16482,\"total_files_processed\":182,\"total_bytes_processed\":183050749},\"id\":\"dc79dca36a0ab600fad2d213793049f57ce993dd1724142eb4ef0fe82d4607f4\",\"short_id\":\"dc79dca3\"}]\n"} +{"timestamp": "2026-10-01T07:43:05.077841+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server", "backup"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:42 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:42:48.508886607Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:42:48 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:42:48 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:42:48 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:42:48 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:42:51 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:42:51 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:42:51 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 267.5ms\nserver-1 | [07:42:52 INFO]: Loaded 1585 recipes\nserver-1 | [07:42:52 INFO]: Loaded 1688 advancements\nserver-1 | [07:42:53 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:42:53 INFO]: Loading properties\nserver-1 | [07:42:53 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:42:53 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:42:53 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:42:53 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:42:53 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:42:53 INFO]: Default game type: SURVIVAL\nserver-1 | [07:42:53 INFO]: Generating keypair\nserver-1 | [07:42:53 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:42:53 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:42:53 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:42:53 INFO]: Preparing level \"world\"\nserver-1 | [07:42:53 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:42:53 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:53 INFO]: Prepared spawn area in 1 ms\nbackup-1 | time=\"2026-10-01T07:42:38Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nserver-1 | [07:42:53 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:42:53 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:53 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:42:53 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:42:53 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:42:53 INFO]: Done preparing level \"world\" (0.296s)\nserver-1 | [07:42:54 INFO]: [spark] Starting background profiler...\nserver-1 | [07:42:54 INFO]: Starting remote control listener\nserver-1 | [07:42:54 INFO]: Thread RCON Listener started\nserver-1 | [07:42:54 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:42:54 INFO]: Running delayed init tasks\nbackup-1 | 2026-10-01T07:42:38+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO created restic repository d2f38b8bfc at /backups/repository\nbackup-1 | 2026-10-01T07:42:41+0000 INFO \nbackup-1 | 2026-10-01T07:42:41+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:42:41+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:42:41+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:42:41+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Backing up content in /data as host minecraft\nserver-1 | [07:42:54 INFO]: Done (6.108s)! For help, type \"help\"\nserver-1 | [07:42:58 INFO]: Thread RCON Client /172.19.0.5 started\nbackup-1 | 2026-10-01T07:42:42+0000 INFO no parent snapshot found, will read all files\nserver-1 | [07:42:58 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:42:59 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:42:59 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:01 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:01 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:02 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:02 INFO]: [Rcon: Automatic saving is now enabled]\nbackup-1 | 2026-10-01T07:42:43+0000 INFO \nserver-1 | [07:43:02 INFO]: Thread RCON Client /172.19.0.6 shutting down\nbackup-1 | 2026-10-01T07:42:43+0000 INFO Files: 182 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:42:43+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:42:43+0000 INFO Added to the repository: 174.733 MiB (160.174 MiB stored)\nbackup-1 | 2026-10-01T07:42:43+0000 INFO \nbackup-1 | 2026-10-01T07:42:43+0000 INFO processed 182 files, 174.571 MiB in 0:02\nbackup-1 | 2026-10-01T07:42:43+0000 INFO snapshot e420d03b saved\nbackup-1 | 2026-10-01T07:42:43+0000 ERROR Unable to execute rcon-cli save-on - try 0/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:43+0000 ERROR Failure reason: 2026/10/01 07:42:43 Failed to connect to RCON serverdial tcp: lookup server on 127.0.0.11:53: server misbehaving\t\nbackup-1 | 2026-10-01T07:42:48+0000 ERROR Unable to execute rcon-cli save-on - try 1/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:48+0000 ERROR Failure reason: 2026/10/01 07:42:48 Failed to connect to RCON serverdial tcp 172.19.0.4:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:42:53+0000 ERROR Unable to execute rcon-cli save-on - try 2/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:53+0000 ERROR Failure reason: 2026/10/01 07:42:53 Failed to connect to RCON serverdial tcp 172.19.0.4:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:42:58+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:42:59+0000 INFO sleeping 6h...\n"} +{"timestamp": "2026-10-01T07:43:05.237193+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "PRE_BACKUP_SCRIPT=exit 73", "backup"], "exit": 1, "output": " Container minecraft-d34e02d0-backup-run-48bc4a6c67b6 Creating \n Container minecraft-d34e02d0-backup-run-48bc4a6c67b6 Created \ntime=\"2026-10-01T07:43:05Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:43:06+0000 INFO Repository already initialized\n2026-10-01T07:43:06+0000 INFO Checking for stale locks\n2026-10-01T07:43:06+0000 INFO Checking repo integrity\n2026-10-01T07:43:07+0000 INFO waiting initial delay of 0...\n2026-10-01T07:43:07+0000 INFO waiting for rcon readiness...\n2026-10-01T07:43:07+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:43:07+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:43:07+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:43:07+0000 INFO Command executed successfully sync\n2026-10-01T07:43:07+0000 INFO Command executed successfully rcon-cli save-on\n\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-d34e02d0', '--project-directory', '/tmp/minecraft validation la9irp4r/stable paper', '--env-file', '/tmp/minecraft validation la9irp4r/stable paper/versions.env', '--env-file', '/tmp/minecraft validation la9irp4r/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation la9irp4r/stable paper/compose.yaml', '-f', '/tmp/minecraft validation la9irp4r/stable paper/.state/compose.yaml', 'run', '--rm', '--no-deps', '-e', 'BACKUP_INTERVAL=0', '-e', 'INITIAL_DELAY=0', '-e', 'PRE_BACKUP_SCRIPT=exit 73', 'backup']' returned non-zero exit status 73.\"}\n"} +{"timestamp": "2026-10-01T07:43:08.000713+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:43:08.207870+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "backup"], "exit": 1, "output": "{\"error\": \"Backup reported an error; inspect service logs.\"}\n Container minecraft-d34e02d0-backup-run-cf7e4e8d1920 Creating \n Container minecraft-d34e02d0-backup-run-cf7e4e8d1920 Created \ntime=\"2026-10-01T07:43:08Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:43:09+0000 INFO Repository already initialized\n2026-10-01T07:43:09+0000 INFO Checking for stale locks\n2026-10-01T07:43:09+0000 INFO Checking repo integrity\n2026-10-01T07:43:10+0000 INFO waiting initial delay of 0...\n2026-10-01T07:43:10+0000 INFO waiting for rcon readiness...\n2026-10-01T07:43:10+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:43:10+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:43:10+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:43:10+0000 INFO Command executed successfully sync\n2026-10-01T07:43:10+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:43:10+0000 INFO invalid argument \"invalid-proof\" for \"--limit-upload\" flag: strconv.ParseInt: parsing \"invalid-proof\": invalid syntax\n2026-10-01T07:43:10+0000 ERROR Backup failed with exit code 1\n2026-10-01T07:43:10+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:43:11.558053+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:43:16.673156+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "command", "save-off"], "exit": 0, "output": "Saving is already turned off\n"} +{"timestamp": "2026-10-01T07:43:20.150716+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "-e", "PRE_BACKUP_SCRIPT=touch /backups/first-locked; timeout 60 sh -c 'until test -f /backups/release-first; do sleep 0.2; done'", "backup"], "exit": 0, "output": " Container minecraft-d34e02d0-backup-run-b71d83fb647f Creating \n Container minecraft-d34e02d0-backup-run-b71d83fb647f Created \ntime=\"2026-10-01T07:43:12Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:43:12+0000 INFO Repository already initialized\n2026-10-01T07:43:12+0000 INFO Checking for stale locks\n2026-10-01T07:43:13+0000 INFO Checking repo integrity\n2026-10-01T07:43:14+0000 INFO waiting initial delay of 0...\n2026-10-01T07:43:14+0000 INFO waiting for rcon readiness...\n2026-10-01T07:43:14+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:43:14+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:43:14+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:43:14+0000 INFO Command executed successfully sync\n2026-10-01T07:43:17+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:43:17+0000 INFO using parent snapshot dc79dca3\n2026-10-01T07:43:17+0000 INFO \n2026-10-01T07:43:17+0000 INFO Files: 0 new, 15 changed, 167 unmodified\n2026-10-01T07:43:17+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:43:17+0000 INFO Added to the repository: 31.213 KiB (13.047 KiB stored)\n2026-10-01T07:43:17+0000 INFO \n2026-10-01T07:43:17+0000 INFO processed 182 files, 174.571 MiB in 0:00\n2026-10-01T07:43:17+0000 INFO snapshot 8fd1cc78 saved\n2026-10-01T07:43:17+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:43:18+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:43:19+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:43:19+0000 INFO keep 2 snapshots:\n2026-10-01T07:43:19+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:43:19+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:43:19+0000 INFO e420d03b 2026-10-01 07:42:41 minecraft mc_backups,server oldest daily snapshot /data 174.571 MiB\n2026-10-01T07:43:19+0000 INFO oldest weekly snapshot\n2026-10-01T07:43:19+0000 INFO oldest monthly snapshot\n2026-10-01T07:43:19+0000 INFO 8fd1cc78 2026-10-01 07:43:17 minecraft mc_backups,server daily snapshot /data 174.571 MiB\n2026-10-01T07:43:19+0000 INFO weekly snapshot\n2026-10-01T07:43:19+0000 INFO monthly snapshot\n2026-10-01T07:43:19+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:43:19+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:43:19+0000 INFO 2 snapshots\n2026-10-01T07:43:19+0000 INFO \n2026-10-01T07:43:19+0000 INFO remove 1 snapshots:\n2026-10-01T07:43:19+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:43:19+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:43:19+0000 INFO dc79dca3 2026-10-01 07:43:01 minecraft mc_backups,server /data 174.571 MiB\n2026-10-01T07:43:19+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:43:19+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:43:19+0000 INFO 1 snapshots\n2026-10-01T07:43:19+0000 INFO \n2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:43:19+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:43:19+0000 INFO loading all snapshots...\n2026-10-01T07:43:19+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:43:19+0000 INFO searching used packs...\n2026-10-01T07:43:19+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 15 / 15 packs processed\n2026-10-01T07:43:19+0000 INFO \n2026-10-01T07:43:19+0000 INFO to repack: 32 blobs / 16.166 KiB\n2026-10-01T07:43:19+0000 INFO this removes: 24 blobs / 11.904 KiB\n2026-10-01T07:43:19+0000 INFO to delete: 0 blobs / 0 B\n2026-10-01T07:43:19+0000 INFO total prune: 24 blobs / 11.904 KiB\n2026-10-01T07:43:19+0000 INFO remaining: 613 blobs / 160.165 MiB\n2026-10-01T07:43:19+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:43:19+0000 INFO \n2026-10-01T07:43:19+0000 INFO repacking packs\n2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 2 / 2 packs repacked\n2026-10-01T07:43:19+0000 INFO rebuilding index\n2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 4 / 4 indexes processed\n2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted\n2026-10-01T07:43:19+0000 INFO removing 2 old packs\n2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:43:19+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:43:26.085164+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "backup"], "exit": 0, "output": " Container minecraft-d34e02d0-backup-run-5db2adcd23c8 Creating \n Container minecraft-d34e02d0-backup-run-5db2adcd23c8 Created \ntime=\"2026-10-01T07:43:14Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:43:15+0000 INFO Repository already initialized\n2026-10-01T07:43:15+0000 INFO Checking for stale locks\n2026-10-01T07:43:15+0000 INFO Checking repo integrity\n2026-10-01T07:43:16+0000 INFO waiting initial delay of 0...\n2026-10-01T07:43:16+0000 INFO waiting for rcon readiness...\n2026-10-01T07:43:16+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:43:17+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:43:17+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:43:17+0000 INFO Command executed successfully sync\n2026-10-01T07:43:17+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:43:18+0000 INFO repo already locked, waiting up to 1m0s for the lock\n2026-10-01T07:43:23+0000 INFO using parent snapshot 8fd1cc78\n2026-10-01T07:43:23+0000 INFO \n2026-10-01T07:43:23+0000 INFO Files: 0 new, 15 changed, 167 unmodified\n2026-10-01T07:43:23+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:43:23+0000 INFO Added to the repository: 30.767 KiB (12.488 KiB stored)\n2026-10-01T07:43:23+0000 INFO \n2026-10-01T07:43:23+0000 INFO processed 182 files, 174.571 MiB in 0:05\n2026-10-01T07:43:23+0000 INFO snapshot 78820d82 saved\n2026-10-01T07:43:23+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:43:24+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:43:25+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:43:25+0000 INFO keep 2 snapshots:\n2026-10-01T07:43:25+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:43:25+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:43:25+0000 INFO e420d03b 2026-10-01 07:42:41 minecraft mc_backups,server oldest daily snapshot /data 174.571 MiB\n2026-10-01T07:43:25+0000 INFO oldest weekly snapshot\n2026-10-01T07:43:25+0000 INFO oldest monthly snapshot\n2026-10-01T07:43:25+0000 INFO 78820d82 2026-10-01 07:43:17 minecraft mc_backups,server daily snapshot /data 174.571 MiB\n2026-10-01T07:43:25+0000 INFO weekly snapshot\n2026-10-01T07:43:25+0000 INFO monthly snapshot\n2026-10-01T07:43:25+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:43:25+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:43:25+0000 INFO 2 snapshots\n2026-10-01T07:43:25+0000 INFO \n2026-10-01T07:43:25+0000 INFO remove 1 snapshots:\n2026-10-01T07:43:25+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:43:25+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:43:25+0000 INFO 8fd1cc78 2026-10-01 07:43:17 minecraft mc_backups,server /data 174.571 MiB\n2026-10-01T07:43:25+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:43:25+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:43:25+0000 INFO 1 snapshots\n2026-10-01T07:43:25+0000 INFO \n2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:43:25+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:43:25+0000 INFO loading all snapshots...\n2026-10-01T07:43:25+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:43:25+0000 INFO searching used packs...\n2026-10-01T07:43:25+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 17 / 17 packs processed\n2026-10-01T07:43:25+0000 INFO \n2026-10-01T07:43:25+0000 INFO to repack: 8 blobs / 2.312 KiB\n2026-10-01T07:43:25+0000 INFO this removes: 7 blobs / 1.469 KiB\n2026-10-01T07:43:25+0000 INFO to delete: 17 blobs / 10.090 KiB\n2026-10-01T07:43:25+0000 INFO total prune: 24 blobs / 11.559 KiB\n2026-10-01T07:43:25+0000 INFO remaining: 613 blobs / 160.165 MiB\n2026-10-01T07:43:25+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:43:25+0000 INFO \n2026-10-01T07:43:25+0000 INFO repacking packs\n2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 1 / 1 packs repacked\n2026-10-01T07:43:25+0000 INFO rebuilding index\n2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 3 / 3 indexes processed\n2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted\n2026-10-01T07:43:25+0000 INFO removing 2 old packs\n2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:43:25+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:43:26.085391+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:43:26.290678+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 99"], "exit": 0, "output": "Set [proof] for Proof to 99\n"} +{"timestamp": "2026-10-01T07:43:26.494580+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "restore", "/tmp/minecraft validation la9irp4r/restored snapshot"], "exit": 0, "output": " Container minecraft-d34e02d0-backup-run-e188fa1b1409 Creating \n Container minecraft-d34e02d0-backup-run-e188fa1b1409 Created \nrestoring snapshot 78820d82 of [/data] at 2026-10-01 07:43:17.852687611 +0000 UTC by @minecraft to /restore\nSummary: Restored 491 files/dirs (174.571 MiB) in 0:00\n{\"restored\": \"/tmp/minecraft validation la9irp4r/restored snapshot/data\", \"snapshot\": \"latest\"}\n"} +{"timestamp": "2026-10-01T07:43:29.115013+00:00", "cwd": "/tmp/minecraft validation la9irp4r/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/restored server/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "43103", "--web-port", "47695", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:43:29.207398+00:00", "cwd": "/tmp/minecraft validation la9irp4r/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/restored server/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-5eaf567a_default Creating \n Network minecraft-5eaf567a_default Creating \n Network minecraft-5eaf567a_default Created \n Network minecraft-5eaf567a_default Created \n Container minecraft-5eaf567a-server-1 Creating \n Container minecraft-5eaf567a-server-1 Created \n Container minecraft-5eaf567a-server-1 Starting \n Container minecraft-5eaf567a-server-1 Started \n Container minecraft-5eaf567a-server-1 Waiting \n Container minecraft-5eaf567a-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:43:46.955354+00:00", "cwd": "/tmp/minecraft validation la9irp4r/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation la9irp4r/restored server/scripts/status", "--port", "43103"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:43:46.989161+00:00", "cwd": "/tmp/minecraft validation la9irp4r/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation la9irp4r/restored server/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:43:47.203384+00:00", "cwd": "/tmp/minecraft validation la9irp4r/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation la9irp4r/restored server/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 9 1001 1002 4096 Oct 1 07:42 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:43:35.275 INFO : Created/updated 1 property in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:43:36.807863186Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:43:37 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:43:37 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:43:37 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:43:37 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:43:40 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:43:40 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:43:40 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 329.0ms\nserver-1 | [07:43:41 INFO]: Loaded 1585 recipes\nserver-1 | [07:43:41 INFO]: Loaded 1688 advancements\nserver-1 | [07:43:41 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:43:41 INFO]: Loading properties\nserver-1 | [07:43:41 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:43:41 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:43:41 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:43:41 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:43:42 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:43:42 INFO]: Default game type: SURVIVAL\nserver-1 | [07:43:42 INFO]: Generating keypair\nserver-1 | [07:43:42 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:43:42 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:43:42 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:43:42 INFO]: Preparing level \"world\"\nserver-1 | [07:43:42 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:43:42 INFO]: Preparing spawn area: 100%\nserver-1 | [07:43:42 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:43:42 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:43:42 INFO]: Preparing spawn area: 100%\nserver-1 | [07:43:42 INFO]: Prepared spawn area in 2 ms\nserver-1 | [07:43:42 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:43:42 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:43:42 INFO]: Done preparing level \"world\" (0.435s)\nserver-1 | [07:43:43 INFO]: [spark] Starting background profiler...\nserver-1 | [07:43:43 INFO]: Starting remote control listener\nserver-1 | [07:43:43 INFO]: Thread RCON Listener started\nserver-1 | [07:43:43 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:43:43 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:43:43 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:43:43 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:43:43 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:43 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:43 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:43 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:43 INFO]: Running delayed init tasks\nserver-1 | [07:43:43 INFO]: Done (6.979s)! For help, type \"help\"\nserver-1 | [07:43:46 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:46 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:47 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:47 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:43:47.409340+00:00", "cwd": "/tmp/minecraft validation la9irp4r/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation la9irp4r/restored server/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-5eaf567a-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:43:47.615590+00:00", "cwd": "/tmp/minecraft validation la9irp4r/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/restored server/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-5eaf567a-server-1 Stopping \n Container minecraft-5eaf567a-server-1 Stopped \n Container minecraft-5eaf567a-server-1 Removing \n Container minecraft-5eaf567a-server-1 Removed \n Network minecraft-5eaf567a_default Removing \n Network minecraft-5eaf567a_default Removed \n"} +{"timestamp": "2026-10-01T07:43:49.221782+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"CREATE TABLE proof (value INT); INSERT INTO proof VALUES (42); SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:43:49.482671+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "300", "database"], "exit": 0, "output": " Container minecraft-d34e02d0-database-1 Recreate \n Container minecraft-d34e02d0-database-1 Recreated \n Container minecraft-d34e02d0-database-1 Starting \n Container minecraft-d34e02d0-database-1 Started \n Container minecraft-d34e02d0-database-1 Waiting \n Container minecraft-d34e02d0-database-1 Healthy \n"} +{"timestamp": "2026-10-01T07:43:55.709981+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:43:55.937736+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "mariadb", "-uminecraft", "-pwrong", "minecraft", "-e", "SELECT 1"], "exit": 1, "output": "ERROR 1045 (28000): Access denied for user 'minecraft'@'localhost' (using password: YES)\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-d34e02d0', '--project-directory', '/tmp/minecraft validation la9irp4r/stable paper', '--env-file', '/tmp/minecraft validation la9irp4r/stable paper/versions.env', '--env-file', '/tmp/minecraft validation la9irp4r/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation la9irp4r/stable paper/compose.yaml', '-f', '/tmp/minecraft validation la9irp4r/stable paper/.state/compose.yaml', 'exec', '-T', 'database', 'mariadb', '-uminecraft', '-pwrong', 'minecraft', '-e', 'SELECT 1']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:43:56.156692+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "python3", "-c", "import urllib.request; print(urllib.request.urlopen(\"http://127.0.0.1:40839\").read().decode())"], "exit": 0, "output": "Minecraft files

Minecraft files

\n\n"} +{"timestamp": "2026-10-01T07:43:56.230033+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "web-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration\nbackup-1 | time=\"2026-10-01T07:42:38Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:42:38+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO created restic repository d2f38b8bfc at /backups/repository\nbackup-1 | 2026-10-01T07:42:41+0000 INFO \nbackup-1 | 2026-10-01T07:42:41+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:42:41+0000 INFO the repository. Losing your password means that your data is\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:42 /data'\nweb-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:42:48.508886607Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:42:48 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:42:48 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:42:48 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:42:48 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:42:51 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:42:51 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:42:51 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 267.5ms\nbackup-1 | 2026-10-01T07:42:41+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:42:41+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:42:41+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:42:42+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:42:43+0000 INFO \nbackup-1 | 2026-10-01T07:42:43+0000 INFO Files: 182 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:42:43+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:42:43+0000 INFO Added to the repository: 174.733 MiB (160.174 MiB stored)\nbackup-1 | 2026-10-01T07:42:43+0000 INFO \nbackup-1 | 2026-10-01T07:42:43+0000 INFO processed 182 files, 174.571 MiB in 0:02\nbackup-1 | 2026-10-01T07:42:43+0000 INFO snapshot e420d03b saved\nbackup-1 | 2026-10-01T07:42:43+0000 ERROR Unable to execute rcon-cli save-on - try 0/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:43+0000 ERROR Failure reason: 2026/10/01 07:42:43 Failed to connect to RCON serverdial tcp: lookup server on 127.0.0.11:53: server misbehaving\t\nbackup-1 | 2026-10-01T07:42:48+0000 ERROR Unable to execute rcon-cli save-on - try 1/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:48+0000 ERROR Failure reason: 2026/10/01 07:42:48 Failed to connect to RCON serverdial tcp 172.19.0.4:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:42:53+0000 ERROR Unable to execute rcon-cli save-on - try 2/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:42:53+0000 ERROR Failure reason: 2026/10/01 07:42:53 Failed to connect to RCON serverdial tcp 172.19.0.4:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:42:58+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:42:59+0000 INFO sleeping 6h...\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf\nweb-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh\nweb-1 | /docker-entrypoint.sh: Configuration complete; ready for start up\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: using the \"epoll\" event method\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: nginx/1.30.5\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: built by gcc 15.2.0 (Alpine 15.2.0) \nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: OS: Linux 7.0.0-1012-aws\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1024:524288\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker processes\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 30\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 31\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 32\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 33\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 34\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 35\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 36\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 37\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 38\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 39\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 40\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 41\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 42\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 43\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 44\nweb-1 | 2026/10/01 07:42:17 [notice] 1#1: start worker process 45\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:42:27 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:42:37 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:42:47 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:42:57 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:43:07 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:43:17 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:43:27 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:43:37 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:43:47 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 172.19.0.1 - - [01/Oct/2026:07:43:56 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Python-urllib/3.12\" \"-\"\ndatabase-1 | 2026-10-01 07:43:50+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\ndatabase-1 | 2026-10-01 07:43:50+00:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB\ndatabase-1 | 2026-10-01 07:43:50+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'\ndatabase-1 | 2026-10-01 07:43:50+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\ndatabase-1 | 2026-10-01 07:43:50+00:00 [Note] [Entrypoint]: MariaDB upgrade not required\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] Starting MariaDB 12.3.3-MariaDB-ubu2404 source revision 83e909fc2a0dbc394b4b683fb3fa2d7dcf26cc5e server_uid l+2TCcTfT0W+AOK53v9w4CXU3zs= as process 1\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: Compressed tables use zlib 1.3\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: Number of transaction pools: 1\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: Using ARMv8 crc32 + pmull instructions\ndatabase-1 | 2026-10-01 7:43:50 0 [Warning] mariadbd: io_uring_queue_init() failed with EPERM: sysctl kernel.io_uring_disabled has the value 2, or 1 and the user of the process is not a member of sysctl kernel.io_uring_group. (see man 2 io_uring_setup).\ndatabase-1 | create_uring failed: falling back to libaio\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: Using Linux native AIO\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: innodb_buffer_pool_size_max=8388608m, innodb_buffer_pool_size=128m\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: Completed initialization of buffer pool\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: File system buffers for log disabled (block size=4096 bytes)\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: End of log at LSN=47716\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: Opened 3 undo tablespaces\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: 128 rollback segments in 3 undo tablespaces are active.\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: log sequence number 47716; transaction id 22\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] Plugin 'FEEDBACK' is disabled.\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] Plugin 'wsrep-provider' is disabled.\ndatabase-1 | 2026-10-01 7:43:50 0 [Note] InnoDB: Buffer pool(s) load completed at 261001 7:43:50\ndatabase-1 | 2026-10-01 7:43:51 0 [Note] Server socket created on IP: '0.0.0.0', port: '3306'.\ndatabase-1 | 2026-10-01 7:43:51 0 [Note] Server socket created on IP: '::', port: '3306'.\ndatabase-1 | 2026-10-01 7:43:51 0 [Note] mariadbd: Event Scheduler: Loaded 0 events\ndatabase-1 | 2026-10-01 7:43:51 0 [Note] mariadbd: ready for connections.\ndatabase-1 | Version: '12.3.3-MariaDB-ubu2404' socket: '/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution\ndatabase-1 | 2026-10-01 7:43:56 6 [Warning] Access denied for user 'minecraft'@'localhost' (using password: YES)\nserver-1 | [07:42:52 INFO]: Loaded 1585 recipes\nserver-1 | [07:42:52 INFO]: Loaded 1688 advancements\nserver-1 | [07:42:53 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:42:53 INFO]: Loading properties\nserver-1 | [07:42:53 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:42:53 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:42:53 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:42:53 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:42:53 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:42:53 INFO]: Default game type: SURVIVAL\nserver-1 | [07:42:53 INFO]: Generating keypair\nserver-1 | [07:42:53 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:42:53 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:42:53 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:42:53 INFO]: Preparing level \"world\"\nserver-1 | [07:42:53 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:42:53 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:53 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:42:53 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:42:53 INFO]: Preparing spawn area: 100%\nserver-1 | [07:42:53 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:42:53 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:42:53 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:42:53 INFO]: Done preparing level \"world\" (0.296s)\nserver-1 | [07:42:54 INFO]: [spark] Starting background profiler...\nserver-1 | [07:42:54 INFO]: Starting remote control listener\nserver-1 | [07:42:54 INFO]: Thread RCON Listener started\nserver-1 | [07:42:54 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:42:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:42:54 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:42:54 INFO]: Running delayed init tasks\nserver-1 | [07:42:54 INFO]: Done (6.108s)! For help, type \"help\"\nserver-1 | [07:42:58 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:42:58 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:42:59 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:42:59 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:01 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:01 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:01 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:01 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:02 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:02 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:43:02 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:07 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:07 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:07 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:07 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:07 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:07 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:07 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:43:07 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:08 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:08 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:10 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:10 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:10 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:10 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:10 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:10 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:10 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:43:10 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:11 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:11 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:14 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:14 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:14 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:14 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:14 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:14 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:14 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:14 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:14 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:14 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:14 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:14 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:16 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:43:16 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:43:16 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:16 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:17 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:43:17 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:43:17 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:43:17 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:43:17 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:43:17 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:43:17 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:43:17 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:43:17 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:43:17 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:43:17 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:43:17 INFO]: [Rcon: Saved the game]\nserver-1 | [07:43:17 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:43:23 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:43:23 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:43:23 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:43:26 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:26 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:43:26 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:43:26 INFO]: [Rcon: Set [proof] for Proof to 99]\nserver-1 | [07:43:26 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:43:56.445026+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:d6792392f16bce2b86b8ad8ab2bbe4af976dc06c0fa1bc6c3e45748217bf0189\",\"ContainerName\":\"minecraft-d34e02d0-backup-1\",\"Repository\":\"\",\"Tag\":\"\",\"Platform\":\"unknown\",\"Size\":0},{\"ID\":\"sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\",\"ContainerName\":\"minecraft-d34e02d0-database-1\",\"Repository\":\"mariadb\",\"Tag\":\"\",\"Platform\":\"linux/arm64/v8\",\"Size\":485083992,\"Created\":\"2026-09-16T03:25:46.66077829Z\",\"LastTagTime\":\"2026-10-01T06:30:08.502338164Z\"},{\"ID\":\"sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\",\"ContainerName\":\"minecraft-d34e02d0-web-1\",\"Repository\":\"nginx\",\"Tag\":\"\",\"Platform\":\"linux/arm64/v8\",\"Size\":92021013,\"Created\":\"2026-09-22T22:10:07.617314791Z\",\"LastTagTime\":\"2026-10-01T06:30:07.695644704Z\"},{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-d34e02d0-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:43:56.718659+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-d34e02d0-backup-1 Stopping \n Container minecraft-d34e02d0-web-1 Stopping \n Container minecraft-d34e02d0-database-1 Stopping \n Container minecraft-d34e02d0-backup-1 Stopped \n Container minecraft-d34e02d0-backup-1 Removing \n Container minecraft-d34e02d0-backup-1 Removed \n Container minecraft-d34e02d0-server-1 Stopping \n Container minecraft-d34e02d0-web-1 Stopped \n Container minecraft-d34e02d0-web-1 Removing \n Container minecraft-d34e02d0-database-1 Stopped \n Container minecraft-d34e02d0-database-1 Removing \n Container minecraft-d34e02d0-web-1 Removed \n Container minecraft-d34e02d0-database-1 Removed \n Container minecraft-d34e02d0-server-1 Stopped \n Container minecraft-d34e02d0-server-1 Removing \n Container minecraft-d34e02d0-server-1 Removed \n Network minecraft-d34e02d0_default Removing \n Network minecraft-d34e02d0_default Removed \n"} +{"timestamp": "2026-10-01T07:43:58.041813+00:00", "cwd": "/tmp/minecraft validation la9irp4r/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/latest vanilla/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "33513", "--web-port", "58125", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--distribution", "vanilla"], "exit": 0, "output": "{\"distribution\": \"vanilla\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:43:58.084085+00:00", "cwd": "/tmp/minecraft validation la9irp4r/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/latest vanilla/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-f56bc256_default Creating \n Network minecraft-f56bc256_default Creating \n Network minecraft-f56bc256_default Created \n Network minecraft-f56bc256_default Created \n Container minecraft-f56bc256-server-1 Creating \n Container minecraft-f56bc256-server-1 Created \n Container minecraft-f56bc256-server-1 Starting \n Container minecraft-f56bc256-server-1 Started \n Container minecraft-f56bc256-server-1 Waiting \n Container minecraft-f56bc256-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:44:14.298740+00:00", "cwd": "/tmp/minecraft validation la9irp4r/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation la9irp4r/latest vanilla/scripts/status", "--port", "33513"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"26.3\", \"protocol\": 777}}\n"} +{"timestamp": "2026-10-01T07:44:14.332021+00:00", "cwd": "/tmp/minecraft validation la9irp4r/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation la9irp4r/latest vanilla/scripts/minecraft", "command", "list"], "exit": 0, "output": "There are 0 of a max of 20 players online: \n"} +{"timestamp": "2026-10-01T07:44:14.489985+00:00", "cwd": "/tmp/minecraft validation la9irp4r/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "find /data -maxdepth 1 -name \"*.jar\" -exec sha1sum {} \\;"], "exit": 0, "output": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c /data/minecraft_server.26.3.jar\n"} +{"timestamp": "2026-10-01T07:44:14.697726+00:00", "cwd": "/tmp/minecraft validation la9irp4r/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:44:14.854195+00:00", "cwd": "/tmp/minecraft validation la9irp4r/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:44:15.060678+00:00", "cwd": "/tmp/minecraft validation la9irp4r/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation la9irp4r/latest vanilla/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 2 1001 1002 4096 Oct 1 07:43 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given VANILLA\nserver-1 | [init] Successfully setup vanilla Minecraft version 26.3\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:44:02.149 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Unpacking 26.3/server-26.3.jar (versions:26.3) to versions/26.3/server-26.3.jar\nserver-1 | Unpacking at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar (libraries:at.yawk.lz4:lz4-java:1.10.1) to libraries/at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar\nserver-1 | Unpacking com/azure/azure-json/1.4.0/azure-json-1.4.0.jar (libraries:com.azure:azure-json:1.4.0) to libraries/com/azure/azure-json/1.4.0/azure-json-1.4.0.jar\nserver-1 | Unpacking com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar (libraries:com.github.oshi:oshi-core:6.9.0) to libraries/com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar\nserver-1 | Unpacking com/google/code/gson/gson/2.14.0/gson-2.14.0.jar (libraries:com.google.code.gson:gson:2.14.0) to libraries/com/google/code/gson/gson/2.14.0/gson-2.14.0.jar\nserver-1 | Unpacking com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar (libraries:com.google.guava:failureaccess:1.0.3) to libraries/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\nserver-1 | Unpacking com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar (libraries:com.google.guava:guava:33.6.0-jre) to libraries/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar\nserver-1 | Unpacking com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar (libraries:com.microsoft.azure:msal4j:1.24.1) to libraries/com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar\nserver-1 | Unpacking com/mojang/authlib/10.0.77/authlib-10.0.77.jar (libraries:com.mojang:authlib:10.0.77) to libraries/com/mojang/authlib/10.0.77/authlib-10.0.77.jar\nserver-1 | Unpacking com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar (libraries:com.mojang:brigadier:1.3.11) to libraries/com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar\nserver-1 | Unpacking com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar (libraries:com.mojang:datafixerupper:10.0.21) to libraries/com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar\nserver-1 | Unpacking com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar (libraries:com.mojang:jtracy:1.14.38) to libraries/com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar\nserver-1 | Unpacking com/mojang/logging/1.7.12/logging-1.7.12.jar (libraries:com.mojang:logging:1.7.12) to libraries/com/mojang/logging/1.7.12/logging-1.7.12.jar\nserver-1 | Unpacking commons-io/commons-io/2.20.0/commons-io-2.20.0.jar (libraries:commons-io:commons-io:2.20.0) to libraries/commons-io/commons-io/2.20.0/commons-io-2.20.0.jar\nserver-1 | Unpacking io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar (libraries:io.netty:netty-buffer:4.2.16.Final) to libraries/io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar (libraries:io.netty:netty-codec-base:4.2.16.Final) to libraries/io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar (libraries:io.netty:netty-codec-compression:4.2.16.Final) to libraries/io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar (libraries:io.netty:netty-codec-http:4.2.16.Final) to libraries/io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar (libraries:io.netty:netty-common:4.2.16.Final) to libraries/io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar (libraries:io.netty:netty-handler:4.2.16.Final) to libraries/io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar (libraries:io.netty:netty-resolver:4.2.16.Final) to libraries/io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar (libraries:io.netty:netty-transport:4.2.16.Final) to libraries/io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-epoll:4.2.16.Final) to libraries/io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-kqueue:4.2.16.Final) to libraries/io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-x86_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-aarch_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-x86_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-aarch_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar (libraries:io.netty:netty-transport-native-unix-common:4.2.16.Final) to libraries/io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar\nserver-1 | Unpacking it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar (libraries:it.unimi.dsi:fastutil:8.5.18) to libraries/it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar\nserver-1 | Unpacking net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar (libraries:net.java.dev.jna:jna:5.17.0) to libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar\nserver-1 | Unpacking net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar (libraries:net.java.dev.jna:jna-platform:5.17.0) to libraries/net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar\nserver-1 | Unpacking net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar (libraries:net.sf.jopt-simple:jopt-simple:5.0.4) to libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar\nserver-1 | Unpacking org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar (libraries:org.apache.commons:commons-lang3:3.20.0) to libraries/org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-api:2.26.0) to libraries/org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-core:2.26.0) to libraries/org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-slf4j2-impl:2.26.0) to libraries/org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar\nserver-1 | Unpacking org/joml/joml/1.10.9/joml-1.10.9.jar (libraries:org.joml:joml:1.10.9) to libraries/org/joml/joml/1.10.9/joml-1.10.9.jar\nserver-1 | Unpacking org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar (libraries:org.jspecify:jspecify:1.0.0) to libraries/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar\nserver-1 | Unpacking org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar (libraries:org.slf4j:slf4j-api:2.0.17) to libraries/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar\nserver-1 | Starting net.minecraft.server.Main\nserver-1 | WARNING: A restricted method in java.lang.System has been called\nserver-1 | WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/data/libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar)\nserver-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nserver-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nserver-1 | \nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.9/joml-1.10.9.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:44:06] [ServerMain/INFO]: Environment: Environment[discoveryUrl=https://discovery.minecraftservices.com/minecraft/client, name=PROD]\nserver-1 | [07:44:07] [Worker-Main-15/INFO]: No existing world data, creating new world\nserver-1 | [07:44:07] [Worker-Main-6/INFO]: Loaded 1866 advancements\nserver-1 | [07:44:07] [Server thread/INFO]: Starting minecraft server version 26.3\nserver-1 | [07:44:07] [Server thread/INFO]: Loading properties\nserver-1 | [07:44:07] [Server thread/INFO]: Default game type: SURVIVAL\nserver-1 | [07:44:07] [Server thread/INFO]: Generating keypair\nserver-1 | [07:44:07] [Server thread/INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:44:08] [Server thread/INFO]: Preparing level \"world\"\nserver-1 | [07:44:08] [Server thread/INFO]: Selecting global world spawn...\nserver-1 | [07:44:09] [Server thread/INFO]: Loading 0 persistent chunks...\nserver-1 | [07:44:09] [Server thread/INFO]: Preparing spawn area: 100%\nserver-1 | [07:44:09] [Server thread/INFO]: Time elapsed: 1297 ms\nserver-1 | [07:44:09] [Server thread/INFO]: Done (1.459s)! For help, type \"help\"\nserver-1 | [07:44:09] [Server thread/INFO]: Starting remote control listener\nserver-1 | [07:44:09] [Server thread/INFO]: Thread RCON Listener started\nserver-1 | [07:44:09] [Server thread/INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:44:09] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:44:09] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:44:09] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:44:14] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:44:14] [RCON Client /0:0:0:0:0:0:0:1 #2/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:44:14] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:44:14] [RCON Client /0:0:0:0:0:0:0:1 #3/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:44:15.216819+00:00", "cwd": "/tmp/minecraft validation la9irp4r/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation la9irp4r/latest vanilla/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-f56bc256-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:44:15.543023+00:00", "cwd": "/tmp/minecraft validation la9irp4r/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/latest vanilla/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-f56bc256-server-1 Stopping \n Container minecraft-f56bc256-server-1 Stopped \n Container minecraft-f56bc256-server-1 Removing \n Container minecraft-f56bc256-server-1 Removed \n Network minecraft-f56bc256_default Removing \n Network minecraft-f56bc256_default Removed \n"} +{"timestamp": "2026-10-01T07:44:16.611184+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "39105", "--web-port", "46023", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--network"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": true, \"profiles\": [\"proxy\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:44:16.654183+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-babe6232_default Creating \n Network minecraft-babe6232_default Creating \n Network minecraft-babe6232_default Created \n Network minecraft-babe6232_default Created \n Container minecraft-babe6232-server-1 Creating \n Container minecraft-babe6232-server-1 Created \n Container minecraft-babe6232-proxy-1 Creating \n Container minecraft-babe6232-proxy-1 Created \n Container minecraft-babe6232-server-1 Starting \n Container minecraft-babe6232-server-1 Started \n Container minecraft-babe6232-server-1 Waiting \n Container minecraft-babe6232-server-1 Healthy \n Container minecraft-babe6232-proxy-1 Starting \n Container minecraft-babe6232-proxy-1 Started \n Container minecraft-babe6232-server-1 Waiting \n Container minecraft-babe6232-proxy-1 Waiting \n Container minecraft-babe6232-server-1 Healthy \n Container minecraft-babe6232-proxy-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:44:43.655509+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation la9irp4r/velocity network/scripts/status", "--port", "39105"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"modinfo\": {\"modList\": [], \"type\": \"FML\"}, \"players\": {\"max\": 20, \"online\": 0, \"sample\": []}, \"version\": {\"name\": \"Velocity 1.7.2-26.3\", \"protocol\": 775}}\n"} +{"timestamp": "2026-10-01T07:44:43.688905+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "compose", "config", "--format", "json"], "exit": 0, "output": "{\n \"name\": \"minecraft-babe6232\",\n \"networks\": {\n \"default\": {\n \"name\": \"minecraft-babe6232_default\",\n \"ipam\": {}\n }\n },\n \"secrets\": {\n \"rcon\": {\n \"name\": \"minecraft-babe6232_rcon\",\n \"file\": \"/tmp/minecraft validation la9irp4r/velocity network/.state/secrets/rcon\"\n }\n },\n \"services\": {\n \"proxy\": {\n \"profiles\": [\n \"proxy\"\n ],\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"depends_on\": {\n \"server\": {\n \"condition\": \"service_healthy\",\n \"required\": true\n }\n },\n \"entrypoint\": null,\n \"environment\": {\n \"ENABLE_RCON\": \"false\",\n \"MEMORY\": \"512M\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"TYPE\": \"VELOCITY\",\n \"VELOCITY_BUILD_ID\": \"36\",\n \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-monitor\",\n \"status\",\n \"--host\",\n \"localhost\",\n \"--port\",\n \"25565\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 12\n },\n \"image\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\n \"mem_limit\": \"1073741824\",\n \"networks\": {\n \"default\": null\n },\n \"ports\": [\n {\n \"mode\": \"ingress\",\n \"host_ip\": \"127.0.0.1\",\n \"target\": 25565,\n \"published\": \"39105\",\n \"protocol\": \"tcp\"\n }\n ],\n \"restart\": \"unless-stopped\",\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"30s\",\n \"user\": \"1001:1002\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation la9irp4r/velocity network/data/proxy\",\n \"target\": \"/server\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation la9irp4r/velocity network/.state/velocity.toml\",\n \"target\": \"/server/velocity.toml\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation la9irp4r/velocity network/.state/secrets/forwarding\",\n \"target\": \"/server/forwarding.secret\",\n \"read_only\": true,\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation la9irp4r/velocity network/plugins/proxy\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {}\n }\n ]\n },\n \"server\": {\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"entrypoint\": null,\n \"environment\": {\n \"COPY_CONFIG_DEST\": \"/data\",\n \"ENABLE_QUERY\": \"false\",\n \"ENABLE_RCON\": \"true\",\n \"EULA\": \"TRUE\",\n \"MEMORY\": \"2G\",\n \"MOTD\": \"Unicode \u2603 $$HOME $${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\",\n \"ONLINE_MODE\": \"false\",\n \"PAPER_BUILD\": \"129\",\n \"PAUSE_WHEN_EMPTY_SECONDS\": \"-1\",\n \"RCON_PASSWORD_FILE\": \"/run/secrets/rcon\",\n \"SIMULATION_DISTANCE\": \"4\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"SYNC_SKIP_NEWER_IN_DESTINATION\": \"false\",\n \"TYPE\": \"PAPER\",\n \"VERSION\": \"26.2\",\n \"VIEW_DISTANCE\": \"6\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-health\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 30,\n \"start_period\": \"1m0s\"\n },\n \"image\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\n \"mem_limit\": \"3221225472\",\n \"networks\": {\n \"default\": null\n },\n \"restart\": \"unless-stopped\",\n \"secrets\": [\n {\n \"source\": \"rcon\",\n \"target\": \"/run/secrets/rcon\"\n }\n ],\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"2m0s\",\n \"user\": \"1001:1002\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation la9irp4r/velocity network/data/server\",\n \"target\": \"/data\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation la9irp4r/velocity network/configs/server\",\n \"target\": \"/config\",\n \"read_only\": true,\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation la9irp4r/velocity network/plugins/server\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {}\n }\n ]\n }\n }\n}"} +{"timestamp": "2026-10-01T07:44:43.849153+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:44:44.057832+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "sha256sum", "/server/velocity-4.2.1-SNAPSHOT-36.jar"], "exit": 0, "output": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c /server/velocity-4.2.1-SNAPSHOT-36.jar\n"} +{"timestamp": "2026-10-01T07:44:44.466859+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation la9irp4r/velocity network/tests/login.py", "--port", "39105", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:44:44.517636+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-babe6232-server-1 Recreate \n Container minecraft-babe6232-server-1 Recreated \n Container minecraft-babe6232-proxy-1 Recreate \n Container minecraft-babe6232-proxy-1 Recreated \n Container minecraft-babe6232-server-1 Starting \n Container minecraft-babe6232-server-1 Started \n Container minecraft-babe6232-server-1 Waiting \n Container minecraft-babe6232-server-1 Healthy \n Container minecraft-babe6232-proxy-1 Starting \n Container minecraft-babe6232-proxy-1 Started \n Container minecraft-babe6232-proxy-1 Waiting \n Container minecraft-babe6232-server-1 Waiting \n Container minecraft-babe6232-server-1 Healthy \n Container minecraft-babe6232-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:45:08.317190+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation la9irp4r/velocity network/tests/login.py", "--port", "39105", "--verify-cli", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft"], "exit": 0, "output": "{\"play\": true, \"backend_list\": \"There are 1 of a max of 20 players online: ForwardProof\\n\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 1], [\"configuration\", 12], [\"configuration\", 14], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 13], [\"configuration\", 4], [\"configuration\", 4], [\"configuration\", 3]]}\n"} +{"timestamp": "2026-10-01T07:45:11.179514+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "compose", "logs", "--no-color", "server", "proxy"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:45:04.876832986Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:45:05 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:45:05 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:45:05 WARN]: The proxy is running in offline mode! This is a security risk and you will NOT receive any support!\nproxy-1 | [07:45:05 INFO]: Loading localizations...\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:44 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:44:50.628 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:44:50.632 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:44:52.186751042Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:44:52 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:44:52 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:44:52 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:44:52 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nproxy-1 | [07:45:05 INFO]: Loading plugins...\nproxy-1 | [07:45:05 INFO]: Loaded 1 plugins\nproxy-1 | [07:45:05 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:45:05 INFO]: Done (0.49s)!\nproxy-1 | [07:45:08 INFO]: [connected player] ForwardProof (/172.19.0.1:40432) has connected\nproxy-1 | [07:45:08 INFO]: [server connection] ForwardProof -> main has connected\nproxy-1 | [07:45:11 INFO]: [connected player] ForwardProof (/172.19.0.1:40432) has disconnected\nproxy-1 | [07:45:11 INFO]: [server connection] ForwardProof -> main has disconnected\nserver-1 | [07:44:55 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:44:55 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:44:55 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 265.1ms\nserver-1 | [07:44:56 INFO]: Loaded 1585 recipes\nserver-1 | [07:44:56 INFO]: Loaded 1688 advancements\nserver-1 | [07:44:56 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:44:56 INFO]: Loading properties\nserver-1 | [07:44:56 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:44:56 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:44:56 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:44:56 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:44:56 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:44:56 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:44:57 INFO]: Default game type: SURVIVAL\nserver-1 | [07:44:57 INFO]: Generating keypair\nserver-1 | [07:44:57 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:44:57 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:44:57 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:44:57 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:44:57 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:44:57 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:44:57 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:44:57 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:44:57 INFO]: Preparing level \"world\"\nserver-1 | [07:44:57 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:44:57 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:44:57 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:44:57 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:44:57 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:44:57 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:44:57 INFO]: Done preparing level \"world\" (0.286s)\nserver-1 | [07:44:57 INFO]: [spark] Starting background profiler...\nserver-1 | [07:44:57 INFO]: Starting remote control listener\nserver-1 | [07:44:57 INFO]: Thread RCON Listener started\nserver-1 | [07:44:57 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:44:57 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:44:57 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:44:57 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:44:57 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:44:57 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:44:57 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:44:57 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:44:57 INFO]: Running delayed init tasks\nserver-1 | [07:44:57 INFO]: Done (6.040s)! For help, type \"help\"\nserver-1 | [07:45:08 INFO]: UUID of player ForwardProof is d2c1afbf-5081-3449-8752-8558175e1427\nserver-1 | [07:45:11 INFO]: ForwardProof joined the game\nserver-1 | [07:45:11 INFO]: ForwardProof[/172.19.0.1:56524] logged in with entity id 26 at ([minecraft:overworld]-313.5, 75.0, 147.5)\nserver-1 | [07:45:11 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:45:11 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:45:11 INFO]: ForwardProof lost connection: Disconnected\nserver-1 | [07:45:11 INFO]: ForwardProof left the game\n"} +{"timestamp": "2026-10-01T07:45:11.337723+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "compose", "ps", "-q", "server"], "exit": 0, "output": "7162dab3b44f36a7f542bb3b9e7ef1fb3c5478043e0262c2e4649b13395ab58f\n"} +{"timestamp": "2026-10-01T07:45:11.492006+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", "7162dab3b44f36a7f542bb3b9e7ef1fb3c5478043e0262c2e4649b13395ab58f"], "exit": 0, "output": "172.19.0.2\n"} +{"timestamp": "2026-10-01T07:45:11.508076+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation la9irp4r/velocity network/tests/login.py", "--host", "172.19.0.2", "--port", "25565", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"4\\\"This server requires you to connect with Velocity.\\\"\", \"packets\": [[\"login\", 4], [\"login\", 0]]}\n"} +{"timestamp": "2026-10-01T07:45:11.560655+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-babe6232-server-1 Recreate \n Container minecraft-babe6232-server-1 Recreated \n Container minecraft-babe6232-server-1 Starting \n Container minecraft-babe6232-server-1 Started \n Container minecraft-babe6232-server-1 Waiting \n Container minecraft-babe6232-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:45:28.547923+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation la9irp4r/velocity network/tests/login.py", "--port", "39105", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"\\n\\b\\u0000\\u0005color\\u0000\\u0003red\\b\\u0000\\u0004text\\u0000:Unable to connect to main: Unable to verify player details\\u0000\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 2]]}\n"} +{"timestamp": "2026-10-01T07:45:28.634130+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-babe6232-server-1 Recreate \n Container minecraft-babe6232-server-1 Recreated \n Container minecraft-babe6232-proxy-1 Recreate \n Container minecraft-babe6232-proxy-1 Recreated \n Container minecraft-babe6232-server-1 Starting \n Container minecraft-babe6232-server-1 Started \n Container minecraft-babe6232-server-1 Waiting \n Container minecraft-babe6232-server-1 Healthy \n Container minecraft-babe6232-proxy-1 Starting \n Container minecraft-babe6232-proxy-1 Started \n Container minecraft-babe6232-proxy-1 Waiting \n Container minecraft-babe6232-server-1 Waiting \n Container minecraft-babe6232-server-1 Healthy \n Container minecraft-babe6232-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:45:51.683987+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation la9irp4r/velocity network/tests/login.py", "--port", "39105", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:45:51.733285+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:45:48.189224680Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:45:48 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:45:48 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:45:48 INFO]: Loading localizations...\nproxy-1 | [07:45:48 INFO]: Loading plugins...\nproxy-1 | [07:45:48 INFO]: Loaded 1 plugins\nproxy-1 | [07:45:48 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:45:48 INFO]: Done (0.52s)!\nproxy-1 | [07:45:51 INFO]: [initial connection] /172.19.0.1:44418 has disconnected\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:44 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:45:33.923 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:45:33.927 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:45:35.469089999Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:45:35 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:45:35 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:45:35 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:45:35 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:45:38 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:45:38 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:45:38 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 260.8ms\nserver-1 | [07:45:39 INFO]: Loaded 1585 recipes\nserver-1 | [07:45:39 INFO]: Loaded 1688 advancements\nserver-1 | [07:45:39 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:45:39 INFO]: Loading properties\nserver-1 | [07:45:39 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:45:40 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:45:40 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:45:40 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:45:40 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:45:40 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:45:40 INFO]: Default game type: SURVIVAL\nserver-1 | [07:45:40 INFO]: Generating keypair\nserver-1 | [07:45:40 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:45:40 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:45:40 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:45:40 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:45:40 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:45:40 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:45:40 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:45:40 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:45:40 INFO]: Preparing level \"world\"\nserver-1 | [07:45:40 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:45:40 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:45:40 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:45:40 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:45:40 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:45:40 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:45:40 INFO]: Done preparing level \"world\" (0.294s)\nserver-1 | [07:45:40 INFO]: [spark] Starting background profiler...\nserver-1 | [07:45:41 INFO]: Starting remote control listener\nserver-1 | [07:45:41 INFO]: Thread RCON Listener started\nserver-1 | [07:45:41 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:45:41 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:45:41 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:45:41 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:45:41 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:45:41 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:45:41 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:45:41 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:45:41 INFO]: Running delayed init tasks\nserver-1 | [07:45:41 INFO]: Done (6.068s)! For help, type \"help\"\n"} +{"timestamp": "2026-10-01T07:45:51.893424+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\"ContainerName\":\"minecraft-babe6232-proxy-1\",\"Repository\":\"itzg/mc-proxy\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":968846183,\"Created\":\"2026-09-18T17:24:52.935406437Z\",\"LastTagTime\":\"2026-10-01T07:26:34.563926288Z\"},{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-babe6232-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:45:52.098540+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-babe6232-proxy-1 Stopping \n Container minecraft-babe6232-proxy-1 Stopped \n Container minecraft-babe6232-proxy-1 Removing \n Container minecraft-babe6232-proxy-1 Removed \n Container minecraft-babe6232-server-1 Stopping \n Container minecraft-babe6232-server-1 Stopped \n Container minecraft-babe6232-server-1 Removing \n Container minecraft-babe6232-server-1 Removed \n Network minecraft-babe6232_default Removing \n Network minecraft-babe6232_default Removed \n"} +{"timestamp": "2026-10-01T07:45:53.858868+00:00", "cwd": "/tmp/minecraft validation la9irp4r/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation la9irp4r/velocity network/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.020441+00:00", "cwd": "/tmp/minecraft validation la9irp4r/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation la9irp4r/latest vanilla/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.176973+00:00", "cwd": "/tmp/minecraft validation la9irp4r/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation la9irp4r/restored server/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.333791+00:00", "cwd": "/tmp/minecraft validation la9irp4r/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation la9irp4r/stable paper/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": " Volume minecraft-d34e02d0_database Removing \n Volume minecraft-d34e02d0_database Removed \n"} +{"timestamp": "2026-10-01T07:45:54.490122+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "minecraft-sentinel-d7c8025242ceb4db"], "exit": 0, "output": "10019f9eb24dbd3e97ea9f684ece7f7ba6a39319242ae566cec18cffa717e6ce\n"} +{"timestamp": "2026-10-01T07:45:54.506038+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "rm", "minecraft-sentinel-d7c8025242ceb4db"], "exit": 0, "output": "minecraft-sentinel-d7c8025242ceb4db\n"} +{"timestamp": "2026-10-01T07:45:54.540796+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "ps", "-aq"], "exit": 0, "output": "9fc1c9de7bd4\nb6565a0b2641\ncb032c5d0307\nc4b270652fae\n83b52f82cc55\nfcc32bf402ee\n3faf83c3849e\n14cb2d0322a8\n7ca13c7a9157\n8a106aa4cdf8\n05758f1c498d\n90ed72c10c1c\n4e36373b3ff8\n31f7b35c97a2\n1b9e84a6dac9\n5440b03cc0be\nb659460c72ed\n7910b8100224\nc59f1f70d70f\n1f2fd13508fb\n9a0f33f0c8af\n5f0ffbf98fe9\nd22abb2de519\n"} +{"timestamp": "2026-10-01T07:45:54.597164+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-d34e02d0"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.612836+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-d34e02d0"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.628792+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-d34e02d0"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.644708+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-5eaf567a"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.660554+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-5eaf567a"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.677108+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-5eaf567a"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.692393+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-f56bc256"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.708037+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-f56bc256"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.723320+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-f56bc256"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.740572+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-babe6232"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.756039+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-babe6232"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:45:54.771314+00:00", "cwd": "/tmp/minecraft-final-sentinel-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-babe6232"], "exit": 0, "output": ""} diff --git a/docs/proof/review-fixes/runtime-arm64-final/inventory-diff.json b/docs/proof/review-fixes/runtime-arm64-final/inventory-diff.json new file mode 100644 index 0000000..b644c18 --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64-final/inventory-diff.json @@ -0,0 +1,29 @@ +{ + "removed_unrelated_ids": [], + "added_unrelated_ids": [], + "preserved_ids": [ + "05758f1c498d", + "14cb2d0322a8", + "1b9e84a6dac9", + "1f2fd13508fb", + "31f7b35c97a2", + "3faf83c3849e", + "4e36373b3ff8", + "5440b03cc0be", + "5f0ffbf98fe9", + "7910b8100224", + "7ca13c7a9157", + "83b52f82cc55", + "8a106aa4cdf8", + "90ed72c10c1c", + "9a0f33f0c8af", + "9fc1c9de7bd4", + "b6565a0b2641", + "b659460c72ed", + "c4b270652fae", + "c59f1f70d70f", + "cb032c5d0307", + "d22abb2de519", + "fcc32bf402ee" + ] +} diff --git a/docs/proof/review-fixes/runtime-arm64-final/overlap-first.log b/docs/proof/review-fixes/runtime-arm64-final/overlap-first.log new file mode 100644 index 0000000..8aafd36 --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64-final/overlap-first.log @@ -0,0 +1,69 @@ + Container minecraft-d34e02d0-backup-run-b71d83fb647f Creating + Container minecraft-d34e02d0-backup-run-b71d83fb647f Created +time="2026-10-01T07:43:12Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:43:12+0000 INFO Repository already initialized +2026-10-01T07:43:12+0000 INFO Checking for stale locks +2026-10-01T07:43:13+0000 INFO Checking repo integrity +2026-10-01T07:43:14+0000 INFO waiting initial delay of 0... +2026-10-01T07:43:14+0000 INFO waiting for rcon readiness... +2026-10-01T07:43:14+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:43:14+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:43:14+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:43:14+0000 INFO Command executed successfully sync +2026-10-01T07:43:17+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:43:17+0000 INFO using parent snapshot dc79dca3 +2026-10-01T07:43:17+0000 INFO +2026-10-01T07:43:17+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:43:17+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:43:17+0000 INFO Added to the repository: 31.213 KiB (13.047 KiB stored) +2026-10-01T07:43:17+0000 INFO +2026-10-01T07:43:17+0000 INFO processed 182 files, 174.571 MiB in 0:00 +2026-10-01T07:43:17+0000 INFO snapshot 8fd1cc78 saved +2026-10-01T07:43:17+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:43:18+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:43:19+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:43:19+0000 INFO keep 2 snapshots: +2026-10-01T07:43:19+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:43:19+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:43:19+0000 INFO e420d03b 2026-10-01 07:42:41 minecraft mc_backups,server oldest daily snapshot /data 174.571 MiB +2026-10-01T07:43:19+0000 INFO oldest weekly snapshot +2026-10-01T07:43:19+0000 INFO oldest monthly snapshot +2026-10-01T07:43:19+0000 INFO 8fd1cc78 2026-10-01 07:43:17 minecraft mc_backups,server daily snapshot /data 174.571 MiB +2026-10-01T07:43:19+0000 INFO weekly snapshot +2026-10-01T07:43:19+0000 INFO monthly snapshot +2026-10-01T07:43:19+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:43:19+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:43:19+0000 INFO 2 snapshots +2026-10-01T07:43:19+0000 INFO +2026-10-01T07:43:19+0000 INFO remove 1 snapshots: +2026-10-01T07:43:19+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:43:19+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:43:19+0000 INFO dc79dca3 2026-10-01 07:43:01 minecraft mc_backups,server /data 174.571 MiB +2026-10-01T07:43:19+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:43:19+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:43:19+0000 INFO 1 snapshots +2026-10-01T07:43:19+0000 INFO +2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:43:19+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:43:19+0000 INFO loading all snapshots... +2026-10-01T07:43:19+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:43:19+0000 INFO searching used packs... +2026-10-01T07:43:19+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 15 / 15 packs processed +2026-10-01T07:43:19+0000 INFO +2026-10-01T07:43:19+0000 INFO to repack: 32 blobs / 16.166 KiB +2026-10-01T07:43:19+0000 INFO this removes: 24 blobs / 11.904 KiB +2026-10-01T07:43:19+0000 INFO to delete: 0 blobs / 0 B +2026-10-01T07:43:19+0000 INFO total prune: 24 blobs / 11.904 KiB +2026-10-01T07:43:19+0000 INFO remaining: 613 blobs / 160.165 MiB +2026-10-01T07:43:19+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:43:19+0000 INFO +2026-10-01T07:43:19+0000 INFO repacking packs +2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 2 / 2 packs repacked +2026-10-01T07:43:19+0000 INFO rebuilding index +2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 4 / 4 indexes processed +2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted +2026-10-01T07:43:19+0000 INFO removing 2 old packs +2026-10-01T07:43:19+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:43:19+0000 INFO done diff --git a/docs/proof/review-fixes/runtime-arm64-final/overlap-second.log b/docs/proof/review-fixes/runtime-arm64-final/overlap-second.log new file mode 100644 index 0000000..f6b0a42 --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64-final/overlap-second.log @@ -0,0 +1,70 @@ + Container minecraft-d34e02d0-backup-run-5db2adcd23c8 Creating + Container minecraft-d34e02d0-backup-run-5db2adcd23c8 Created +time="2026-10-01T07:43:14Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:43:15+0000 INFO Repository already initialized +2026-10-01T07:43:15+0000 INFO Checking for stale locks +2026-10-01T07:43:15+0000 INFO Checking repo integrity +2026-10-01T07:43:16+0000 INFO waiting initial delay of 0... +2026-10-01T07:43:16+0000 INFO waiting for rcon readiness... +2026-10-01T07:43:16+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:43:17+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:43:17+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:43:17+0000 INFO Command executed successfully sync +2026-10-01T07:43:17+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:43:18+0000 INFO repo already locked, waiting up to 1m0s for the lock +2026-10-01T07:43:23+0000 INFO using parent snapshot 8fd1cc78 +2026-10-01T07:43:23+0000 INFO +2026-10-01T07:43:23+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:43:23+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:43:23+0000 INFO Added to the repository: 30.767 KiB (12.488 KiB stored) +2026-10-01T07:43:23+0000 INFO +2026-10-01T07:43:23+0000 INFO processed 182 files, 174.571 MiB in 0:05 +2026-10-01T07:43:23+0000 INFO snapshot 78820d82 saved +2026-10-01T07:43:23+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:43:24+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:43:25+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:43:25+0000 INFO keep 2 snapshots: +2026-10-01T07:43:25+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:43:25+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:43:25+0000 INFO e420d03b 2026-10-01 07:42:41 minecraft mc_backups,server oldest daily snapshot /data 174.571 MiB +2026-10-01T07:43:25+0000 INFO oldest weekly snapshot +2026-10-01T07:43:25+0000 INFO oldest monthly snapshot +2026-10-01T07:43:25+0000 INFO 78820d82 2026-10-01 07:43:17 minecraft mc_backups,server daily snapshot /data 174.571 MiB +2026-10-01T07:43:25+0000 INFO weekly snapshot +2026-10-01T07:43:25+0000 INFO monthly snapshot +2026-10-01T07:43:25+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:43:25+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:43:25+0000 INFO 2 snapshots +2026-10-01T07:43:25+0000 INFO +2026-10-01T07:43:25+0000 INFO remove 1 snapshots: +2026-10-01T07:43:25+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:43:25+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:43:25+0000 INFO 8fd1cc78 2026-10-01 07:43:17 minecraft mc_backups,server /data 174.571 MiB +2026-10-01T07:43:25+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:43:25+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:43:25+0000 INFO 1 snapshots +2026-10-01T07:43:25+0000 INFO +2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:43:25+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:43:25+0000 INFO loading all snapshots... +2026-10-01T07:43:25+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:43:25+0000 INFO searching used packs... +2026-10-01T07:43:25+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 17 / 17 packs processed +2026-10-01T07:43:25+0000 INFO +2026-10-01T07:43:25+0000 INFO to repack: 8 blobs / 2.312 KiB +2026-10-01T07:43:25+0000 INFO this removes: 7 blobs / 1.469 KiB +2026-10-01T07:43:25+0000 INFO to delete: 17 blobs / 10.090 KiB +2026-10-01T07:43:25+0000 INFO total prune: 24 blobs / 11.559 KiB +2026-10-01T07:43:25+0000 INFO remaining: 613 blobs / 160.165 MiB +2026-10-01T07:43:25+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:43:25+0000 INFO +2026-10-01T07:43:25+0000 INFO repacking packs +2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 1 / 1 packs repacked +2026-10-01T07:43:25+0000 INFO rebuilding index +2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 3 / 3 indexes processed +2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted +2026-10-01T07:43:25+0000 INFO removing 2 old packs +2026-10-01T07:43:25+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:43:25+0000 INFO done diff --git a/docs/proof/review-fixes/runtime-arm64-final/summary.json b/docs/proof/review-fixes/runtime-arm64-final/summary.json new file mode 100644 index 0000000..002225b --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64-final/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:42:13.800960+00:00", + "mode": "fullDocker", + "passed": true, + "finished": "2026-10-01T07:45:54.966880+00:00" +} diff --git a/docs/proof/review-fixes/runtime-arm64-final/versions.env b/docs/proof/review-fixes/runtime-arm64-final/versions.env new file mode 100644 index 0000000..16264c6 --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64-final/versions.env @@ -0,0 +1,13 @@ +SERVER_IMAGE=itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e +PROXY_IMAGE=itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 +BACKUP_IMAGE=itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 +DATABASE_IMAGE=mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1 +WEB_IMAGE=nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 +PAPER_VERSION=26.2 +PAPER_BUILD=129 +VANILLA_VERSION=26.3 +VELOCITY_VERSION=4.2.1-SNAPSHOT +VELOCITY_BUILD_ID=36 +PAPER_SHA256=b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 +VELOCITY_SHA256=62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c +VANILLA_SERVER_SHA1=33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c diff --git a/docs/proof/review-fixes/runtime-arm64/assertions.json b/docs/proof/review-fixes/runtime-arm64/assertions.json new file mode 100644 index 0000000..428c80a --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64/assertions.json @@ -0,0 +1,182 @@ +[ + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "custom MOTD reached protocol", + "passed": true + }, + { + "assertion": "Paper exact build", + "passed": true + }, + { + "assertion": "Paper downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective standalone authentication and query settings", + "passed": true + }, + { + "assertion": "standalone requires account authentication", + "passed": true + }, + { + "assertion": "wrong RCON password denied", + "passed": true + }, + { + "assertion": "world survives container recreation", + "passed": true + }, + { + "assertion": "encrypted snapshot created", + "passed": true + }, + { + "assertion": "backup flushed world and resumed saves", + "passed": true + }, + { + "assertion": "scheduled backup interval active", + "passed": true + }, + { + "assertion": "backup failure is reported", + "passed": true + }, + { + "assertion": "backup failure resumes automatic saving", + "passed": true + }, + { + "assertion": "inner Restic failure returns nonzero with useful output", + "passed": true + }, + { + "assertion": "inner Restic failure resumes saves", + "passed": true + }, + { + "assertion": "first backup holds lock after flush", + "passed": true + }, + { + "assertion": "second backup completed nonmutating readiness while first locked", + "passed": true + }, + { + "assertion": "overlap cannot enable saving while first holds lock", + "passed": true + }, + { + "assertion": "overlap-first succeeded", + "passed": true + }, + { + "assertion": "overlap-second succeeded", + "passed": true + }, + { + "assertion": "both overlapping backups resume saves", + "passed": true + }, + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "restored server contains snapshot world", + "passed": true + }, + { + "assertion": "database authenticates and round trips data", + "passed": true + }, + { + "assertion": "database survives recreation", + "passed": true + }, + { + "assertion": "database wrong password denied", + "passed": true + }, + { + "assertion": "optional web serves files", + "passed": true + }, + { + "assertion": "26.3 Minecraft status", + "passed": true + }, + { + "assertion": "Vanilla RCON works", + "passed": true + }, + { + "assertion": "Vanilla downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective Vanilla authentication and query settings", + "passed": true + }, + { + "assertion": "Velocity Minecraft status", + "passed": true + }, + { + "assertion": "literal Velocity MOTD reached protocol", + "passed": true + }, + { + "assertion": "backend has no published port", + "passed": true + }, + { + "assertion": "production Velocity online authentication", + "passed": true + }, + { + "assertion": "forwarding secret reaches effective Paper config", + "passed": true + }, + { + "assertion": "Velocity downloaded artifact checksum", + "passed": true + }, + { + "assertion": "production proxy requires account authentication", + "passed": true + }, + { + "assertion": "real client enters play through authenticated modern forwarding", + "passed": true + }, + { + "assertion": "backend logged the real client join", + "passed": true + }, + { + "assertion": "direct backend client denied without forwarding", + "passed": true + }, + { + "assertion": "wrong forwarding secret denies client login", + "passed": true + }, + { + "assertion": "production online authentication restored", + "passed": true + }, + { + "assertion": "unrelated stable sentinel survives contaminated cleanup", + "passed": true + }, + { + "assertion": "owned containers networks and volumes removed", + "passed": true + } +] diff --git a/docs/proof/review-fixes/runtime-arm64/cleanup.json b/docs/proof/review-fixes/runtime-arm64/cleanup.json new file mode 100644 index 0000000..943c2d4 --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64/cleanup.json @@ -0,0 +1,3 @@ +{ + "remaining": [] +} diff --git a/docs/proof/review-fixes/runtime-arm64/commands.jsonl b/docs/proof/review-fixes/runtime-arm64/commands.jsonl new file mode 100644 index 0000000..890a69b --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64/commands.jsonl @@ -0,0 +1,95 @@ +{"timestamp": "2026-10-01T07:28:38.252571+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 0, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_ambient_environment_cannot_redirect_project_or_pins (test_cli.SetupBoundary.test_ambient_environment_cannot_redirect_project_or_pins) ... ok\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_rejects_network_bypasses (test_cli.SetupBoundary.test_doctor_rejects_network_bypasses) ... ok\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_literal_motd_survives_setup_and_compose (test_cli.SetupBoundary.test_literal_motd_survives_setup_and_compose) ... ok\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n----------------------------------------------------------------------\nRan 9 tests in 2.732s\n\nOK\n"} +{"timestamp": "2026-10-01T07:28:41.033774+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "ps", "-aq"], "exit": 0, "output": "9fc1c9de7bd4\nb6565a0b2641\ncb032c5d0307\nc4b270652fae\n83b52f82cc55\nfcc32bf402ee\n3faf83c3849e\n14cb2d0322a8\n7ca13c7a9157\n8a106aa4cdf8\n05758f1c498d\n90ed72c10c1c\n4e36373b3ff8\n31f7b35c97a2\n1b9e84a6dac9\n5440b03cc0be\nb659460c72ed\n7910b8100224\nc59f1f70d70f\n1f2fd13508fb\n9a0f33f0c8af\n5f0ffbf98fe9\nd22abb2de519\n"} +{"timestamp": "2026-10-01T07:28:41.085917+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "version"], "exit": 0, "output": "Client: Docker Engine - Community\n Version: 29.8.0\n API version: 1.56\n Go version: go1.26.8\n Git commit: 88096ef\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Context: default\n\nServer: Docker Engine - Community\n Engine:\n Version: 29.8.0\n API version: 1.56 (minimum version 1.40)\n Go version: go1.26.8\n Git commit: 3ce5872\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Experimental: false\n containerd:\n Version: v2.3.5\n GitCommit: 1294c24a7da8e5a793ed378161673abe94118892\n runc:\n Version: 1.5.1\n GitCommit: v1.5.1-0-g8f2685a4\n docker-init:\n Version: 0.19.0\n GitCommit: de40ad0\n"} +{"timestamp": "2026-10-01T07:28:41.104365+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "docker", "create", "--label", "com.docker.compose.project=minecraft-sentinel-6fa805e58ce6c62c", "--name", "minecraft-sentinel-6fa805e58ce6c62c", "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94"], "exit": 0, "output": "b0b0164585236bbb0383a8b48bff4f6fe193c8d220d9ad0048a676cbce09920c\n"} +{"timestamp": "2026-10-01T07:28:41.257776+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "34669", "--web-port", "55747", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--profile", "backup", "--profile", "database", "--profile", "web"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [\"backup\", \"database\", \"web\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:28:41.299565+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "34669", "--web-port", "55747", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--profile", "backup", "--profile", "database", "--profile", "web", "--start"], "exit": 0, "output": " Network minecraft-012969e4_default Creating \n Network minecraft-012969e4_default Creating \n Volume minecraft-012969e4_database Creating \n Volume minecraft-012969e4_database Creating \n Volume minecraft-012969e4_database Created \n Volume minecraft-012969e4_database Created \n Network minecraft-012969e4_default Created \n Network minecraft-012969e4_default Created \n Container minecraft-012969e4-web-1 Creating \n Container minecraft-012969e4-server-1 Creating \n Container minecraft-012969e4-database-1 Creating \n Container minecraft-012969e4-database-1 Created \n Container minecraft-012969e4-server-1 Created \n Container minecraft-012969e4-backup-1 Creating \n Container minecraft-012969e4-web-1 Created \n Container minecraft-012969e4-backup-1 Created \n Container minecraft-012969e4-server-1 Starting \n Container minecraft-012969e4-web-1 Starting \n Container minecraft-012969e4-database-1 Starting \n Container minecraft-012969e4-server-1 Started \n Container minecraft-012969e4-server-1 Waiting \n Container minecraft-012969e4-web-1 Started \n Container minecraft-012969e4-database-1 Started \n Container minecraft-012969e4-server-1 Healthy \n Container minecraft-012969e4-backup-1 Starting \n Container minecraft-012969e4-backup-1 Started \n Container minecraft-012969e4-web-1 Waiting \n Container minecraft-012969e4-server-1 Waiting \n Container minecraft-012969e4-backup-1 Waiting \n Container minecraft-012969e4-database-1 Waiting \n Container minecraft-012969e4-backup-1 Healthy \n Container minecraft-012969e4-database-1 Healthy \n Container minecraft-012969e4-server-1 Healthy \n Container minecraft-012969e4-web-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"distribution\": \"paper\", \"network\": false, \"setup\": \"unchanged\"}\n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:29:03.211120+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/status", "--port", "34669"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:29:03.244065+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 2 1001 1002 4096 Oct 1 07:28 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | \u001b[39m[mc-image-helper] 07:28:43.594 INFO : Downloaded /data/paper-26.2-129.jar\nserver-1 | \u001b[0;39m[init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:28:46.226 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Applying patches\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:28:52.050826566Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:28:52 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:28:52 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:28:52 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:28:52 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:28:55 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:28:55 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:28:55 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 265.1ms\nserver-1 | [07:28:55 INFO]: Found new data pack paper, loading it automatically\nserver-1 | [07:28:55 INFO]: No existing world data, creating new world\nserver-1 | [07:28:56 INFO]: Loaded 1585 recipes\nserver-1 | [07:28:56 INFO]: Loaded 1688 advancements\nserver-1 | [07:28:56 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:28:56 INFO]: Loading properties\nserver-1 | [07:28:56 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:28:56 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:28:56 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:28:56 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:28:56 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:28:57 INFO]: Default game type: SURVIVAL\nserver-1 | [07:28:57 INFO]: Generating keypair\nserver-1 | [07:28:57 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:28:57 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:28:57 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:28:57 INFO]: Preparing level \"world\"\nserver-1 | [07:28:57 INFO]: Selecting spawn point for level 'minecraft:overworld'...\nserver-1 | [07:28:58 INFO]: Selecting spawn point for level 'minecraft:the_nether'...\nserver-1 | [07:28:59 INFO]: Selecting spawn point for level 'minecraft:the_end'...\nserver-1 | [07:28:59 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:28:59 INFO]: Preparing spawn area: 100%\nserver-1 | [07:28:59 INFO]: Prepared spawn area in 1882 ms\nserver-1 | [07:28:59 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:28:59 INFO]: Preparing spawn area: 100%\nserver-1 | [07:28:59 INFO]: Prepared spawn area in 353 ms\nserver-1 | [07:28:59 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:28:59 INFO]: Preparing spawn area: 100%\nserver-1 | [07:28:59 INFO]: Prepared spawn area in 96 ms\nserver-1 | [07:28:59 INFO]: Done preparing level \"world\" (2.121s)\nserver-1 | [07:28:59 INFO]: [spark] Starting background profiler...\nserver-1 | [07:28:59 INFO]: Starting remote control listener\nserver-1 | [07:28:59 INFO]: Thread RCON Listener started\nserver-1 | [07:28:59 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:28:59 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:28:59 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:28:59 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:28:59 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:28:59 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:28:59 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:28:59 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:28:59 INFO]: Running delayed init tasks\nserver-1 | [07:28:59 INFO]: Done (7.881s)! For help, type \"help\"\nserver-1 | [07:28:59 INFO]: *************************************************************************************\nserver-1 | [07:28:59 INFO]: This is the first time you're starting this server.\nserver-1 | [07:28:59 INFO]: It's recommended you read our 'Getting Started' documentation for guidance.\nserver-1 | [07:28:59 INFO]: View this and more helpful information here: https://docs.papermc.io/paper/next-steps\nserver-1 | [07:28:59 INFO]: *************************************************************************************\nserver-1 | [07:29:03 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:29:03 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:29:03.401863+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sha256sum", "/data/paper-26.2-129.jar"], "exit": 0, "output": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 /data/paper-26.2-129.jar\n"} +{"timestamp": "2026-10-01T07:29:03.608823+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:29:03.765865+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 13xpb_79/stable paper/tests/login.py", "--port", "34669", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:29:03.814318+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:29:04.017566+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "rcon-cli", "--password", "wrong", "list"], "exit": 1, "output": "2026/10/01 07:29:04 Failed to connect to RCON serverrcon: authentication failed\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-012969e4', '--project-directory', '/tmp/minecraft validation 13xpb_79/stable paper', '--env-file', '/tmp/minecraft validation 13xpb_79/stable paper/versions.env', '--env-file', '/tmp/minecraft validation 13xpb_79/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation 13xpb_79/stable paper/compose.yaml', '-f', '/tmp/minecraft validation 13xpb_79/stable paper/.state/compose.yaml', 'exec', '-T', 'server', 'rcon-cli', '--password', 'wrong', 'list']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:29:04.171991+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "command", "scoreboard objectives add proof dummy"], "exit": 0, "output": "Created new objective [proof]\n"} +{"timestamp": "2026-10-01T07:29:04.378612+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 42"], "exit": 0, "output": "Set [proof] for Proof to 42\n"} +{"timestamp": "2026-10-01T07:29:04.583688+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "command", "save-all flush"], "exit": 0, "output": "Saving the game (this may take a moment!)Saved the game\n"} +{"timestamp": "2026-10-01T07:29:04.840221+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-012969e4-server-1 Recreate \n Container minecraft-012969e4-server-1 Recreated \n Container minecraft-012969e4-server-1 Starting \n Container minecraft-012969e4-server-1 Started \n Container minecraft-012969e4-server-1 Waiting \n Container minecraft-012969e4-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:29:21.680528+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:29:21.887341+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "backup"], "exit": 0, "output": " Container minecraft-012969e4-backup-run-6074e01fa21b Creating \n Container minecraft-012969e4-backup-run-6074e01fa21b Created \ntime=\"2026-10-01T07:29:22Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:29:22+0000 INFO Repository already initialized\n2026-10-01T07:29:22+0000 INFO Checking for stale locks\n2026-10-01T07:29:23+0000 INFO Checking repo integrity\n2026-10-01T07:29:24+0000 INFO waiting initial delay of 0...\n2026-10-01T07:29:24+0000 INFO waiting for rcon readiness...\n2026-10-01T07:29:24+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:29:24+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:29:24+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:29:24+0000 INFO Command executed successfully sync\n2026-10-01T07:29:24+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:29:25+0000 INFO using parent snapshot 7c3e2c67\n2026-10-01T07:29:25+0000 INFO \n2026-10-01T07:29:25+0000 INFO Files: 0 new, 43 changed, 139 unmodified\n2026-10-01T07:29:25+0000 INFO Dirs: 0 new, 23 changed, 286 unmodified\n2026-10-01T07:29:25+0000 INFO Added to the repository: 36.386 KiB (16.247 KiB stored)\n2026-10-01T07:29:25+0000 INFO \n2026-10-01T07:29:25+0000 INFO processed 182 files, 174.559 MiB in 0:00\n2026-10-01T07:29:25+0000 INFO snapshot 159cbfb4 saved\n2026-10-01T07:29:25+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:29:25.995597+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "snapshots"], "exit": 0, "output": " Container minecraft-012969e4-backup-run-b8aa1607ae61 Creating \n Container minecraft-012969e4-backup-run-b8aa1607ae61 Created \n[{\"time\":\"2026-10-01T07:29:05.237619925Z\",\"tree\":\"62490cc4b7af6236c3e23a6911930f3385ea8cb09609902a0d52e64172878172\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:29:05.237619925Z\",\"backup_end\":\"2026-10-01T07:29:06.388622403Z\",\"files_new\":182,\"files_changed\":0,\"files_unmodified\":0,\"dirs_new\":309,\"dirs_changed\":0,\"dirs_unmodified\":0,\"data_blobs\":277,\"tree_blobs\":308,\"data_added\":183183960,\"data_added_packed\":168010774,\"total_files_processed\":182,\"total_bytes_processed\":183038488},\"id\":\"7c3e2c676a6b2b3860a5b0a4ab521f8ec4efb223af318730b57581c3b9a46753\",\"short_id\":\"7c3e2c67\"},{\"time\":\"2026-10-01T07:29:24.305201098Z\",\"parent\":\"7c3e2c676a6b2b3860a5b0a4ab521f8ec4efb223af318730b57581c3b9a46753\",\"tree\":\"a6ded8aee14650957bc46c6687a3607180175067d8b0b8a132a32d57302c6849\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:29:24.305201098Z\",\"backup_end\":\"2026-10-01T07:29:25.069022847Z\",\"files_new\":0,\"files_changed\":43,\"files_unmodified\":139,\"dirs_new\":0,\"dirs_changed\":23,\"dirs_unmodified\":286,\"data_blobs\":9,\"tree_blobs\":23,\"data_added\":37259,\"data_added_packed\":16637,\"total_files_processed\":182,\"total_bytes_processed\":183038488},\"id\":\"159cbfb4b38142eb6b8a960543078d0b5882c39050a97ffde3d66705750180a7\",\"short_id\":\"159cbfb4\"}]\n"} +{"timestamp": "2026-10-01T07:29:27.204468+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server", "backup"], "exit": 0, "output": "backup-1 | time=\"2026-10-01T07:29:02Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:29:02+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:29:05+0000 INFO created restic repository 3c55d466fe at /backups/repository\nbackup-1 | 2026-10-01T07:29:05+0000 INFO \nbackup-1 | 2026-10-01T07:29:05+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:29:05+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:29:05+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:29:05+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:29:05+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:29:05+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:29:05+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:29:05+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:29:05+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:29:05+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:29:05+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:29:06+0000 INFO \nbackup-1 | 2026-10-01T07:29:06+0000 INFO Files: 182 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:29:06+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:29:06+0000 INFO Added to the repository: 174.698 MiB (160.228 MiB stored)\nbackup-1 | 2026-10-01T07:29:06+0000 INFO \nbackup-1 | 2026-10-01T07:29:06+0000 INFO processed 182 files, 174.559 MiB in 0:01\nbackup-1 | 2026-10-01T07:29:06+0000 INFO snapshot 7c3e2c67 saved\nbackup-1 | 2026-10-01T07:29:06+0000 ERROR Unable to execute rcon-cli save-on - try 0/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:29:06+0000 ERROR Failure reason: 2026/10/01 07:29:06 Failed to connect to RCON serverdial tcp 172.19.0.2:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:29:11+0000 ERROR Unable to execute rcon-cli save-on - try 1/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:29:11+0000 ERROR Failure reason: 2026/10/01 07:29:11 Failed to connect to RCON serverdial tcp 172.19.0.2:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:29:16+0000 ERROR Unable to execute rcon-cli save-on - try 2/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:29:16+0000 ERROR Failure reason: 2026/10/01 07:29:16 Failed to connect to RCON serverdial tcp 172.19.0.2:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:29:21+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:29:22+0000 INFO sleeping 6h...\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:28 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:29:11.054798762Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:29:11 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:29:11 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:29:11 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:29:11 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:29:14 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:29:14 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:29:14 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 263.6ms\nserver-1 | [07:29:15 INFO]: Loaded 1585 recipes\nserver-1 | [07:29:15 INFO]: Loaded 1688 advancements\nserver-1 | [07:29:15 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:29:15 INFO]: Loading properties\nserver-1 | [07:29:15 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:29:15 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:29:15 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:29:15 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:29:15 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:29:16 INFO]: Default game type: SURVIVAL\nserver-1 | [07:29:16 INFO]: Generating keypair\nserver-1 | [07:29:16 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:29:16 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:29:16 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:29:16 INFO]: Preparing level \"world\"\nserver-1 | [07:29:16 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:29:16 INFO]: Preparing spawn area: 100%\nserver-1 | [07:29:16 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:29:16 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:29:16 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:29:16 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:29:16 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:29:16 INFO]: Done preparing level \"world\" (0.292s)\nserver-1 | [07:29:16 INFO]: [spark] Starting background profiler...\nserver-1 | [07:29:16 INFO]: Starting remote control listener\nserver-1 | [07:29:16 INFO]: Thread RCON Listener started\nserver-1 | [07:29:16 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:29:16 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:29:16 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:29:16 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:29:16 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:29:16 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:29:16 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:29:16 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:29:16 INFO]: Running delayed init tasks\nserver-1 | [07:29:16 INFO]: Done (6.085s)! For help, type \"help\"\nserver-1 | [07:29:21 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:29:21 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:29:21 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:29:21 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:24 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:24 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:29:24 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:29:24 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:29:24 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:29:24 INFO]: [Rcon: Saved the game]\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:25 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:25 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:29:25 INFO]: Thread RCON Client /172.19.0.6 shutting down\n"} +{"timestamp": "2026-10-01T07:29:27.360985+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "PRE_BACKUP_SCRIPT=exit 73", "backup"], "exit": 1, "output": " Container minecraft-012969e4-backup-run-3a3b64063185 Creating \n Container minecraft-012969e4-backup-run-3a3b64063185 Created \ntime=\"2026-10-01T07:29:27Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:29:28+0000 INFO Repository already initialized\n2026-10-01T07:29:28+0000 INFO Checking for stale locks\n2026-10-01T07:29:28+0000 INFO Checking repo integrity\n2026-10-01T07:29:29+0000 INFO waiting initial delay of 0...\n2026-10-01T07:29:29+0000 INFO waiting for rcon readiness...\n2026-10-01T07:29:29+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:29:29+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:29:29+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:29:29+0000 INFO Command executed successfully sync\n2026-10-01T07:29:29+0000 INFO Command executed successfully rcon-cli save-on\n\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-012969e4', '--project-directory', '/tmp/minecraft validation 13xpb_79/stable paper', '--env-file', '/tmp/minecraft validation 13xpb_79/stable paper/versions.env', '--env-file', '/tmp/minecraft validation 13xpb_79/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation 13xpb_79/stable paper/compose.yaml', '-f', '/tmp/minecraft validation 13xpb_79/stable paper/.state/compose.yaml', 'run', '--rm', '--no-deps', '-e', 'BACKUP_INTERVAL=0', '-e', 'INITIAL_DELAY=0', '-e', 'PRE_BACKUP_SCRIPT=exit 73', 'backup']' returned non-zero exit status 73.\"}\n"} +{"timestamp": "2026-10-01T07:29:29.926617+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:29:30.135263+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "backup"], "exit": 1, "output": "{\"error\": \"Backup reported an error; inspect service logs.\"}\n Container minecraft-012969e4-backup-run-b120369da211 Creating \n Container minecraft-012969e4-backup-run-b120369da211 Created \ntime=\"2026-10-01T07:29:30Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:29:31+0000 INFO Repository already initialized\n2026-10-01T07:29:31+0000 INFO Checking for stale locks\n2026-10-01T07:29:31+0000 INFO Checking repo integrity\n2026-10-01T07:29:32+0000 INFO waiting initial delay of 0...\n2026-10-01T07:29:32+0000 INFO waiting for rcon readiness...\n2026-10-01T07:29:32+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:29:32+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:29:32+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:29:32+0000 INFO Command executed successfully sync\n2026-10-01T07:29:32+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:29:32+0000 INFO invalid argument \"invalid-proof\" for \"--limit-upload\" flag: strconv.ParseInt: parsing \"invalid-proof\": invalid syntax\n2026-10-01T07:29:32+0000 ERROR Backup failed with exit code 1\n2026-10-01T07:29:32+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:29:33.398186+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:29:38.264972+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "command", "save-off"], "exit": 0, "output": "Saving is already turned off\n"} +{"timestamp": "2026-10-01T07:29:41.691164+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "-e", "PRE_BACKUP_SCRIPT=touch /backups/first-locked; timeout 60 sh -c 'until test -f /backups/release-first; do sleep 0.2; done'", "backup"], "exit": 0, "output": " Container minecraft-012969e4-backup-run-af83048af19e Creating \n Container minecraft-012969e4-backup-run-af83048af19e Created \ntime=\"2026-10-01T07:29:33Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:29:34+0000 INFO Repository already initialized\n2026-10-01T07:29:34+0000 INFO Checking for stale locks\n2026-10-01T07:29:35+0000 INFO Checking repo integrity\n2026-10-01T07:29:35+0000 INFO waiting initial delay of 0...\n2026-10-01T07:29:35+0000 INFO waiting for rcon readiness...\n2026-10-01T07:29:35+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:29:35+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:29:35+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:29:35+0000 INFO Command executed successfully sync\n2026-10-01T07:29:38+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:29:39+0000 INFO using parent snapshot 159cbfb4\n2026-10-01T07:29:39+0000 INFO \n2026-10-01T07:29:39+0000 INFO Files: 0 new, 15 changed, 167 unmodified\n2026-10-01T07:29:39+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:29:39+0000 INFO Added to the repository: 31.524 KiB (13.217 KiB stored)\n2026-10-01T07:29:39+0000 INFO \n2026-10-01T07:29:39+0000 INFO processed 182 files, 174.559 MiB in 0:00\n2026-10-01T07:29:39+0000 INFO snapshot bcd71b74 saved\n2026-10-01T07:29:39+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:29:40+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:29:40+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:29:40+0000 INFO keep 2 snapshots:\n2026-10-01T07:29:40+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:29:40+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:29:40+0000 INFO 7c3e2c67 2026-10-01 07:29:05 minecraft mc_backups,server oldest daily snapshot /data 174.559 MiB\n2026-10-01T07:29:40+0000 INFO oldest weekly snapshot\n2026-10-01T07:29:40+0000 INFO oldest monthly snapshot\n2026-10-01T07:29:40+0000 INFO bcd71b74 2026-10-01 07:29:38 minecraft mc_backups,server daily snapshot /data 174.559 MiB\n2026-10-01T07:29:40+0000 INFO weekly snapshot\n2026-10-01T07:29:40+0000 INFO monthly snapshot\n2026-10-01T07:29:40+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:29:40+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:29:40+0000 INFO 2 snapshots\n2026-10-01T07:29:40+0000 INFO \n2026-10-01T07:29:40+0000 INFO remove 1 snapshots:\n2026-10-01T07:29:40+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:29:40+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:29:40+0000 INFO 159cbfb4 2026-10-01 07:29:24 minecraft mc_backups,server /data 174.559 MiB\n2026-10-01T07:29:40+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:29:40+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:29:40+0000 INFO 1 snapshots\n2026-10-01T07:29:40+0000 INFO \n2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:29:40+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:29:40+0000 INFO loading all snapshots...\n2026-10-01T07:29:40+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:29:40+0000 INFO searching used packs...\n2026-10-01T07:29:40+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 15 / 15 packs processed\n2026-10-01T07:29:40+0000 INFO \n2026-10-01T07:29:40+0000 INFO to repack: 32 blobs / 16.317 KiB\n2026-10-01T07:29:40+0000 INFO this removes: 24 blobs / 12.051 KiB\n2026-10-01T07:29:40+0000 INFO to delete: 0 blobs / 0 B\n2026-10-01T07:29:40+0000 INFO total prune: 24 blobs / 12.051 KiB\n2026-10-01T07:29:40+0000 INFO remaining: 618 blobs / 160.219 MiB\n2026-10-01T07:29:40+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:29:40+0000 INFO \n2026-10-01T07:29:40+0000 INFO repacking packs\n2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 2 / 2 packs repacked\n2026-10-01T07:29:40+0000 INFO rebuilding index\n2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 4 / 4 indexes processed\n2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted\n2026-10-01T07:29:40+0000 INFO removing 2 old packs\n2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:29:40+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:29:47.565828+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "BACKUP_ON_STARTUP=true", "backup"], "exit": 0, "output": " Container minecraft-012969e4-backup-run-3128862d0a09 Creating \n Container minecraft-012969e4-backup-run-3128862d0a09 Created \ntime=\"2026-10-01T07:29:36Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:29:37+0000 INFO Repository already initialized\n2026-10-01T07:29:37+0000 INFO Checking for stale locks\n2026-10-01T07:29:37+0000 INFO Checking repo integrity\n2026-10-01T07:29:38+0000 INFO waiting initial delay of 0...\n2026-10-01T07:29:38+0000 INFO waiting for rcon readiness...\n2026-10-01T07:29:38+0000 INFO Command executed successfully rcon-cli list\n2026-10-01T07:29:39+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:29:39+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:29:39+0000 INFO Command executed successfully sync\n2026-10-01T07:29:39+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:29:39+0000 INFO repo already locked, waiting up to 1m0s for the lock\n2026-10-01T07:29:45+0000 INFO using parent snapshot bcd71b74\n2026-10-01T07:29:45+0000 INFO \n2026-10-01T07:29:45+0000 INFO Files: 0 new, 15 changed, 167 unmodified\n2026-10-01T07:29:45+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified\n2026-10-01T07:29:45+0000 INFO Added to the repository: 31.070 KiB (12.636 KiB stored)\n2026-10-01T07:29:45+0000 INFO \n2026-10-01T07:29:45+0000 INFO processed 182 files, 174.559 MiB in 0:05\n2026-10-01T07:29:45+0000 INFO snapshot dced8ae4 saved\n2026-10-01T07:29:45+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:29:45+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6\n2026-10-01T07:29:46+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots\n2026-10-01T07:29:46+0000 INFO keep 2 snapshots:\n2026-10-01T07:29:46+0000 INFO ID Time Host Tags Reasons Paths Size\n2026-10-01T07:29:46+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:29:46+0000 INFO 7c3e2c67 2026-10-01 07:29:05 minecraft mc_backups,server oldest daily snapshot /data 174.559 MiB\n2026-10-01T07:29:46+0000 INFO oldest weekly snapshot\n2026-10-01T07:29:46+0000 INFO oldest monthly snapshot\n2026-10-01T07:29:46+0000 INFO dced8ae4 2026-10-01 07:29:39 minecraft mc_backups,server daily snapshot /data 174.559 MiB\n2026-10-01T07:29:46+0000 INFO weekly snapshot\n2026-10-01T07:29:46+0000 INFO monthly snapshot\n2026-10-01T07:29:46+0000 INFO ---------------------------------------------------------------------------------------------------------\n2026-10-01T07:29:46+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:29:46+0000 INFO 2 snapshots\n2026-10-01T07:29:46+0000 INFO \n2026-10-01T07:29:46+0000 INFO remove 1 snapshots:\n2026-10-01T07:29:46+0000 INFO ID Time Host Tags Paths Size\n2026-10-01T07:29:46+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:29:46+0000 INFO bcd71b74 2026-10-01 07:29:38 minecraft mc_backups,server /data 174.559 MiB\n2026-10-01T07:29:46+0000 INFO --------------------------------------------------------------------------------\n2026-10-01T07:29:46+0000 INFO Timestamps shown in Etc/UTC\n2026-10-01T07:29:46+0000 INFO 1 snapshots\n2026-10-01T07:29:46+0000 INFO \n2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 1 / 1 files deleted\n2026-10-01T07:29:46+0000 INFO 1 snapshots have been removed, running prune\n2026-10-01T07:29:46+0000 INFO loading all snapshots...\n2026-10-01T07:29:46+0000 INFO finding data that is still in use for 2 snapshots\n2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 2 / 2 snapshots\n2026-10-01T07:29:46+0000 INFO searching used packs...\n2026-10-01T07:29:46+0000 INFO collecting packs for deletion and repacking\n2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 17 / 17 packs processed\n2026-10-01T07:29:46+0000 INFO \n2026-10-01T07:29:46+0000 INFO to repack: 8 blobs / 2.335 KiB\n2026-10-01T07:29:46+0000 INFO this removes: 7 blobs / 1.487 KiB\n2026-10-01T07:29:46+0000 INFO to delete: 17 blobs / 10.236 KiB\n2026-10-01T07:29:46+0000 INFO total prune: 24 blobs / 11.724 KiB\n2026-10-01T07:29:46+0000 INFO remaining: 618 blobs / 160.219 MiB\n2026-10-01T07:29:46+0000 INFO unused size after prune: 0 B (0.00% of remaining size)\n2026-10-01T07:29:46+0000 INFO \n2026-10-01T07:29:46+0000 INFO repacking packs\n2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 1 / 1 packs repacked\n2026-10-01T07:29:46+0000 INFO rebuilding index\n2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 3 / 3 indexes processed\n2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted\n2026-10-01T07:29:46+0000 INFO removing 2 old packs\n2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 2 / 2 files deleted\n2026-10-01T07:29:46+0000 INFO done\n"} +{"timestamp": "2026-10-01T07:29:47.566042+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:29:47.773905+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 99"], "exit": 0, "output": "Set [proof] for Proof to 99\n"} +{"timestamp": "2026-10-01T07:29:47.982795+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "restore", "/tmp/minecraft validation 13xpb_79/restored snapshot"], "exit": 0, "output": " Container minecraft-012969e4-backup-run-e223c52e2c55 Creating \n Container minecraft-012969e4-backup-run-e223c52e2c55 Created \nrestoring snapshot dced8ae4 of [/data] at 2026-10-01 07:29:39.404035437 +0000 UTC by @minecraft to /restore\nSummary: Restored 491 files/dirs (174.559 MiB) in 0:00\n{\"restored\": \"/tmp/minecraft validation 13xpb_79/restored snapshot/data\", \"snapshot\": \"latest\"}\n"} +{"timestamp": "2026-10-01T07:29:49.949190+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/restored server/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "41575", "--web-port", "41205", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:29:50.044266+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/restored server/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-cac213a8_default Creating \n Network minecraft-cac213a8_default Creating \n Network minecraft-cac213a8_default Created \n Network minecraft-cac213a8_default Created \n Container minecraft-cac213a8-server-1 Creating \n Container minecraft-cac213a8-server-1 Created \n Container minecraft-cac213a8-server-1 Starting \n Container minecraft-cac213a8-server-1 Started \n Container minecraft-cac213a8-server-1 Waiting \n Container minecraft-cac213a8-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:30:07.253437+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 13xpb_79/restored server/scripts/status", "--port", "41575"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:30:07.287331+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 13xpb_79/restored server/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:30:07.493359+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation 13xpb_79/restored server/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 9 1001 1002 4096 Oct 1 07:28 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:29:55.618 INFO : Created/updated 1 property in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:29:57.178852906Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:29:57 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:29:57 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:29:57 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:29:57 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:30:00 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:30:00 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:30:00 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 262.0ms\nserver-1 | [07:30:01 INFO]: Loaded 1585 recipes\nserver-1 | [07:30:01 INFO]: Loaded 1688 advancements\nserver-1 | [07:30:01 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:30:01 INFO]: Loading properties\nserver-1 | [07:30:01 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:30:01 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:30:01 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:30:01 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:30:01 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:30:02 INFO]: Default game type: SURVIVAL\nserver-1 | [07:30:02 INFO]: Generating keypair\nserver-1 | [07:30:02 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:30:02 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:30:02 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:30:02 INFO]: Preparing level \"world\"\nserver-1 | [07:30:02 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:30:02 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:30:02 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:30:02 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:30:02 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:30:02 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:30:02 INFO]: Done preparing level \"world\" (0.282s)\nserver-1 | [07:30:02 INFO]: [spark] Starting background profiler...\nserver-1 | [07:30:02 INFO]: Starting remote control listener\nserver-1 | [07:30:02 INFO]: Thread RCON Listener started\nserver-1 | [07:30:02 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:30:02 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:30:02 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:30:02 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:30:02 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:30:02 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:30:02 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:30:02 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:30:02 INFO]: Running delayed init tasks\nserver-1 | [07:30:02 INFO]: Done (5.956s)! For help, type \"help\"\nserver-1 | [07:30:07 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:30:07 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:30:07 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:30:07 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:30:07.651108+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 13xpb_79/restored server/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-cac213a8-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:30:07.859366+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/restored server/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-cac213a8-server-1 Stopping \n Container minecraft-cac213a8-server-1 Stopped \n Container minecraft-cac213a8-server-1 Removing \n Container minecraft-cac213a8-server-1 Removed \n Network minecraft-cac213a8_default Removing \n Network minecraft-cac213a8_default Removed \n"} +{"timestamp": "2026-10-01T07:30:08.918338+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"CREATE TABLE proof (value INT); INSERT INTO proof VALUES (42); SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:30:09.124859+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "300", "database"], "exit": 0, "output": " Container minecraft-012969e4-database-1 Recreate \n Container minecraft-012969e4-database-1 Recreated \n Container minecraft-012969e4-database-1 Starting \n Container minecraft-012969e4-database-1 Started \n Container minecraft-012969e4-database-1 Waiting \n Container minecraft-012969e4-database-1 Healthy \n"} +{"timestamp": "2026-10-01T07:30:15.241101+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:30:15.449167+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "mariadb", "-uminecraft", "-pwrong", "minecraft", "-e", "SELECT 1"], "exit": 1, "output": "ERROR 1045 (28000): Access denied for user 'minecraft'@'localhost' (using password: YES)\n{\"error\": \"Command '['docker', 'compose', '--project-name', 'minecraft-012969e4', '--project-directory', '/tmp/minecraft validation 13xpb_79/stable paper', '--env-file', '/tmp/minecraft validation 13xpb_79/stable paper/versions.env', '--env-file', '/tmp/minecraft validation 13xpb_79/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation 13xpb_79/stable paper/compose.yaml', '-f', '/tmp/minecraft validation 13xpb_79/stable paper/.state/compose.yaml', 'exec', '-T', 'database', 'mariadb', '-uminecraft', '-pwrong', 'minecraft', '-e', 'SELECT 1']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:30:15.657856+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "python3", "-c", "import urllib.request; print(urllib.request.urlopen(\"http://127.0.0.1:55747\").read().decode())"], "exit": 0, "output": "Minecraft files

Minecraft files

\n\n"} +{"timestamp": "2026-10-01T07:30:15.725228+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "backup-1 | time=\"2026-10-01T07:29:02Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T07:29:02+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T07:29:05+0000 INFO created restic repository 3c55d466fe at /backups/repository\nbackup-1 | 2026-10-01T07:29:05+0000 INFO \nbackup-1 | 2026-10-01T07:29:05+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T07:29:05+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T07:29:05+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T07:29:05+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T07:29:05+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T07:29:05+0000 INFO Command executed successfully rcon-cli list\nbackup-1 | 2026-10-01T07:29:05+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:29:05+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:29:05+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:29:05+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:29:05+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:29:06+0000 INFO \nbackup-1 | 2026-10-01T07:29:06+0000 INFO Files: 182 new, 0 changed, 0 unmodified\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:28 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:29:11.054798762Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:29:11 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:29:11 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:29:11 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:29:11 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nbackup-1 | 2026-10-01T07:29:06+0000 INFO Dirs: 309 new, 0 changed, 0 unmodified\nserver-1 | [07:29:14 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:29:14 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nbackup-1 | 2026-10-01T07:29:06+0000 INFO Added to the repository: 174.698 MiB (160.228 MiB stored)\nserver-1 | [07:29:14 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 263.6ms\nbackup-1 | 2026-10-01T07:29:06+0000 INFO \nserver-1 | [07:29:15 INFO]: Loaded 1585 recipes\nbackup-1 | 2026-10-01T07:29:06+0000 INFO processed 182 files, 174.559 MiB in 0:01\nserver-1 | [07:29:15 INFO]: Loaded 1688 advancements\nbackup-1 | 2026-10-01T07:29:06+0000 INFO snapshot 7c3e2c67 saved\nserver-1 | [07:29:15 INFO]: Starting minecraft server version 26.2\nbackup-1 | 2026-10-01T07:29:06+0000 ERROR Unable to execute rcon-cli save-on - try 0/3. Retrying in 5s\nserver-1 | [07:29:15 INFO]: Loading properties\nserver-1 | [07:29:15 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nbackup-1 | 2026-10-01T07:29:06+0000 ERROR Failure reason: 2026/10/01 07:29:06 Failed to connect to RCON serverdial tcp 172.19.0.2:25575: connect: connection refused\t\ndatabase-1 | 2026-10-01 07:30:09+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\nbackup-1 | 2026-10-01T07:29:11+0000 ERROR Unable to execute rcon-cli save-on - try 1/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:29:11+0000 ERROR Failure reason: 2026/10/01 07:29:11 Failed to connect to RCON serverdial tcp 172.19.0.2:25575: connect: connection refused\t\ndatabase-1 | 2026-10-01 07:30:09+00:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB\nbackup-1 | 2026-10-01T07:29:16+0000 ERROR Unable to execute rcon-cli save-on - try 2/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:29:16+0000 ERROR Failure reason: 2026/10/01 07:29:16 Failed to connect to RCON serverdial tcp 172.19.0.2:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:29:21+0000 INFO Command executed successfully rcon-cli save-on\ndatabase-1 | 2026-10-01 07:30:09+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'\nbackup-1 | 2026-10-01T07:29:22+0000 INFO sleeping 6h...\nserver-1 | [07:29:15 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:29:15 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:29:15 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:29:15 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:29:16 INFO]: Default game type: SURVIVAL\ndatabase-1 | 2026-10-01 07:30:09+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\ndatabase-1 | 2026-10-01 07:30:10+00:00 [Note] [Entrypoint]: MariaDB upgrade not required\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] Starting MariaDB 12.3.3-MariaDB-ubu2404 source revision 83e909fc2a0dbc394b4b683fb3fa2d7dcf26cc5e server_uid WriCIJHRFB/4L5zPxqDKxU/ZWMc= as process 1\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: Compressed tables use zlib 1.3\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: Number of transaction pools: 1\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: Using ARMv8 crc32 + pmull instructions\ndatabase-1 | 2026-10-01 7:30:10 0 [Warning] mariadbd: io_uring_queue_init() failed with EPERM: sysctl kernel.io_uring_disabled has the value 2, or 1 and the user of the process is not a member of sysctl kernel.io_uring_group. (see man 2 io_uring_setup).\ndatabase-1 | create_uring failed: falling back to libaio\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: Using Linux native AIO\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: innodb_buffer_pool_size_max=8388608m, innodb_buffer_pool_size=128m\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: Completed initialization of buffer pool\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: File system buffers for log disabled (block size=4096 bytes)\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: End of log at LSN=47716\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: Opened 3 undo tablespaces\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: 128 rollback segments in 3 undo tablespaces are active.\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...\nserver-1 | [07:29:16 INFO]: Generating keypair\nserver-1 | [07:29:16 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:29:16 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:29:16 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:29:16 INFO]: Preparing level \"world\"\nserver-1 | [07:29:16 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:29:16 INFO]: Preparing spawn area: 100%\nserver-1 | [07:29:16 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:29:16 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:29:16 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:29:16 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:29:16 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:29:16 INFO]: Done preparing level \"world\" (0.292s)\nserver-1 | [07:29:16 INFO]: [spark] Starting background profiler...\nserver-1 | [07:29:16 INFO]: Starting remote control listener\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: log sequence number 47716; transaction id 22\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] Plugin 'FEEDBACK' is disabled.\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] Plugin 'wsrep-provider' is disabled.\ndatabase-1 | 2026-10-01 7:30:10 0 [Note] InnoDB: Buffer pool(s) load completed at 261001 7:30:10\ndatabase-1 | 2026-10-01 7:30:11 0 [Note] Server socket created on IP: '0.0.0.0', port: '3306'.\ndatabase-1 | 2026-10-01 7:30:11 0 [Note] Server socket created on IP: '::', port: '3306'.\ndatabase-1 | 2026-10-01 7:30:11 0 [Note] mariadbd: Event Scheduler: Loaded 0 events\ndatabase-1 | 2026-10-01 7:30:11 0 [Note] mariadbd: ready for connections.\ndatabase-1 | Version: '12.3.3-MariaDB-ubu2404' socket: '/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution\ndatabase-1 | 2026-10-01 7:30:15 6 [Warning] Access denied for user 'minecraft'@'localhost' (using password: YES)\nserver-1 | [07:29:16 INFO]: Thread RCON Listener started\nserver-1 | [07:29:16 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:29:16 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:29:16 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:29:16 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:29:16 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:29:16 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:29:16 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:29:16 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:29:16 INFO]: Running delayed init tasks\nserver-1 | [07:29:16 INFO]: Done (6.085s)! For help, type \"help\"\nserver-1 | [07:29:21 INFO]: Thread RCON Client /172.19.0.5 started\nserver-1 | [07:29:21 INFO]: Thread RCON Client /172.19.0.5 shutting down\nserver-1 | [07:29:21 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:29:21 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:24 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:24 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:29:24 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:29:24 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:29:24 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:29:24 INFO]: [Rcon: Saved the game]\nserver-1 | [07:29:24 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:25 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:25 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:29:25 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:29 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:29 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:29 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:29 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:29:29 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:29 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:29 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:29:29 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:29:29 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:29:29 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:29:29 INFO]: [Rcon: Saved the game]\nserver-1 | [07:29:29 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:29 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:29 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:29:29 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:30 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:29:30 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:29:32 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:32 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:32 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:32 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:29:32 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:32 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:32 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:29:32 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:29:32 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:29:32 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:29:32 INFO]: [Rcon: Saved the game]\nserver-1 | [07:29:32 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:32 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:32 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:29:32 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:33 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:29:33 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:29:35 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:35 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:35 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:35 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:29:35 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:35 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:35 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:29:35 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:29:35 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:29:35 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:29:35 INFO]: [Rcon: Saved the game]\nserver-1 | [07:29:35 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:38 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:29:38 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:29:38 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:29:38 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:29:39 INFO]: Thread RCON Client /172.19.0.6 started\nserver-1 | [07:29:39 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:29:39 INFO]: Thread RCON Client /172.19.0.6 shutting down\nserver-1 | [07:29:39 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:29:39 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:29:39 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:29:39 INFO]: Thread RCON Client /172.19.0.7 started\nserver-1 | [07:29:39 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:29:39 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:29:39 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:29:39 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nweb-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration\nweb-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/\nserver-1 | [07:29:39 INFO]: [Rcon: Saved the game]\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh\nserver-1 | [07:29:39 INFO]: Thread RCON Client /172.19.0.7 shutting down\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf\nserver-1 | [07:29:45 INFO]: Thread RCON Client /172.19.0.7 started\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf\nserver-1 | [07:29:45 INFO]: [Rcon: Automatic saving is now enabled]\nweb-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh\nserver-1 | [07:29:45 INFO]: Thread RCON Client /172.19.0.7 shutting down\nserver-1 | [07:29:47 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:29:47 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:29:47 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:29:47 INFO]: [Rcon: Set [proof] for Proof to 99]\nserver-1 | [07:29:47 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh\nweb-1 | /docker-entrypoint.sh: Configuration complete; ready for start up\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: using the \"epoll\" event method\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: nginx/1.30.5\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: built by gcc 15.2.0 (Alpine 15.2.0) \nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: OS: Linux 7.0.0-1012-aws\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1024:524288\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker processes\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 30\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 31\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 32\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 33\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 34\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 35\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 36\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 37\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 38\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 39\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 40\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 41\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 42\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 43\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 44\nweb-1 | 2026/10/01 07:28:42 [notice] 1#1: start worker process 45\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:28:52 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:29:02 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:29:12 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:29:22 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:29:32 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:29:42 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:29:52 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:30:02 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:30:12 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 172.19.0.1 - - [01/Oct/2026:07:30:15 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Python-urllib/3.12\" \"-\"\n"} +{"timestamp": "2026-10-01T07:30:15.936245+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-012969e4-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"},{\"ID\":\"sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\",\"ContainerName\":\"minecraft-012969e4-database-1\",\"Repository\":\"mariadb\",\"Tag\":\"\",\"Platform\":\"linux/arm64/v8\",\"Size\":485083992,\"Created\":\"2026-09-16T03:25:46.66077829Z\",\"LastTagTime\":\"2026-10-01T06:30:08.502338164Z\"},{\"ID\":\"sha256:651da33a96d3c7e07d82271e6a2170a68c94a19c7b6b22b414087edfae3dc5bd\",\"ContainerName\":\"minecraft-012969e4-backup-1\",\"Repository\":\"minecraft-template-backup\",\"Tag\":\"3ff6a1e8fa15ca4e-1c6ea31fbca3\",\"Platform\":\"linux/arm64\",\"Size\":204738892,\"Created\":\"2026-10-01T07:19:28.891893344Z\",\"LastTagTime\":\"2026-10-01T07:24:34.72857916Z\"},{\"ID\":\"sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\",\"ContainerName\":\"minecraft-012969e4-web-1\",\"Repository\":\"nginx\",\"Tag\":\"\",\"Platform\":\"linux/arm64/v8\",\"Size\":92021013,\"Created\":\"2026-09-22T22:10:07.617314791Z\",\"LastTagTime\":\"2026-10-01T06:30:07.695644704Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:30:16.142891+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-012969e4-web-1 Stopping \n Container minecraft-012969e4-backup-1 Stopping \n Container minecraft-012969e4-database-1 Stopping \n Container minecraft-012969e4-backup-1 Stopped \n Container minecraft-012969e4-backup-1 Removing \n Container minecraft-012969e4-backup-1 Removed \n Container minecraft-012969e4-server-1 Stopping \n Container minecraft-012969e4-web-1 Stopped \n Container minecraft-012969e4-web-1 Removing \n Container minecraft-012969e4-database-1 Stopped \n Container minecraft-012969e4-database-1 Removing \n Container minecraft-012969e4-web-1 Removed \n Container minecraft-012969e4-database-1 Removed \n Container minecraft-012969e4-server-1 Stopped \n Container minecraft-012969e4-server-1 Removing \n Container minecraft-012969e4-server-1 Removed \n Network minecraft-012969e4_default Removing \n Network minecraft-012969e4_default Removed \n"} +{"timestamp": "2026-10-01T07:30:17.307768+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/latest vanilla/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "57233", "--web-port", "33895", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--distribution", "vanilla"], "exit": 0, "output": "{\"distribution\": \"vanilla\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:30:17.351374+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/latest vanilla/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-05cacad4_default Creating \n Network minecraft-05cacad4_default Creating \n Network minecraft-05cacad4_default Created \n Network minecraft-05cacad4_default Created \n Container minecraft-05cacad4-server-1 Creating \n Container minecraft-05cacad4-server-1 Created \n Container minecraft-05cacad4-server-1 Starting \n Container minecraft-05cacad4-server-1 Started \n Container minecraft-05cacad4-server-1 Waiting \n Container minecraft-05cacad4-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:30:33.695547+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 13xpb_79/latest vanilla/scripts/status", "--port", "57233"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"26.3\", \"protocol\": 777}}\n"} +{"timestamp": "2026-10-01T07:30:33.729246+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation 13xpb_79/latest vanilla/scripts/minecraft", "command", "list"], "exit": 0, "output": "There are 0 of a max of 20 players online: \n"} +{"timestamp": "2026-10-01T07:30:33.940526+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "find /data -maxdepth 1 -name \"*.jar\" -exec sha1sum {} \\;"], "exit": 0, "output": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c /data/minecraft_server.26.3.jar\n"} +{"timestamp": "2026-10-01T07:30:34.148081+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:30:34.306198+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:30:34.513759+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation 13xpb_79/latest vanilla/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 2 1001 1002 4096 Oct 1 07:30 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given VANILLA\nserver-1 | [init] Successfully setup vanilla Minecraft version 26.3\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:30:21.377 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Unpacking 26.3/server-26.3.jar (versions:26.3) to versions/26.3/server-26.3.jar\nserver-1 | Unpacking at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar (libraries:at.yawk.lz4:lz4-java:1.10.1) to libraries/at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar\nserver-1 | Unpacking com/azure/azure-json/1.4.0/azure-json-1.4.0.jar (libraries:com.azure:azure-json:1.4.0) to libraries/com/azure/azure-json/1.4.0/azure-json-1.4.0.jar\nserver-1 | Unpacking com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar (libraries:com.github.oshi:oshi-core:6.9.0) to libraries/com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar\nserver-1 | Unpacking com/google/code/gson/gson/2.14.0/gson-2.14.0.jar (libraries:com.google.code.gson:gson:2.14.0) to libraries/com/google/code/gson/gson/2.14.0/gson-2.14.0.jar\nserver-1 | Unpacking com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar (libraries:com.google.guava:failureaccess:1.0.3) to libraries/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\nserver-1 | Unpacking com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar (libraries:com.google.guava:guava:33.6.0-jre) to libraries/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar\nserver-1 | Unpacking com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar (libraries:com.microsoft.azure:msal4j:1.24.1) to libraries/com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar\nserver-1 | Unpacking com/mojang/authlib/10.0.77/authlib-10.0.77.jar (libraries:com.mojang:authlib:10.0.77) to libraries/com/mojang/authlib/10.0.77/authlib-10.0.77.jar\nserver-1 | Unpacking com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar (libraries:com.mojang:brigadier:1.3.11) to libraries/com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar\nserver-1 | Unpacking com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar (libraries:com.mojang:datafixerupper:10.0.21) to libraries/com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar\nserver-1 | Unpacking com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar (libraries:com.mojang:jtracy:1.14.38) to libraries/com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar\nserver-1 | Unpacking com/mojang/logging/1.7.12/logging-1.7.12.jar (libraries:com.mojang:logging:1.7.12) to libraries/com/mojang/logging/1.7.12/logging-1.7.12.jar\nserver-1 | Unpacking commons-io/commons-io/2.20.0/commons-io-2.20.0.jar (libraries:commons-io:commons-io:2.20.0) to libraries/commons-io/commons-io/2.20.0/commons-io-2.20.0.jar\nserver-1 | Unpacking io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar (libraries:io.netty:netty-buffer:4.2.16.Final) to libraries/io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar (libraries:io.netty:netty-codec-base:4.2.16.Final) to libraries/io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar (libraries:io.netty:netty-codec-compression:4.2.16.Final) to libraries/io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar (libraries:io.netty:netty-codec-http:4.2.16.Final) to libraries/io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar (libraries:io.netty:netty-common:4.2.16.Final) to libraries/io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar (libraries:io.netty:netty-handler:4.2.16.Final) to libraries/io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar (libraries:io.netty:netty-resolver:4.2.16.Final) to libraries/io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar (libraries:io.netty:netty-transport:4.2.16.Final) to libraries/io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-epoll:4.2.16.Final) to libraries/io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-kqueue:4.2.16.Final) to libraries/io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-x86_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-aarch_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-x86_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-aarch_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar (libraries:io.netty:netty-transport-native-unix-common:4.2.16.Final) to libraries/io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar\nserver-1 | Unpacking it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar (libraries:it.unimi.dsi:fastutil:8.5.18) to libraries/it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar\nserver-1 | Unpacking net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar (libraries:net.java.dev.jna:jna:5.17.0) to libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar\nserver-1 | Unpacking net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar (libraries:net.java.dev.jna:jna-platform:5.17.0) to libraries/net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar\nserver-1 | Unpacking net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar (libraries:net.sf.jopt-simple:jopt-simple:5.0.4) to libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar\nserver-1 | Unpacking org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar (libraries:org.apache.commons:commons-lang3:3.20.0) to libraries/org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-api:2.26.0) to libraries/org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-core:2.26.0) to libraries/org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-slf4j2-impl:2.26.0) to libraries/org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar\nserver-1 | Unpacking org/joml/joml/1.10.9/joml-1.10.9.jar (libraries:org.joml:joml:1.10.9) to libraries/org/joml/joml/1.10.9/joml-1.10.9.jar\nserver-1 | Unpacking org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar (libraries:org.jspecify:jspecify:1.0.0) to libraries/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar\nserver-1 | Unpacking org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar (libraries:org.slf4j:slf4j-api:2.0.17) to libraries/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar\nserver-1 | Starting net.minecraft.server.Main\nserver-1 | WARNING: A restricted method in java.lang.System has been called\nserver-1 | WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/data/libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar)\nserver-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nserver-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nserver-1 | \nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.9/joml-1.10.9.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:30:25] [ServerMain/INFO]: Environment: Environment[discoveryUrl=https://discovery.minecraftservices.com/minecraft/client, name=PROD]\nserver-1 | [07:30:26] [Worker-Main-14/INFO]: No existing world data, creating new world\nserver-1 | [07:30:26] [Worker-Main-5/INFO]: Loaded 1866 advancements\nserver-1 | [07:30:26] [Server thread/INFO]: Starting minecraft server version 26.3\nserver-1 | [07:30:26] [Server thread/INFO]: Loading properties\nserver-1 | [07:30:26] [Server thread/INFO]: Default game type: SURVIVAL\nserver-1 | [07:30:26] [Server thread/INFO]: Generating keypair\nserver-1 | [07:30:26] [Server thread/INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:30:26] [Server thread/INFO]: Preparing level \"world\"\nserver-1 | [07:30:27] [Server thread/INFO]: Selecting global world spawn...\nserver-1 | [07:30:28] [Server thread/INFO]: Loading 0 persistent chunks...\nserver-1 | [07:30:28] [Server thread/INFO]: Preparing spawn area: 100%\nserver-1 | [07:30:28] [Server thread/INFO]: Time elapsed: 1351 ms\nserver-1 | [07:30:28] [Server thread/INFO]: Done (1.529s)! For help, type \"help\"\nserver-1 | [07:30:28] [Server thread/INFO]: Starting remote control listener\nserver-1 | [07:30:28] [Server thread/INFO]: Thread RCON Listener started\nserver-1 | [07:30:28] [Server thread/INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:30:28] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:30:28] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:30:28] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:30:33] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:30:33] [RCON Client /0:0:0:0:0:0:0:1 #2/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:30:33] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:30:33] [RCON Client /0:0:0:0:0:0:0:1 #3/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:30:34.672737+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 13xpb_79/latest vanilla/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-05cacad4-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:30:34.882197+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/latest vanilla/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-05cacad4-server-1 Stopping \n Container minecraft-05cacad4-server-1 Stopped \n Container minecraft-05cacad4-server-1 Removing \n Container minecraft-05cacad4-server-1 Removed \n Network minecraft-05cacad4_default Removing \n Network minecraft-05cacad4_default Removed \n"} +{"timestamp": "2026-10-01T07:30:35.947663+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "50771", "--web-port", "51007", "--memory", "2G", "--motd", "Unicode \u2603 $HOME ${SERVER_IMAGE} backslash \\' quote \\\\ tail", "--network"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": true, \"profiles\": [\"proxy\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:30:36.027858+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-e85a0383_default Creating \n Network minecraft-e85a0383_default Creating \n Network minecraft-e85a0383_default Created \n Network minecraft-e85a0383_default Created \n Container minecraft-e85a0383-server-1 Creating \n Container minecraft-e85a0383-server-1 Created \n Container minecraft-e85a0383-proxy-1 Creating \n Container minecraft-e85a0383-proxy-1 Created \n Container minecraft-e85a0383-server-1 Starting \n Container minecraft-e85a0383-server-1 Started \n Container minecraft-e85a0383-server-1 Waiting \n Container minecraft-e85a0383-server-1 Healthy \n Container minecraft-e85a0383-proxy-1 Starting \n Container minecraft-e85a0383-proxy-1 Started \n Container minecraft-e85a0383-server-1 Waiting \n Container minecraft-e85a0383-proxy-1 Waiting \n Container minecraft-e85a0383-server-1 Healthy \n Container minecraft-e85a0383-proxy-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:31:02.929065+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/status", "--port", "50771"], "exit": 0, "output": "{\"description\": \"Unicode \\u2603 $HOME ${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\", \"modinfo\": {\"modList\": [], \"type\": \"FML\"}, \"players\": {\"max\": 20, \"online\": 0, \"sample\": []}, \"version\": {\"name\": \"Velocity 1.7.2-26.3\", \"protocol\": 775}}\n"} +{"timestamp": "2026-10-01T07:31:02.963932+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "compose", "config", "--format", "json"], "exit": 0, "output": "{\n \"name\": \"minecraft-e85a0383\",\n \"networks\": {\n \"default\": {\n \"name\": \"minecraft-e85a0383_default\",\n \"ipam\": {}\n }\n },\n \"secrets\": {\n \"rcon\": {\n \"name\": \"minecraft-e85a0383_rcon\",\n \"file\": \"/tmp/minecraft validation 13xpb_79/velocity network/.state/secrets/rcon\"\n }\n },\n \"services\": {\n \"proxy\": {\n \"profiles\": [\n \"proxy\"\n ],\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"depends_on\": {\n \"server\": {\n \"condition\": \"service_healthy\",\n \"required\": true\n }\n },\n \"entrypoint\": null,\n \"environment\": {\n \"ENABLE_RCON\": \"false\",\n \"MEMORY\": \"512M\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"TYPE\": \"VELOCITY\",\n \"VELOCITY_BUILD_ID\": \"36\",\n \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-monitor\",\n \"status\",\n \"--host\",\n \"localhost\",\n \"--port\",\n \"25565\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 12\n },\n \"image\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\n \"mem_limit\": \"1073741824\",\n \"networks\": {\n \"default\": null\n },\n \"ports\": [\n {\n \"mode\": \"ingress\",\n \"host_ip\": \"127.0.0.1\",\n \"target\": 25565,\n \"published\": \"50771\",\n \"protocol\": \"tcp\"\n }\n ],\n \"restart\": \"unless-stopped\",\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"30s\",\n \"user\": \"1001:1002\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation 13xpb_79/velocity network/data/proxy\",\n \"target\": \"/server\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation 13xpb_79/velocity network/.state/velocity.toml\",\n \"target\": \"/server/velocity.toml\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation 13xpb_79/velocity network/.state/secrets/forwarding\",\n \"target\": \"/server/forwarding.secret\",\n \"read_only\": true,\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation 13xpb_79/velocity network/plugins/proxy\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {}\n }\n ]\n },\n \"server\": {\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"entrypoint\": null,\n \"environment\": {\n \"COPY_CONFIG_DEST\": \"/data\",\n \"ENABLE_QUERY\": \"false\",\n \"ENABLE_RCON\": \"true\",\n \"EULA\": \"TRUE\",\n \"MEMORY\": \"2G\",\n \"MOTD\": \"Unicode \u2603 $$HOME $${SERVER_IMAGE} backslash \\\\' quote \\\\\\\\ tail\",\n \"ONLINE_MODE\": \"false\",\n \"PAPER_BUILD\": \"129\",\n \"PAUSE_WHEN_EMPTY_SECONDS\": \"-1\",\n \"RCON_PASSWORD_FILE\": \"/run/secrets/rcon\",\n \"SIMULATION_DISTANCE\": \"4\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"SYNC_SKIP_NEWER_IN_DESTINATION\": \"false\",\n \"TYPE\": \"PAPER\",\n \"VERSION\": \"26.2\",\n \"VIEW_DISTANCE\": \"6\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-health\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 30,\n \"start_period\": \"1m0s\"\n },\n \"image\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\n \"mem_limit\": \"3221225472\",\n \"networks\": {\n \"default\": null\n },\n \"restart\": \"unless-stopped\",\n \"secrets\": [\n {\n \"source\": \"rcon\",\n \"target\": \"/run/secrets/rcon\"\n }\n ],\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"2m0s\",\n \"user\": \"1001:1002\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation 13xpb_79/velocity network/data/server\",\n \"target\": \"/data\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation 13xpb_79/velocity network/configs/server\",\n \"target\": \"/config\",\n \"read_only\": true,\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation 13xpb_79/velocity network/plugins/server\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {}\n }\n ]\n }\n }\n}"} +{"timestamp": "2026-10-01T07:31:03.122823+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:31:03.328657+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "sha256sum", "/server/velocity-4.2.1-SNAPSHOT-36.jar"], "exit": 0, "output": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c /server/velocity-4.2.1-SNAPSHOT-36.jar\n"} +{"timestamp": "2026-10-01T07:31:03.735365+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 13xpb_79/velocity network/tests/login.py", "--port", "50771", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:31:03.786962+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-e85a0383-server-1 Recreate \n Container minecraft-e85a0383-server-1 Recreated \n Container minecraft-e85a0383-proxy-1 Recreate \n Container minecraft-e85a0383-proxy-1 Recreated \n Container minecraft-e85a0383-server-1 Starting \n Container minecraft-e85a0383-server-1 Started \n Container minecraft-e85a0383-server-1 Waiting \n Container minecraft-e85a0383-server-1 Healthy \n Container minecraft-e85a0383-proxy-1 Starting \n Container minecraft-e85a0383-proxy-1 Started \n Container minecraft-e85a0383-proxy-1 Waiting \n Container minecraft-e85a0383-server-1 Waiting \n Container minecraft-e85a0383-server-1 Healthy \n Container minecraft-e85a0383-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:31:26.944932+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 13xpb_79/velocity network/tests/login.py", "--port", "50771", "--verify-cli", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft"], "exit": 0, "output": "{\"play\": true, \"backend_list\": \"There are 1 of a max of 20 players online: ForwardProof\\n\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 1], [\"configuration\", 12], [\"configuration\", 14], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 13], [\"configuration\", 4], [\"configuration\", 4], [\"configuration\", 3]]}\n"} +{"timestamp": "2026-10-01T07:31:29.460190+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "compose", "logs", "--no-color", "server", "proxy"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:31:23.436774158Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:31:23 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:31:23 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:31:23 WARN]: The proxy is running in offline mode! This is a security risk and you will NOT receive any support!\nproxy-1 | [07:31:23 INFO]: Loading localizations...\nproxy-1 | [07:31:23 INFO]: Loading plugins...\nproxy-1 | [07:31:23 INFO]: Loaded 1 plugins\nproxy-1 | [07:31:23 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:31:23 INFO]: Done (0.5s)!\nproxy-1 | [07:31:26 INFO]: [connected player] ForwardProof (/172.19.0.1:33150) has connected\nproxy-1 | [07:31:27 INFO]: [server connection] ForwardProof -> main has connected\nproxy-1 | [07:31:29 INFO]: [connected player] ForwardProof (/172.19.0.1:33150) has disconnected\nproxy-1 | [07:31:29 INFO]: [server connection] ForwardProof -> main has disconnected\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:30 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:31:09.198 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:31:09.203 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:31:10.768630742Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:31:10 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:31:10 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:31:10 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:31:11 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:31:13 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:31:13 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:31:14 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 262.6ms\nserver-1 | [07:31:15 INFO]: Loaded 1585 recipes\nserver-1 | [07:31:15 INFO]: Loaded 1688 advancements\nserver-1 | [07:31:15 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:31:15 INFO]: Loading properties\nserver-1 | [07:31:15 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:31:15 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:31:15 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:31:15 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:31:15 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:31:15 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:31:15 INFO]: Default game type: SURVIVAL\nserver-1 | [07:31:15 INFO]: Generating keypair\nserver-1 | [07:31:15 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:31:15 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:31:15 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:31:15 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:31:15 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:31:15 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:31:15 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:31:15 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:31:15 INFO]: Preparing level \"world\"\nserver-1 | [07:31:16 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:31:16 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:31:16 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:31:16 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:31:16 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:31:16 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:31:16 INFO]: Done preparing level \"world\" (0.281s)\nserver-1 | [07:31:16 INFO]: [spark] Starting background profiler...\nserver-1 | [07:31:16 INFO]: Starting remote control listener\nserver-1 | [07:31:16 INFO]: Thread RCON Listener started\nserver-1 | [07:31:16 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:31:16 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:31:16 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:31:16 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:31:16 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:31:16 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:31:16 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:31:16 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:31:16 INFO]: Running delayed init tasks\nserver-1 | [07:31:16 INFO]: Done (6.116s)! For help, type \"help\"\nserver-1 | [07:31:27 INFO]: UUID of player ForwardProof is d2c1afbf-5081-3449-8752-8558175e1427\nserver-1 | [07:31:29 INFO]: ForwardProof joined the game\nserver-1 | [07:31:29 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:31:29 INFO]: ForwardProof[/172.19.0.1:50946] logged in with entity id 6 at ([minecraft:overworld]40.5, 63.0, 96.5)\nserver-1 | [07:31:29 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:31:29 INFO]: ForwardProof lost connection: Disconnected\nserver-1 | [07:31:29 INFO]: ForwardProof left the game\n"} +{"timestamp": "2026-10-01T07:31:29.617061+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "compose", "ps", "-q", "server"], "exit": 0, "output": "e5cb30d4f528b23fa40427ef450eee9b56abad8b366572b89e81d5730ee82510\n"} +{"timestamp": "2026-10-01T07:31:29.773190+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", "e5cb30d4f528b23fa40427ef450eee9b56abad8b366572b89e81d5730ee82510"], "exit": 0, "output": "172.19.0.2\n"} +{"timestamp": "2026-10-01T07:31:29.789916+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 13xpb_79/velocity network/tests/login.py", "--host", "172.19.0.2", "--port", "25565", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"4\\\"This server requires you to connect with Velocity.\\\"\", \"packets\": [[\"login\", 4], [\"login\", 0]]}\n"} +{"timestamp": "2026-10-01T07:31:29.843385+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-e85a0383-server-1 Recreate \n Container minecraft-e85a0383-server-1 Recreated \n Container minecraft-e85a0383-server-1 Starting \n Container minecraft-e85a0383-server-1 Started \n Container minecraft-e85a0383-server-1 Waiting \n Container minecraft-e85a0383-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:31:46.732450+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 13xpb_79/velocity network/tests/login.py", "--port", "50771", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"\\n\\b\\u0000\\u0005color\\u0000\\u0003red\\b\\u0000\\u0004text\\u0000:Unable to connect to main: Unable to verify player details\\u0000\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 2]]}\n"} +{"timestamp": "2026-10-01T07:31:46.818066+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-e85a0383-server-1 Recreate \n Container minecraft-e85a0383-server-1 Recreated \n Container minecraft-e85a0383-proxy-1 Recreate \n Container minecraft-e85a0383-proxy-1 Recreated \n Container minecraft-e85a0383-server-1 Starting \n Container minecraft-e85a0383-server-1 Started \n Container minecraft-e85a0383-server-1 Waiting \n Container minecraft-e85a0383-server-1 Healthy \n Container minecraft-e85a0383-proxy-1 Starting \n Container minecraft-e85a0383-proxy-1 Started \n Container minecraft-e85a0383-server-1 Waiting \n Container minecraft-e85a0383-proxy-1 Waiting \n Container minecraft-e85a0383-server-1 Healthy \n Container minecraft-e85a0383-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:32:09.771840+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation 13xpb_79/velocity network/tests/login.py", "--port", "50771", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:32:09.821177+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:32:06.282599051Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:32:06 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:32:06 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:32:06 INFO]: Loading localizations...\nproxy-1 | [07:32:06 INFO]: Loading plugins...\nproxy-1 | [07:32:06 INFO]: Loaded 1 plugins\nproxy-1 | [07:32:06 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:32:06 INFO]: Done (0.49s)!\nproxy-1 | [07:32:09 INFO]: [initial connection] /172.19.0.1:59722 has disconnected\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:30 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:31:52.001 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:31:52.005 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:31:53.572218744Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:31:53 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:31:53 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:31:53 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:31:53 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:31:56 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:31:56 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:31:57 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 264.9ms\nserver-1 | [07:31:57 INFO]: Loaded 1585 recipes\nserver-1 | [07:31:58 INFO]: Loaded 1688 advancements\nserver-1 | [07:31:58 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:31:58 INFO]: Loading properties\nserver-1 | [07:31:58 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:31:58 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:31:58 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:31:58 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:31:58 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:31:58 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:31:58 INFO]: Default game type: SURVIVAL\nserver-1 | [07:31:58 INFO]: Generating keypair\nserver-1 | [07:31:58 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:31:58 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:31:58 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:31:58 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:31:58 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:31:58 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:31:58 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:31:58 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:31:58 INFO]: Preparing level \"world\"\nserver-1 | [07:31:59 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:31:59 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:31:59 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:31:59 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:31:59 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:31:59 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:31:59 INFO]: Done preparing level \"world\" (0.302s)\nserver-1 | [07:31:59 INFO]: [spark] Starting background profiler...\nserver-1 | [07:31:59 INFO]: Starting remote control listener\nserver-1 | [07:31:59 INFO]: Thread RCON Listener started\nserver-1 | [07:31:59 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:31:59 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:31:59 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:31:59 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:31:59 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:31:59 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:31:59 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:31:59 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:31:59 INFO]: Running delayed init tasks\nserver-1 | [07:31:59 INFO]: Done (6.146s)! For help, type \"help\"\n"} +{"timestamp": "2026-10-01T07:32:09.977300+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\"ContainerName\":\"minecraft-e85a0383-proxy-1\",\"Repository\":\"itzg/mc-proxy\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":968846183,\"Created\":\"2026-09-18T17:24:52.935406437Z\",\"LastTagTime\":\"2026-10-01T07:26:34.563926288Z\"},{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-e85a0383-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:32:10.184136+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-e85a0383-proxy-1 Stopping \n Container minecraft-e85a0383-proxy-1 Stopped \n Container minecraft-e85a0383-proxy-1 Removing \n Container minecraft-e85a0383-proxy-1 Removed \n Container minecraft-e85a0383-server-1 Stopping \n Container minecraft-e85a0383-server-1 Stopped \n Container minecraft-e85a0383-server-1 Removing \n Container minecraft-e85a0383-server-1 Removed \n Network minecraft-e85a0383_default Removing \n Network minecraft-e85a0383_default Removed \n"} +{"timestamp": "2026-10-01T07:32:11.694132+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation 13xpb_79/velocity network/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:11.864779+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation 13xpb_79/latest vanilla/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.021681+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation 13xpb_79/restored server/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.178240+00:00", "cwd": "/tmp/minecraft validation 13xpb_79/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation 13xpb_79/stable paper/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": " Volume minecraft-012969e4_database Removing \n Volume minecraft-012969e4_database Removed \n"} +{"timestamp": "2026-10-01T07:32:12.336217+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{.Id}}", "b0b0164585236bbb0383a8b48bff4f6fe193c8d220d9ad0048a676cbce09920c"], "exit": 0, "output": "b0b0164585236bbb0383a8b48bff4f6fe193c8d220d9ad0048a676cbce09920c\n"} +{"timestamp": "2026-10-01T07:32:12.352302+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "rm", "b0b0164585236bbb0383a8b48bff4f6fe193c8d220d9ad0048a676cbce09920c"], "exit": 0, "output": "b0b0164585236bbb0383a8b48bff4f6fe193c8d220d9ad0048a676cbce09920c\n"} +{"timestamp": "2026-10-01T07:32:12.385236+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "ps", "-aq"], "exit": 0, "output": "9fc1c9de7bd4\nb6565a0b2641\ncb032c5d0307\nc4b270652fae\n83b52f82cc55\nfcc32bf402ee\n3faf83c3849e\n14cb2d0322a8\n7ca13c7a9157\n8a106aa4cdf8\n05758f1c498d\n90ed72c10c1c\n4e36373b3ff8\n31f7b35c97a2\n1b9e84a6dac9\n5440b03cc0be\nb659460c72ed\n7910b8100224\nc59f1f70d70f\n1f2fd13508fb\n9a0f33f0c8af\n5f0ffbf98fe9\nd22abb2de519\n"} +{"timestamp": "2026-10-01T07:32:12.439112+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-012969e4"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.455392+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-012969e4"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.471350+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-012969e4"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.487185+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-cac213a8"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.502964+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-cac213a8"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.518283+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-cac213a8"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.533847+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-05cacad4"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.551224+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-05cacad4"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.566836+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-05cacad4"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.583869+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-e85a0383"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.599491+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-e85a0383"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:32:12.616170+00:00", "cwd": "/tmp/minecraft-final-fixed-archive", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-e85a0383"], "exit": 0, "output": ""} diff --git a/docs/proof/review-fixes/runtime-arm64/inventory-diff.json b/docs/proof/review-fixes/runtime-arm64/inventory-diff.json new file mode 100644 index 0000000..b644c18 --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64/inventory-diff.json @@ -0,0 +1,29 @@ +{ + "removed_unrelated_ids": [], + "added_unrelated_ids": [], + "preserved_ids": [ + "05758f1c498d", + "14cb2d0322a8", + "1b9e84a6dac9", + "1f2fd13508fb", + "31f7b35c97a2", + "3faf83c3849e", + "4e36373b3ff8", + "5440b03cc0be", + "5f0ffbf98fe9", + "7910b8100224", + "7ca13c7a9157", + "83b52f82cc55", + "8a106aa4cdf8", + "90ed72c10c1c", + "9a0f33f0c8af", + "9fc1c9de7bd4", + "b6565a0b2641", + "b659460c72ed", + "c4b270652fae", + "c59f1f70d70f", + "cb032c5d0307", + "d22abb2de519", + "fcc32bf402ee" + ] +} diff --git a/docs/proof/review-fixes/runtime-arm64/overlap-first.log b/docs/proof/review-fixes/runtime-arm64/overlap-first.log new file mode 100644 index 0000000..0b0efb7 --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64/overlap-first.log @@ -0,0 +1,69 @@ + Container minecraft-012969e4-backup-run-af83048af19e Creating + Container minecraft-012969e4-backup-run-af83048af19e Created +time="2026-10-01T07:29:33Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:29:34+0000 INFO Repository already initialized +2026-10-01T07:29:34+0000 INFO Checking for stale locks +2026-10-01T07:29:35+0000 INFO Checking repo integrity +2026-10-01T07:29:35+0000 INFO waiting initial delay of 0... +2026-10-01T07:29:35+0000 INFO waiting for rcon readiness... +2026-10-01T07:29:35+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:29:35+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:29:35+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:29:35+0000 INFO Command executed successfully sync +2026-10-01T07:29:38+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:29:39+0000 INFO using parent snapshot 159cbfb4 +2026-10-01T07:29:39+0000 INFO +2026-10-01T07:29:39+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:29:39+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:29:39+0000 INFO Added to the repository: 31.524 KiB (13.217 KiB stored) +2026-10-01T07:29:39+0000 INFO +2026-10-01T07:29:39+0000 INFO processed 182 files, 174.559 MiB in 0:00 +2026-10-01T07:29:39+0000 INFO snapshot bcd71b74 saved +2026-10-01T07:29:39+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:29:40+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:29:40+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:29:40+0000 INFO keep 2 snapshots: +2026-10-01T07:29:40+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:29:40+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:29:40+0000 INFO 7c3e2c67 2026-10-01 07:29:05 minecraft mc_backups,server oldest daily snapshot /data 174.559 MiB +2026-10-01T07:29:40+0000 INFO oldest weekly snapshot +2026-10-01T07:29:40+0000 INFO oldest monthly snapshot +2026-10-01T07:29:40+0000 INFO bcd71b74 2026-10-01 07:29:38 minecraft mc_backups,server daily snapshot /data 174.559 MiB +2026-10-01T07:29:40+0000 INFO weekly snapshot +2026-10-01T07:29:40+0000 INFO monthly snapshot +2026-10-01T07:29:40+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:29:40+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:29:40+0000 INFO 2 snapshots +2026-10-01T07:29:40+0000 INFO +2026-10-01T07:29:40+0000 INFO remove 1 snapshots: +2026-10-01T07:29:40+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:29:40+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:29:40+0000 INFO 159cbfb4 2026-10-01 07:29:24 minecraft mc_backups,server /data 174.559 MiB +2026-10-01T07:29:40+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:29:40+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:29:40+0000 INFO 1 snapshots +2026-10-01T07:29:40+0000 INFO +2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:29:40+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:29:40+0000 INFO loading all snapshots... +2026-10-01T07:29:40+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:29:40+0000 INFO searching used packs... +2026-10-01T07:29:40+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 15 / 15 packs processed +2026-10-01T07:29:40+0000 INFO +2026-10-01T07:29:40+0000 INFO to repack: 32 blobs / 16.317 KiB +2026-10-01T07:29:40+0000 INFO this removes: 24 blobs / 12.051 KiB +2026-10-01T07:29:40+0000 INFO to delete: 0 blobs / 0 B +2026-10-01T07:29:40+0000 INFO total prune: 24 blobs / 12.051 KiB +2026-10-01T07:29:40+0000 INFO remaining: 618 blobs / 160.219 MiB +2026-10-01T07:29:40+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:29:40+0000 INFO +2026-10-01T07:29:40+0000 INFO repacking packs +2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 2 / 2 packs repacked +2026-10-01T07:29:40+0000 INFO rebuilding index +2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 4 / 4 indexes processed +2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 4 / 4 old indexes deleted +2026-10-01T07:29:40+0000 INFO removing 2 old packs +2026-10-01T07:29:40+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:29:40+0000 INFO done diff --git a/docs/proof/review-fixes/runtime-arm64/overlap-second.log b/docs/proof/review-fixes/runtime-arm64/overlap-second.log new file mode 100644 index 0000000..852f885 --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64/overlap-second.log @@ -0,0 +1,70 @@ + Container minecraft-012969e4-backup-run-3128862d0a09 Creating + Container minecraft-012969e4-backup-run-3128862d0a09 Created +time="2026-10-01T07:29:36Z" level=info msg="Skipping uid/gid change since current user is not root" +2026-10-01T07:29:37+0000 INFO Repository already initialized +2026-10-01T07:29:37+0000 INFO Checking for stale locks +2026-10-01T07:29:37+0000 INFO Checking repo integrity +2026-10-01T07:29:38+0000 INFO waiting initial delay of 0... +2026-10-01T07:29:38+0000 INFO waiting for rcon readiness... +2026-10-01T07:29:38+0000 INFO Command executed successfully rcon-cli list +2026-10-01T07:29:39+0000 INFO Command executed successfully rcon-cli save-off +2026-10-01T07:29:39+0000 INFO Command executed successfully rcon-cli save-all flush +2026-10-01T07:29:39+0000 INFO Command executed successfully sync +2026-10-01T07:29:39+0000 INFO Backing up content in /data as host minecraft +2026-10-01T07:29:39+0000 INFO repo already locked, waiting up to 1m0s for the lock +2026-10-01T07:29:45+0000 INFO using parent snapshot bcd71b74 +2026-10-01T07:29:45+0000 INFO +2026-10-01T07:29:45+0000 INFO Files: 0 new, 15 changed, 167 unmodified +2026-10-01T07:29:45+0000 INFO Dirs: 0 new, 16 changed, 293 unmodified +2026-10-01T07:29:45+0000 INFO Added to the repository: 31.070 KiB (12.636 KiB stored) +2026-10-01T07:29:45+0000 INFO +2026-10-01T07:29:45+0000 INFO processed 182 files, 174.559 MiB in 0:05 +2026-10-01T07:29:45+0000 INFO snapshot dced8ae4 saved +2026-10-01T07:29:45+0000 INFO Command executed successfully rcon-cli save-on +2026-10-01T07:29:45+0000 INFO Pruning snapshots using --keep-daily 7 --keep-weekly 4 --keep-monthly 6 +2026-10-01T07:29:46+0000 INFO Applying Policy: keep 7 daily, 4 weekly, 6 monthly snapshots +2026-10-01T07:29:46+0000 INFO keep 2 snapshots: +2026-10-01T07:29:46+0000 INFO ID Time Host Tags Reasons Paths Size +2026-10-01T07:29:46+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:29:46+0000 INFO 7c3e2c67 2026-10-01 07:29:05 minecraft mc_backups,server oldest daily snapshot /data 174.559 MiB +2026-10-01T07:29:46+0000 INFO oldest weekly snapshot +2026-10-01T07:29:46+0000 INFO oldest monthly snapshot +2026-10-01T07:29:46+0000 INFO dced8ae4 2026-10-01 07:29:39 minecraft mc_backups,server daily snapshot /data 174.559 MiB +2026-10-01T07:29:46+0000 INFO weekly snapshot +2026-10-01T07:29:46+0000 INFO monthly snapshot +2026-10-01T07:29:46+0000 INFO --------------------------------------------------------------------------------------------------------- +2026-10-01T07:29:46+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:29:46+0000 INFO 2 snapshots +2026-10-01T07:29:46+0000 INFO +2026-10-01T07:29:46+0000 INFO remove 1 snapshots: +2026-10-01T07:29:46+0000 INFO ID Time Host Tags Paths Size +2026-10-01T07:29:46+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:29:46+0000 INFO bcd71b74 2026-10-01 07:29:38 minecraft mc_backups,server /data 174.559 MiB +2026-10-01T07:29:46+0000 INFO -------------------------------------------------------------------------------- +2026-10-01T07:29:46+0000 INFO Timestamps shown in Etc/UTC +2026-10-01T07:29:46+0000 INFO 1 snapshots +2026-10-01T07:29:46+0000 INFO +2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 1 / 1 files deleted +2026-10-01T07:29:46+0000 INFO 1 snapshots have been removed, running prune +2026-10-01T07:29:46+0000 INFO loading all snapshots... +2026-10-01T07:29:46+0000 INFO finding data that is still in use for 2 snapshots +2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 2 / 2 snapshots +2026-10-01T07:29:46+0000 INFO searching used packs... +2026-10-01T07:29:46+0000 INFO collecting packs for deletion and repacking +2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 17 / 17 packs processed +2026-10-01T07:29:46+0000 INFO +2026-10-01T07:29:46+0000 INFO to repack: 8 blobs / 2.335 KiB +2026-10-01T07:29:46+0000 INFO this removes: 7 blobs / 1.487 KiB +2026-10-01T07:29:46+0000 INFO to delete: 17 blobs / 10.236 KiB +2026-10-01T07:29:46+0000 INFO total prune: 24 blobs / 11.724 KiB +2026-10-01T07:29:46+0000 INFO remaining: 618 blobs / 160.219 MiB +2026-10-01T07:29:46+0000 INFO unused size after prune: 0 B (0.00% of remaining size) +2026-10-01T07:29:46+0000 INFO +2026-10-01T07:29:46+0000 INFO repacking packs +2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 1 / 1 packs repacked +2026-10-01T07:29:46+0000 INFO rebuilding index +2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 3 / 3 indexes processed +2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 3 / 3 old indexes deleted +2026-10-01T07:29:46+0000 INFO removing 2 old packs +2026-10-01T07:29:46+0000 INFO [0:00] 100.00% 2 / 2 files deleted +2026-10-01T07:29:46+0000 INFO done diff --git a/docs/proof/review-fixes/runtime-arm64/summary.json b/docs/proof/review-fixes/runtime-arm64/summary.json new file mode 100644 index 0000000..4994494 --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T07:28:38.252555+00:00", + "mode": "fullDocker", + "passed": true, + "finished": "2026-10-01T07:32:12.819828+00:00" +} diff --git a/docs/proof/review-fixes/runtime-arm64/versions.env b/docs/proof/review-fixes/runtime-arm64/versions.env new file mode 100644 index 0000000..16264c6 --- /dev/null +++ b/docs/proof/review-fixes/runtime-arm64/versions.env @@ -0,0 +1,13 @@ +SERVER_IMAGE=itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e +PROXY_IMAGE=itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 +BACKUP_IMAGE=itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 +DATABASE_IMAGE=mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1 +WEB_IMAGE=nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 +PAPER_VERSION=26.2 +PAPER_BUILD=129 +VANILLA_VERSION=26.3 +VELOCITY_VERSION=4.2.1-SNAPSHOT +VELOCITY_BUILD_ID=36 +PAPER_SHA256=b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 +VELOCITY_SHA256=62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c +VANILLA_SERVER_SHA1=33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c diff --git a/docs/proof/review-fixes/skill-validation.json b/docs/proof/review-fixes/skill-validation.json new file mode 100644 index 0000000..4aa2abf --- /dev/null +++ b/docs/proof/review-fixes/skill-validation.json @@ -0,0 +1,10 @@ +{ + "timestamp": "2026-10-01T07:34:30.998601+00:00", + "command": [ + "python3", + "/home/coder/.codex/skills/.system/skill-creator/scripts/quick_validate.py", + ".agents/skills/minecraft-server-setup" + ], + "exit": 0, + "output": "Skill is valid!\n" +} diff --git a/docs/proof/review-fixes/unsupported-protocol.json b/docs/proof/review-fixes/unsupported-protocol.json new file mode 100644 index 0000000..9e3c74c --- /dev/null +++ b/docs/proof/review-fixes/unsupported-protocol.json @@ -0,0 +1,12 @@ +{ + "command": [ + "python3", + "tests/login.py", + "--version", + "future-unsupported", + "--port", + "1" + ], + "exit": 1, + "output": "{\"error\": \"Unsupported validation client protocol for Minecraft future-unsupported. Update the client packet mapping before validating this version.\"}\n" +} diff --git a/docs/proof/review-fixes/version-check.json b/docs/proof/review-fixes/version-check.json new file mode 100644 index 0000000..0b4f9f0 --- /dev/null +++ b/docs/proof/review-fixes/version-check.json @@ -0,0 +1,77 @@ +{ + "images": { + "BACKUP_IMAGE": { + "platforms": { + "amd64": "sha256:67af7cc0b97936effa07ab7b24bc957e3b7562f9bbe30ff0ebc731ad1fd0a00a", + "arm": "sha256:b1ca897693f9ec08f34d50a6c86caeded408ca582861671ec6edc67fa78ff1dd", + "arm64": "sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e" + }, + "reference": "itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16" + }, + "DATABASE_IMAGE": { + "platforms": { + "amd64": "sha256:2f4f46f80e7251990bfdc601ae3f7f2964ddb4dc1868f7deca699fc1ece8c35e", + "arm64": "sha256:6b01a23e2550ac37036c3dd6187f790b56832832b53ce4173b8e2b2fed51e3a5", + "ppc64le": "sha256:31c7afbe80e196dec8aaaed602811b6902e09e70ec9a03ac64372760d1eb4a51", + "s390x": "sha256:d6addcff7350368b777769ed002b9a6b773723034edb85959c0b4aa9fd834945" + }, + "reference": "mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1" + }, + "PROXY_IMAGE": { + "platforms": { + "amd64": "sha256:0dca6fbd141e9623057d396922efbb3b31224737bd8a8bbb15461e2a5746164d", + "arm64": "sha256:6869fe181f33f394d96cc43c60bfac02293c75eaf77f9080e2290317d444e85f" + }, + "reference": "itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411" + }, + "SERVER_IMAGE": { + "platforms": { + "amd64": "sha256:fb2f45007e63d33322cc9c3e1c87d1aef533197889e88c5d4e6b2138f4d86620", + "arm64": "sha256:11fb5d3a9eac50eaab80926a90a948b1ba6714122d55e36c704e5bbd086a0429", + "riscv64": "sha256:744be55957502885613c65b213537d04b0e5baaa8f2ec6c10e59fde8ed8e20d2" + }, + "reference": "itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e" + }, + "WEB_IMAGE": { + "platforms": { + "386": "sha256:6b7a4f13aa1cb05946e90cfa70933418e51f99a9604305eec0779737077fa64d", + "amd64": "sha256:8f84ed99befc3891b8f329c5c202785278a2cfb7c25107d57fb2a134a3117433", + "arm": "sha256:3a46b783293cbd9f24fba2fbafdf391b8c8953e8dcbb0da23b841b4783be3c9e", + "arm64": "sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83", + "ppc64le": "sha256:a2056a035f0ae2caef33df498ee2f22756955da24d89cc7840a500356fc1b099", + "riscv64": "sha256:d0f15a8a48f14a06d10b50ab988842126c0d769bd8f7d9f3b27b101b2d6b8ec6", + "s390x": "sha256:b2cc574e70799bfa87616aa5f6f734bef5a36c2822c7cb5efd639b28688c632a" + }, + "reference": "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94" + } + }, + "software": { + "paper": { + "build": "129", + "channel": "STABLE", + "download": "https://fill-data.papermc.io/v1/objects/b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083/paper-26.2-129.jar", + "sha256": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083", + "source": "https://fill.papermc.io/v3/projects/paper/versions/26.2/builds/129", + "version": "26.2" + }, + "vanilla": { + "latest_release": "26.3", + "server": { + "sha1": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c", + "size": 62294556, + "url": "https://piston-data.mojang.com/v1/objects/33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c/server.jar" + }, + "source": "https://piston-meta.mojang.com/v1/packages/4fe1aa1ef8da1cb95c5bad1fb98890ca56dd8ca3/26.3.json", + "version": "26.3" + }, + "velocity": { + "build": "36", + "channel": "STABLE", + "download": "https://fill-data.papermc.io/v1/objects/62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c/velocity-4.2.1-SNAPSHOT-36.jar", + "sha256": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c", + "source": "https://fill.papermc.io/v3/projects/velocity/versions/4.2.1-SNAPSHOT/builds/36", + "version": "4.2.1-SNAPSHOT" + } + }, + "verified_at": "2026-10-01T07:20:13.478551+00:00" +} diff --git a/docs/proof/runtime/assertions.json b/docs/proof/runtime/assertions.json new file mode 100644 index 0000000..444fa75 --- /dev/null +++ b/docs/proof/runtime/assertions.json @@ -0,0 +1,142 @@ +[ + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "custom MOTD reached protocol", + "passed": true + }, + { + "assertion": "Paper exact build", + "passed": true + }, + { + "assertion": "Paper downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective standalone authentication and query settings", + "passed": true + }, + { + "assertion": "standalone requires account authentication", + "passed": true + }, + { + "assertion": "wrong RCON password denied", + "passed": true + }, + { + "assertion": "world survives container recreation", + "passed": true + }, + { + "assertion": "encrypted snapshot created", + "passed": true + }, + { + "assertion": "backup flushed world and resumed saves", + "passed": true + }, + { + "assertion": "scheduled backup interval active", + "passed": true + }, + { + "assertion": "backup failure is reported", + "passed": true + }, + { + "assertion": "backup failure resumes automatic saving", + "passed": true + }, + { + "assertion": "26.2 Minecraft status", + "passed": true + }, + { + "assertion": "restored server contains snapshot world", + "passed": true + }, + { + "assertion": "database authenticates and round trips data", + "passed": true + }, + { + "assertion": "database survives recreation", + "passed": true + }, + { + "assertion": "database wrong password denied", + "passed": true + }, + { + "assertion": "optional web serves files", + "passed": true + }, + { + "assertion": "26.3 Minecraft status", + "passed": true + }, + { + "assertion": "Vanilla RCON works", + "passed": true + }, + { + "assertion": "Vanilla downloaded artifact checksum", + "passed": true + }, + { + "assertion": "effective Vanilla authentication and query settings", + "passed": true + }, + { + "assertion": "Velocity Minecraft status", + "passed": true + }, + { + "assertion": "backend has no published port", + "passed": true + }, + { + "assertion": "production Velocity online authentication", + "passed": true + }, + { + "assertion": "forwarding secret reaches effective Paper config", + "passed": true + }, + { + "assertion": "Velocity downloaded artifact checksum", + "passed": true + }, + { + "assertion": "production proxy requires account authentication", + "passed": true + }, + { + "assertion": "real client enters play through authenticated modern forwarding", + "passed": true + }, + { + "assertion": "backend logged the real client join", + "passed": true + }, + { + "assertion": "direct backend client denied without forwarding", + "passed": true + }, + { + "assertion": "wrong forwarding secret denies client login", + "passed": true + }, + { + "assertion": "production online authentication restored", + "passed": true + }, + { + "assertion": "owned containers networks and volumes removed", + "passed": true + } +] diff --git a/docs/proof/runtime/cleanup.json b/docs/proof/runtime/cleanup.json new file mode 100644 index 0000000..943c2d4 --- /dev/null +++ b/docs/proof/runtime/cleanup.json @@ -0,0 +1,3 @@ +{ + "remaining": [] +} diff --git a/docs/proof/runtime/commands.jsonl b/docs/proof/runtime/commands.jsonl new file mode 100644 index 0000000..d053151 --- /dev/null +++ b/docs/proof/runtime/commands.jsonl @@ -0,0 +1,86 @@ +{"timestamp": "2026-10-01T06:59:33.624945+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "180", "python3", "-m", "unittest", "discover", "-s", "tests", "-v"], "exit": 0, "output": "test_all_supported_modes_resolve_secure_compose (test_cli.SetupBoundary.test_all_supported_modes_resolve_secure_compose) ... ok\ntest_doctor_refuses_contradictory_authentication (test_cli.SetupBoundary.test_doctor_refuses_contradictory_authentication) ... ok\ntest_doctor_reports_unavailable_docker_without_exposing_credentials (test_cli.SetupBoundary.test_doctor_reports_unavailable_docker_without_exposing_credentials) ... ok\ntest_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration (test_cli.SetupBoundary.test_idempotent_setup_preserves_secrets_world_and_denies_silent_reconfiguration) ... ok\ntest_legacy_deployment_is_refused (test_cli.SetupBoundary.test_legacy_deployment_is_refused) ... ok\ntest_requires_consent_and_rejects_invalid_options_without_writes (test_cli.SetupBoundary.test_requires_consent_and_rejects_invalid_options_without_writes) ... ok\n\n----------------------------------------------------------------------\nRan 6 tests in 1.097s\n\nOK\n"} +{"timestamp": "2026-10-01T06:59:34.768900+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "ps", "-aq"], "exit": 0, "output": "da6e8ec3c74c\n096d72ec2f76\n9fc1c9de7bd4\nb6565a0b2641\ncb032c5d0307\nc4b270652fae\n83b52f82cc55\nfcc32bf402ee\n3faf83c3849e\n14cb2d0322a8\n7ca13c7a9157\n8a106aa4cdf8\n05758f1c498d\n90ed72c10c1c\n4e36373b3ff8\n31f7b35c97a2\n1b9e84a6dac9\n5440b03cc0be\nb659460c72ed\n7910b8100224\nc59f1f70d70f\n1f2fd13508fb\n9a0f33f0c8af\n5f0ffbf98fe9\nd22abb2de519\n"} +{"timestamp": "2026-10-01T06:59:34.824726+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "version"], "exit": 0, "output": "Client: Docker Engine - Community\n Version: 29.8.0\n API version: 1.56\n Go version: go1.26.8\n Git commit: 88096ef\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Context: default\n\nServer: Docker Engine - Community\n Engine:\n Version: 29.8.0\n API version: 1.56 (minimum version 1.40)\n Go version: go1.26.8\n Git commit: 3ce5872\n Built: Thu Sep 3 21:49:40 2026\n OS/Arch: linux/arm64\n Experimental: false\n containerd:\n Version: v2.3.5\n GitCommit: 1294c24a7da8e5a793ed378161673abe94118892\n runc:\n Version: 1.5.1\n GitCommit: v1.5.1-0-g8f2685a4\n docker-init:\n Version: 0.19.0\n GitCommit: de40ad0\n"} +{"timestamp": "2026-10-01T06:59:34.849248+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "41741", "--web-port", "40097", "--memory", "2G", "--motd", "Validation proof", "--profile", "backup", "--profile", "database", "--profile", "web"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [\"backup\", \"database\", \"web\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T06:59:34.890785+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "41741", "--web-port", "40097", "--memory", "2G", "--motd", "Validation proof", "--profile", "backup", "--profile", "database", "--profile", "web", "--start"], "exit": 0, "output": " Network minecraft-f0840fda_default Creating \n Network minecraft-f0840fda_default Creating \n Volume minecraft-f0840fda_database Creating \n Volume minecraft-f0840fda_database Creating \n Volume minecraft-f0840fda_database Created \n Volume minecraft-f0840fda_database Created \n Network minecraft-f0840fda_default Created \n Network minecraft-f0840fda_default Created \n Container minecraft-f0840fda-web-1 Creating \n Container minecraft-f0840fda-server-1 Creating \n Container minecraft-f0840fda-database-1 Creating \n Container minecraft-f0840fda-server-1 Created \n Container minecraft-f0840fda-backup-1 Creating \n Container minecraft-f0840fda-database-1 Created \n Container minecraft-f0840fda-web-1 Created \n Container minecraft-f0840fda-backup-1 Created \n Container minecraft-f0840fda-database-1 Starting \n Container minecraft-f0840fda-web-1 Starting \n Container minecraft-f0840fda-server-1 Starting \n Container minecraft-f0840fda-database-1 Started \n Container minecraft-f0840fda-web-1 Started \n Container minecraft-f0840fda-server-1 Started \n Container minecraft-f0840fda-server-1 Waiting \n Container minecraft-f0840fda-server-1 Healthy \n Container minecraft-f0840fda-backup-1 Starting \n Container minecraft-f0840fda-backup-1 Started \n Container minecraft-f0840fda-server-1 Waiting \n Container minecraft-f0840fda-backup-1 Waiting \n Container minecraft-f0840fda-database-1 Waiting \n Container minecraft-f0840fda-web-1 Waiting \n Container minecraft-f0840fda-backup-1 Healthy \n Container minecraft-f0840fda-web-1 Healthy \n Container minecraft-f0840fda-server-1 Healthy \n Container minecraft-f0840fda-database-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"distribution\": \"paper\", \"network\": false, \"setup\": \"unchanged\"}\n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T06:59:56.955407+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/status", "--port", "41741"], "exit": 0, "output": "{\"description\": \"Validation proof\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T06:59:56.988508+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 2 1001 1002 4096 Oct 1 06:59 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | \u001b[39m[mc-image-helper] 06:59:37.515 INFO : Downloaded /data/paper-26.2-129.jar\nserver-1 | \u001b[0;39m[init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 06:59:40.174 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Applying patches\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T06:59:46.035586644Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [06:59:46 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [06:59:46 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [06:59:46 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [06:59:46 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [06:59:49 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [06:59:49 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [06:59:49 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 287.1ms\nserver-1 | [06:59:49 INFO]: Found new data pack paper, loading it automatically\nserver-1 | [06:59:49 INFO]: No existing world data, creating new world\nserver-1 | [06:59:50 INFO]: Loaded 1585 recipes\nserver-1 | [06:59:50 INFO]: Loaded 1688 advancements\nserver-1 | [06:59:50 INFO]: Starting minecraft server version 26.2\nserver-1 | [06:59:50 INFO]: Loading properties\nserver-1 | [06:59:50 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [06:59:50 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [06:59:50 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [06:59:50 INFO]: Using 4 threads for Netty based IO\nserver-1 | [06:59:50 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [06:59:51 INFO]: Default game type: SURVIVAL\nserver-1 | [06:59:51 INFO]: Generating keypair\nserver-1 | [06:59:51 INFO]: Starting Minecraft server on *:25565\nserver-1 | [06:59:51 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [06:59:51 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [06:59:51 INFO]: Preparing level \"world\"\nserver-1 | [06:59:51 INFO]: Selecting spawn point for level 'minecraft:overworld'...\nserver-1 | [06:59:54 INFO]: Selecting spawn point for level 'minecraft:the_nether'...\nserver-1 | [06:59:54 INFO]: Selecting spawn point for level 'minecraft:the_end'...\nserver-1 | [06:59:54 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [06:59:54 INFO]: Preparing spawn area: 100%\nserver-1 | [06:59:54 INFO]: Prepared spawn area in 3031 ms\nserver-1 | [06:59:54 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [06:59:54 INFO]: Preparing spawn area: 100%\nserver-1 | [06:59:54 INFO]: Prepared spawn area in 477 ms\nserver-1 | [06:59:54 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [06:59:54 INFO]: Preparing spawn area: 100%\nserver-1 | [06:59:54 INFO]: Prepared spawn area in 124 ms\nserver-1 | [06:59:54 INFO]: Done preparing level \"world\" (3.284s)\nserver-1 | [06:59:54 INFO]: [spark] Starting background profiler...\nserver-1 | [06:59:54 INFO]: Starting remote control listener\nserver-1 | [06:59:54 INFO]: Thread RCON Listener started\nserver-1 | [06:59:54 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [06:59:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [06:59:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [06:59:54 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [06:59:54 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [06:59:54 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [06:59:54 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [06:59:54 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [06:59:54 INFO]: Running delayed init tasks\nserver-1 | [06:59:54 INFO]: Done (9.216s)! For help, type \"help\"\nserver-1 | [06:59:54 INFO]: *************************************************************************************\nserver-1 | [06:59:54 INFO]: This is the first time you're starting this server.\nserver-1 | [06:59:54 INFO]: It's recommended you read our 'Getting Started' documentation for guidance.\nserver-1 | [06:59:54 INFO]: View this and more helpful information here: https://docs.papermc.io/paper/next-steps\nserver-1 | [06:59:54 INFO]: *************************************************************************************\nserver-1 | [06:59:56 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [06:59:56 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T06:59:57.091984+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sha256sum", "/data/paper-26.2-129.jar"], "exit": 0, "output": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 /data/paper-26.2-129.jar\n"} +{"timestamp": "2026-10-01T06:59:57.245861+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T06:59:57.349717+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation mr47_rbn/stable paper/tests/login.py", "--port", "41741", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T06:59:57.399063+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T06:59:57.552780+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "exec", "-T", "server", "rcon-cli", "--password", "wrong", "list"], "exit": 1, "output": "2026/10/01 06:59:57 Failed to connect to RCON serverrcon: authentication failed\n{\"error\": \"Command '['docker', 'compose', '--project-directory', '/tmp/minecraft validation mr47_rbn/stable paper', '--env-file', '/tmp/minecraft validation mr47_rbn/stable paper/versions.env', '--env-file', '/tmp/minecraft validation mr47_rbn/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation mr47_rbn/stable paper/compose.yaml', '-f', '/tmp/minecraft validation mr47_rbn/stable paper/.state/compose.yaml', 'exec', '-T', 'server', 'rcon-cli', '--password', 'wrong', 'list']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T06:59:57.710967+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "command", "scoreboard objectives add proof dummy"], "exit": 0, "output": "Created new objective [proof]\n"} +{"timestamp": "2026-10-01T06:59:57.864357+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 42"], "exit": 0, "output": "Set [proof] for Proof to 42\n"} +{"timestamp": "2026-10-01T06:59:58.018965+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "command", "save-all flush"], "exit": 0, "output": "Saving the game (this may take a moment!)Saved the game\n"} +{"timestamp": "2026-10-01T06:59:58.273141+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-f0840fda-server-1 Recreate \n Container minecraft-f0840fda-server-1 Recreated \n Container minecraft-f0840fda-server-1 Starting \n Container minecraft-f0840fda-server-1 Started \n Container minecraft-f0840fda-server-1 Waiting \n Container minecraft-f0840fda-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:00:14.997386+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:00:15.154185+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "backup"], "exit": 0, "output": " Container minecraft-f0840fda-backup-run-33a59b8ecc31 Creating \n Container minecraft-f0840fda-backup-run-33a59b8ecc31 Created \ntime=\"2026-10-01T07:00:15Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:00:16+0000 ERROR unable to create lock in backend: repository is already locked exclusively by PID 225 on 42d9b784d760 by (UID 0, GID 0)\n2026-10-01T07:00:16+0000 ERROR lock was created at 2026-10-01 07:00:16 (75.35443ms ago)\n2026-10-01T07:00:16+0000 ERROR storage ID d4f83e6a\n2026-10-01T07:00:16+0000 ERROR the `unlock` command can be used to remove stale locks\n2026-10-01T07:00:16+0000 INFO Detected stale lock, confirming...\n2026-10-01T07:00:16+0000 INFO Checking repo integrity\n2026-10-01T07:00:17+0000 INFO waiting initial delay of 0...\n2026-10-01T07:00:17+0000 INFO waiting for rcon readiness...\n2026-10-01T07:00:17+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:00:17+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:00:17+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:00:17+0000 INFO Command executed successfully sync\n2026-10-01T07:00:17+0000 INFO Backing up content in /data as host minecraft\n2026-10-01T07:00:18+0000 INFO using parent snapshot c603474c\n2026-10-01T07:00:18+0000 INFO \n2026-10-01T07:00:18+0000 INFO Files: 0 new, 12 changed, 172 unmodified\n2026-10-01T07:00:18+0000 INFO Dirs: 0 new, 16 changed, 294 unmodified\n2026-10-01T07:00:18+0000 INFO Added to the repository: 30.973 KiB (12.396 KiB stored)\n2026-10-01T07:00:18+0000 INFO \n2026-10-01T07:00:18+0000 INFO processed 184 files, 174.590 MiB in 0:00\n2026-10-01T07:00:18+0000 INFO snapshot fa66a573 saved\n2026-10-01T07:00:18+0000 INFO Command executed successfully rcon-cli save-on\n"} +{"timestamp": "2026-10-01T07:00:19.250626+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "snapshots"], "exit": 0, "output": " Container minecraft-f0840fda-backup-run-f4ce8231fdde Creating \n Container minecraft-f0840fda-backup-run-f4ce8231fdde Created \n[{\"time\":\"2026-10-01T07:00:14.346912684Z\",\"tree\":\"a3d2b8999384170c7fe5d3742cb9c943e0986ba43548c0f272772f23f46bb934\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:00:14.346912684Z\",\"backup_end\":\"2026-10-01T07:00:15.67961719Z\",\"files_new\":184,\"files_changed\":0,\"files_unmodified\":0,\"dirs_new\":310,\"dirs_changed\":0,\"dirs_unmodified\":0,\"data_blobs\":272,\"tree_blobs\":309,\"data_added\":183241633,\"data_added_packed\":167998151,\"total_files_processed\":184,\"total_bytes_processed\":183071190},\"id\":\"c603474cefda5dbad0d7dc0963ed77a67f0cb14ef056ef21054351063e44b270\",\"short_id\":\"c603474c\"},{\"time\":\"2026-10-01T07:00:17.650621517Z\",\"parent\":\"c603474cefda5dbad0d7dc0963ed77a67f0cb14ef056ef21054351063e44b270\",\"tree\":\"fc6b96ede7843254c7ea34a2155e0f986f487efeef23d15cb801949e85eb4ab5\",\"paths\":[\"/data\"],\"hostname\":\"minecraft\",\"excludes\":[\"cache\",\"logs\",\"*.tmp\"],\"tags\":[\"mc_backups\",\"server\"],\"program_version\":\"restic 0.19.1\",\"summary\":{\"backup_start\":\"2026-10-01T07:00:17.650621517Z\",\"backup_end\":\"2026-10-01T07:00:18.383795498Z\",\"files_new\":0,\"files_changed\":12,\"files_unmodified\":172,\"dirs_new\":0,\"dirs_changed\":16,\"dirs_unmodified\":294,\"data_blobs\":6,\"tree_blobs\":17,\"data_added\":31716,\"data_added_packed\":12693,\"total_files_processed\":184,\"total_bytes_processed\":183071193},\"id\":\"fa66a573d9815154e6758c628c45c28c996d9f71c376933f1a526d55293dc10c\",\"short_id\":\"fa66a573\"}]\n"} +{"timestamp": "2026-10-01T07:00:20.409278+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "logs", "--no-color", "server", "backup"], "exit": 0, "output": "backup-1 | time=\"2026-10-01T06:59:56Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T06:59:56+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T06:59:58+0000 INFO created restic repository 331f499259 at /backups/repository\nbackup-1 | 2026-10-01T06:59:58+0000 INFO \nbackup-1 | 2026-10-01T06:59:58+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T06:59:58+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T06:59:58+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T06:59:58+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T06:59:58+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T06:59:59+0000 ERROR Unable to execute rcon-cli save-on - try 0/3. Retrying in 5s\nbackup-1 | 2026-10-01T06:59:59+0000 ERROR Failure reason: 2026/10/01 06:59:59 Failed to connect to RCON serverread tcp 172.20.0.5:39910->172.20.0.4:25575: read: connection reset by peer\t\nbackup-1 | 2026-10-01T07:00:04+0000 ERROR Unable to execute rcon-cli save-on - try 1/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:00:04+0000 ERROR Failure reason: 2026/10/01 07:00:04 Failed to connect to RCON serverdial tcp 172.20.0.4:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:00:09+0000 ERROR Unable to execute rcon-cli save-on - try 2/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:00:09+0000 ERROR Failure reason: 2026/10/01 07:00:09 Failed to connect to RCON serverdial tcp 172.20.0.4:25575: connect: connection refused\t\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 06:59 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:00:04.421802054Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:00:04 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:00:04 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:00:04 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:00:04 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:00:07 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:00:07 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:00:08 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 327.7ms\nserver-1 | [07:00:09 INFO]: Loaded 1585 recipes\nserver-1 | [07:00:09 INFO]: Loaded 1688 advancements\nserver-1 | [07:00:09 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:00:09 INFO]: Loading properties\nserver-1 | [07:00:09 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:00:09 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:00:09 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:00:09 INFO]: Using 4 threads for Netty based IO\nbackup-1 | 2026-10-01T07:00:14+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:00:14+0000 INFO Command executed successfully rcon-cli save-off\nserver-1 | [07:00:09 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:00:10 INFO]: Default game type: SURVIVAL\nserver-1 | [07:00:10 INFO]: Generating keypair\nserver-1 | [07:00:10 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:00:10 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:00:10 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:00:10 INFO]: Preparing level \"world\"\nserver-1 | [07:00:10 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:00:10 INFO]: Preparing spawn area: 100%\nserver-1 | [07:00:10 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:00:10 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:00:10 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:00:10 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:00:10 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:00:10 INFO]: Done preparing level \"world\" (0.327s)\nserver-1 | [07:00:10 INFO]: [spark] Starting background profiler...\nserver-1 | [07:00:10 INFO]: Starting remote control listener\nserver-1 | [07:00:10 INFO]: Thread RCON Listener started\nserver-1 | [07:00:10 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:00:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:00:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:00:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:00:10 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:00:10 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:00:10 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:00:10 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nbackup-1 | 2026-10-01T07:00:14+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:00:14+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:00:14+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:00:15+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:00:15+0000 INFO \nbackup-1 | 2026-10-01T07:00:15+0000 INFO Files: 184 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:00:15+0000 INFO Dirs: 310 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:00:15+0000 INFO Added to the repository: 174.753 MiB (160.216 MiB stored)\nserver-1 | [07:00:10 INFO]: Running delayed init tasks\nserver-1 | [07:00:10 INFO]: Done (6.938s)! For help, type \"help\"\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 started\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 shutting down\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 started\nserver-1 | [07:00:14 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 shutting down\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 started\nserver-1 | [07:00:14 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:00:14 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:00:14 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:00:14 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:00:14 INFO]: [Rcon: Saved the game]\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 shutting down\nserver-1 | [07:00:15 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:00:15 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:00:15 INFO]: Thread RCON Client /172.20.0.5 started\nserver-1 | [07:00:15 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:00:15 INFO]: Thread RCON Client /172.20.0.5 shutting down\nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 started\nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 shutting down\nbackup-1 | 2026-10-01T07:00:15+0000 INFO \nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 started\nserver-1 | [07:00:17 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 shutting down\nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 started\nbackup-1 | 2026-10-01T07:00:15+0000 INFO processed 184 files, 174.590 MiB in 0:01\nserver-1 | [07:00:17 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:00:17 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nbackup-1 | 2026-10-01T07:00:15+0000 INFO snapshot c603474c saved\nbackup-1 | 2026-10-01T07:00:15+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:00:16+0000 INFO sleeping 6h...\nserver-1 | [07:00:17 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:00:17 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:00:17 INFO]: [Rcon: Saved the game]\nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 shutting down\nserver-1 | [07:00:18 INFO]: Thread RCON Client /172.20.0.6 started\nserver-1 | [07:00:18 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:00:18 INFO]: Thread RCON Client /172.20.0.6 shutting down\n"} +{"timestamp": "2026-10-01T07:00:20.564473+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "run", "--rm", "--no-deps", "-e", "BACKUP_INTERVAL=0", "-e", "INITIAL_DELAY=0", "-e", "PRE_BACKUP_SCRIPT=exit 73", "backup"], "exit": 1, "output": " Container minecraft-f0840fda-backup-run-17282d4d1224 Creating \n Container minecraft-f0840fda-backup-run-17282d4d1224 Created \ntime=\"2026-10-01T07:00:20Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\n2026-10-01T07:00:21+0000 INFO Repository already initialized\n2026-10-01T07:00:21+0000 INFO Checking for stale locks\n2026-10-01T07:00:22+0000 INFO Checking repo integrity\n2026-10-01T07:00:22+0000 INFO waiting initial delay of 0...\n2026-10-01T07:00:22+0000 INFO waiting for rcon readiness...\n2026-10-01T07:00:22+0000 INFO Command executed successfully rcon-cli save-on\n2026-10-01T07:00:22+0000 INFO Command executed successfully rcon-cli save-off\n2026-10-01T07:00:22+0000 INFO Command executed successfully rcon-cli save-all flush\n2026-10-01T07:00:22+0000 INFO Command executed successfully sync\n2026-10-01T07:00:22+0000 INFO Command executed successfully rcon-cli save-on\n\n{\"error\": \"Command '['docker', 'compose', '--project-directory', '/tmp/minecraft validation mr47_rbn/stable paper', '--env-file', '/tmp/minecraft validation mr47_rbn/stable paper/versions.env', '--env-file', '/tmp/minecraft validation mr47_rbn/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation mr47_rbn/stable paper/compose.yaml', '-f', '/tmp/minecraft validation mr47_rbn/stable paper/.state/compose.yaml', 'run', '--rm', '--no-deps', '-e', 'BACKUP_INTERVAL=0', '-e', 'INITIAL_DELAY=0', '-e', 'PRE_BACKUP_SCRIPT=exit 73', 'backup']' returned non-zero exit status 73.\"}\n"} +{"timestamp": "2026-10-01T07:00:23.036690+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "command", "save-on"], "exit": 0, "output": "Saving is already turned on\n"} +{"timestamp": "2026-10-01T07:00:23.141279+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "command", "scoreboard players set Proof proof 99"], "exit": 0, "output": "Set [proof] for Proof to 99\n"} +{"timestamp": "2026-10-01T07:00:23.295725+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "restore", "/tmp/minecraft validation mr47_rbn/restored snapshot"], "exit": 0, "output": " Container minecraft-f0840fda-backup-run-c038e525e64c Creating \n Container minecraft-f0840fda-backup-run-c038e525e64c Created \nrestoring snapshot fa66a573 of [/data] at 2026-10-01 07:00:17.650621517 +0000 UTC by @minecraft to /restore\nSummary: Restored 494 files/dirs (174.590 MiB) in 0:00\n{\"restored\": \"/tmp/minecraft validation mr47_rbn/restored snapshot/data\", \"snapshot\": \"latest\"}\n"} +{"timestamp": "2026-10-01T07:00:25.159269+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/restored server/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "40931", "--web-port", "33891", "--memory", "2G", "--motd", "Validation proof"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:00:25.251244+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/restored server/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-9a17aa93_default Creating \n Network minecraft-9a17aa93_default Creating \n Network minecraft-9a17aa93_default Created \n Network minecraft-9a17aa93_default Created \n Container minecraft-9a17aa93-server-1 Creating \n Container minecraft-9a17aa93-server-1 Created \n Container minecraft-9a17aa93-server-1 Starting \n Container minecraft-9a17aa93-server-1 Started \n Container minecraft-9a17aa93-server-1 Waiting \n Container minecraft-9a17aa93-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:00:42.568419+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation mr47_rbn/restored server/scripts/status", "--port", "40931"], "exit": 0, "output": "{\"description\": \"Validation proof\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"Paper 26.2\", \"protocol\": 776}}\n"} +{"timestamp": "2026-10-01T07:00:42.605225+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation mr47_rbn/restored server/scripts/minecraft", "command", "scoreboard players get Proof proof"], "exit": 0, "output": "Proof has 42 [proof]\n"} +{"timestamp": "2026-10-01T07:00:42.761218+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation mr47_rbn/restored server/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 9 1001 1002 4096 Oct 1 06:59 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:00:30.990 INFO : Created/updated 1 property in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Downloading mojang_26.2.jar\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:00:32.527307997Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:00:32 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:00:32 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:00:32 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:00:32 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:00:35 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:00:35 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:00:36 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 301.8ms\nserver-1 | [07:00:37 INFO]: Loaded 1585 recipes\nserver-1 | [07:00:37 INFO]: Loaded 1688 advancements\nserver-1 | [07:00:37 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:00:37 INFO]: Loading properties\nserver-1 | [07:00:37 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:00:37 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:00:37 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:00:37 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:00:38 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:00:38 INFO]: Default game type: SURVIVAL\nserver-1 | [07:00:38 INFO]: Generating keypair\nserver-1 | [07:00:38 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:00:38 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:00:38 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:00:38 INFO]: Preparing level \"world\"\nserver-1 | [07:00:38 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:00:38 INFO]: Preparing spawn area: 100%\nserver-1 | [07:00:38 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:00:38 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:00:38 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:00:38 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:00:38 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:00:38 INFO]: Done preparing level \"world\" (0.400s)\nserver-1 | [07:00:38 INFO]: [spark] Starting background profiler...\nserver-1 | [07:00:39 INFO]: Starting remote control listener\nserver-1 | [07:00:39 INFO]: Thread RCON Listener started\nserver-1 | [07:00:39 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:00:39 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:00:39 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:00:39 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:00:39 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:00:39 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:00:39 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:00:39 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:00:39 INFO]: Running delayed init tasks\nserver-1 | [07:00:39 INFO]: Done (6.998s)! For help, type \"help\"\nserver-1 | [07:00:42 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:00:42 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:00:42 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:00:42 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:00:42.915988+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation mr47_rbn/restored server/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-9a17aa93-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:00:43.070994+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/restored server/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-9a17aa93-server-1 Stopping \n Container minecraft-9a17aa93-server-1 Stopped \n Container minecraft-9a17aa93-server-1 Removing \n Container minecraft-9a17aa93-server-1 Removed \n Network minecraft-9a17aa93_default Removing \n Network minecraft-9a17aa93_default Removed \n"} +{"timestamp": "2026-10-01T07:00:44.078189+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"CREATE TABLE proof (value INT); INSERT INTO proof VALUES (42); SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:00:44.285736+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "300", "database"], "exit": 0, "output": " Container minecraft-f0840fda-database-1 Recreate \n Container minecraft-f0840fda-database-1 Recreated \n Container minecraft-f0840fda-database-1 Starting \n Container minecraft-f0840fda-database-1 Started \n Container minecraft-f0840fda-database-1 Waiting \n Container minecraft-f0840fda-database-1 Healthy \n"} +{"timestamp": "2026-10-01T07:00:50.506893+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "sh", "-c", "mariadb -uminecraft -p\"$(cat /run/secrets/database)\" minecraft -e \"SELECT value FROM proof;\""], "exit": 0, "output": "value\n42\n"} +{"timestamp": "2026-10-01T07:00:50.661625+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "exec", "-T", "database", "mariadb", "-uminecraft", "-pwrong", "minecraft", "-e", "SELECT 1"], "exit": 1, "output": "ERROR 1045 (28000): Access denied for user 'minecraft'@'localhost' (using password: YES)\n{\"error\": \"Command '['docker', 'compose', '--project-directory', '/tmp/minecraft validation mr47_rbn/stable paper', '--env-file', '/tmp/minecraft validation mr47_rbn/stable paper/versions.env', '--env-file', '/tmp/minecraft validation mr47_rbn/stable paper/.state/settings.env', '-f', '/tmp/minecraft validation mr47_rbn/stable paper/compose.yaml', '-f', '/tmp/minecraft validation mr47_rbn/stable paper/.state/compose.yaml', 'exec', '-T', 'database', 'mariadb', '-uminecraft', '-pwrong', 'minecraft', '-e', 'SELECT 1']' returned non-zero exit status 1.\"}\n"} +{"timestamp": "2026-10-01T07:00:50.815848+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "python3", "-c", "import urllib.request; print(urllib.request.urlopen(\"http://127.0.0.1:40097\").read().decode())"], "exit": 0, "output": "Minecraft files

Minecraft files

\n\n"} +{"timestamp": "2026-10-01T07:00:50.881058+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 06:59 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:00:04.421802054Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:00:04 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:00:04 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:00:04 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:00:04 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:00:07 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:00:07 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nbackup-1 | time=\"2026-10-01T06:59:56Z\" level=info msg=\"Skipping uid/gid change since current user is not root\"\nbackup-1 | 2026-10-01T06:59:56+0000 INFO Initializing new restic repository...\nbackup-1 | 2026-10-01T06:59:58+0000 INFO created restic repository 331f499259 at /backups/repository\nbackup-1 | 2026-10-01T06:59:58+0000 INFO \nbackup-1 | 2026-10-01T06:59:58+0000 INFO Please note that knowledge of your password is required to access\nbackup-1 | 2026-10-01T06:59:58+0000 INFO the repository. Losing your password means that your data is\nbackup-1 | 2026-10-01T06:59:58+0000 INFO irrecoverably lost.\nbackup-1 | 2026-10-01T06:59:58+0000 INFO waiting initial delay of 0...\nbackup-1 | 2026-10-01T06:59:58+0000 INFO waiting for rcon readiness...\nbackup-1 | 2026-10-01T06:59:59+0000 ERROR Unable to execute rcon-cli save-on - try 0/3. Retrying in 5s\nbackup-1 | 2026-10-01T06:59:59+0000 ERROR Failure reason: 2026/10/01 06:59:59 Failed to connect to RCON serverread tcp 172.20.0.5:39910->172.20.0.4:25575: read: connection reset by peer\t\nbackup-1 | 2026-10-01T07:00:04+0000 ERROR Unable to execute rcon-cli save-on - try 1/3. Retrying in 5s\nserver-1 | [07:00:08 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 327.7ms\nserver-1 | [07:00:09 INFO]: Loaded 1585 recipes\nserver-1 | [07:00:09 INFO]: Loaded 1688 advancements\nserver-1 | [07:00:09 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:00:09 INFO]: Loading properties\nserver-1 | [07:00:09 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:00:09 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:00:09 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:00:09 INFO]: Using 4 threads for Netty based IO\nbackup-1 | 2026-10-01T07:00:04+0000 ERROR Failure reason: 2026/10/01 07:00:04 Failed to connect to RCON serverdial tcp 172.20.0.4:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:00:09+0000 ERROR Unable to execute rcon-cli save-on - try 2/3. Retrying in 5s\nbackup-1 | 2026-10-01T07:00:09+0000 ERROR Failure reason: 2026/10/01 07:00:09 Failed to connect to RCON serverdial tcp 172.20.0.4:25575: connect: connection refused\t\nbackup-1 | 2026-10-01T07:00:14+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:00:14+0000 INFO Command executed successfully rcon-cli save-off\nbackup-1 | 2026-10-01T07:00:14+0000 INFO Command executed successfully rcon-cli save-all flush\nbackup-1 | 2026-10-01T07:00:14+0000 INFO Command executed successfully sync\nbackup-1 | 2026-10-01T07:00:14+0000 INFO Backing up content in /data as host minecraft\nbackup-1 | 2026-10-01T07:00:15+0000 INFO no parent snapshot found, will read all files\nbackup-1 | 2026-10-01T07:00:15+0000 INFO \nbackup-1 | 2026-10-01T07:00:15+0000 INFO Files: 184 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:00:15+0000 INFO Dirs: 310 new, 0 changed, 0 unmodified\nbackup-1 | 2026-10-01T07:00:15+0000 INFO Added to the repository: 174.753 MiB (160.216 MiB stored)\nbackup-1 | 2026-10-01T07:00:15+0000 INFO \nbackup-1 | 2026-10-01T07:00:15+0000 INFO processed 184 files, 174.590 MiB in 0:01\nbackup-1 | 2026-10-01T07:00:15+0000 INFO snapshot c603474c saved\nbackup-1 | 2026-10-01T07:00:15+0000 INFO Command executed successfully rcon-cli save-on\nbackup-1 | 2026-10-01T07:00:16+0000 INFO sleeping 6h...\nserver-1 | [07:00:09 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:00:10 INFO]: Default game type: SURVIVAL\nserver-1 | [07:00:10 INFO]: Generating keypair\nserver-1 | [07:00:10 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:00:10 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:00:10 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:00:10 INFO]: Preparing level \"world\"\nserver-1 | [07:00:10 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:00:10 INFO]: Preparing spawn area: 100%\nserver-1 | [07:00:10 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:00:10 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:00:10 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:00:10 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:00:10 INFO]: Prepared spawn area in 1 ms\nweb-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration\nserver-1 | [07:00:10 INFO]: Done preparing level \"world\" (0.327s)\nserver-1 | [07:00:10 INFO]: [spark] Starting background profiler...\nweb-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf\nweb-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf\nweb-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh\nweb-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh\nweb-1 | /docker-entrypoint.sh: Configuration complete; ready for start up\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: using the \"epoll\" event method\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: nginx/1.30.5\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: built by gcc 15.2.0 (Alpine 15.2.0) \nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: OS: Linux 7.0.0-1012-aws\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1024:524288\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker processes\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 30\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 31\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 32\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 33\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 34\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 35\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 36\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 37\ndatabase-1 | 2026-10-01 07:00:44+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 38\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 39\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 40\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 41\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 42\ndatabase-1 | 2026-10-01 07:00:45+00:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB\nserver-1 | [07:00:10 INFO]: Starting remote control listener\ndatabase-1 | 2026-10-01 07:00:45+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'\ndatabase-1 | 2026-10-01 07:00:45+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.\nserver-1 | [07:00:10 INFO]: Thread RCON Listener started\ndatabase-1 | 2026-10-01 07:00:45+00:00 [Note] [Entrypoint]: MariaDB upgrade not required\nserver-1 | [07:00:10 INFO]: RCON running on 0.0.0.0:25575\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] Starting MariaDB 12.3.3-MariaDB-ubu2404 source revision 83e909fc2a0dbc394b4b683fb3fa2d7dcf26cc5e server_uid CUip76U42xxbWqN43eRT47B1UCU= as process 1\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: Compressed tables use zlib 1.3\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: Number of transaction pools: 1\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: Using ARMv8 crc32 + pmull instructions\ndatabase-1 | 2026-10-01 7:00:45 0 [Warning] mariadbd: io_uring_queue_init() failed with EPERM: sysctl kernel.io_uring_disabled has the value 2, or 1 and the user of the process is not a member of sysctl kernel.io_uring_group. (see man 2 io_uring_setup).\ndatabase-1 | create_uring failed: falling back to libaio\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: Using Linux native AIO\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: innodb_buffer_pool_size_max=8388608m, innodb_buffer_pool_size=128m\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: Completed initialization of buffer pool\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: File system buffers for log disabled (block size=4096 bytes)\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: End of log at LSN=47911\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: Opened 3 undo tablespaces\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: 128 rollback segments in 3 undo tablespaces are active.\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 43\nserver-1 | [07:00:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:00:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:00:10 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 44\nweb-1 | 2026/10/01 06:59:35 [notice] 1#1: start worker process 45\nserver-1 | [07:00:10 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:00:10 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:00:10 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:00:10 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:00:10 INFO]: Running delayed init tasks\nserver-1 | [07:00:10 INFO]: Done (6.938s)! For help, type \"help\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:06:59:45 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 started\nweb-1 | 127.0.0.1 - - [01/Oct/2026:06:59:55 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 shutting down\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: log sequence number 47911; transaction id 22\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] Plugin 'FEEDBACK' is disabled.\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] Plugin 'wsrep-provider' is disabled.\ndatabase-1 | 2026-10-01 7:00:45 0 [Note] InnoDB: Buffer pool(s) load completed at 261001 7:00:45\ndatabase-1 | 2026-10-01 7:00:47 0 [Note] Server socket created on IP: '0.0.0.0', port: '3306'.\ndatabase-1 | 2026-10-01 7:00:47 0 [Note] Server socket created on IP: '::', port: '3306'.\ndatabase-1 | 2026-10-01 7:00:47 0 [Note] mariadbd: Event Scheduler: Loaded 0 events\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 started\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:00:05 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nserver-1 | [07:00:14 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 shutting down\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 started\nserver-1 | [07:00:14 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\ndatabase-1 | 2026-10-01 7:00:47 0 [Note] mariadbd: ready for connections.\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:00:15 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\ndatabase-1 | Version: '12.3.3-MariaDB-ubu2404' socket: '/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution\ndatabase-1 | 2026-10-01 7:00:50 6 [Warning] Access denied for user 'minecraft'@'localhost' (using password: YES)\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:00:25 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:00:35 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 127.0.0.1 - - [01/Oct/2026:07:00:45 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Wget\" \"-\"\nweb-1 | 172.20.0.1 - - [01/Oct/2026:07:00:50 +0000] \"GET / HTTP/1.1\" 200 70 \"-\" \"Python-urllib/3.12\" \"-\"\nserver-1 | [07:00:14 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:00:14 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:00:14 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:00:14 INFO]: [Rcon: Saved the game]\nserver-1 | [07:00:14 INFO]: Thread RCON Client /172.20.0.5 shutting down\nserver-1 | [07:00:15 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:00:15 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:00:15 INFO]: Thread RCON Client /172.20.0.5 started\nserver-1 | [07:00:15 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:00:15 INFO]: Thread RCON Client /172.20.0.5 shutting down\nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 started\nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 shutting down\nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 started\nserver-1 | [07:00:17 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 shutting down\nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 started\nserver-1 | [07:00:17 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:00:17 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:00:17 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:00:17 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:00:17 INFO]: [Rcon: Saved the game]\nserver-1 | [07:00:17 INFO]: Thread RCON Client /172.20.0.6 shutting down\nserver-1 | [07:00:18 INFO]: Thread RCON Client /172.20.0.6 started\nserver-1 | [07:00:18 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:00:18 INFO]: Thread RCON Client /172.20.0.6 shutting down\nserver-1 | [07:00:22 INFO]: Thread RCON Client /172.20.0.6 started\nserver-1 | [07:00:22 INFO]: Thread RCON Client /172.20.0.6 shutting down\nserver-1 | [07:00:22 INFO]: Thread RCON Client /172.20.0.6 started\nserver-1 | [07:00:22 INFO]: [Rcon: Automatic saving is now disabled]\nserver-1 | [07:00:22 INFO]: Thread RCON Client /172.20.0.6 shutting down\nserver-1 | [07:00:22 INFO]: Thread RCON Client /172.20.0.6 started\nserver-1 | [07:00:22 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:00:22 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:00:22 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:00:22 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:00:22 INFO]: [Rcon: Saved the game]\nserver-1 | [07:00:22 INFO]: Thread RCON Client /172.20.0.6 shutting down\nserver-1 | [07:00:22 INFO]: Thread RCON Client /172.20.0.6 started\nserver-1 | [07:00:22 INFO]: [Rcon: Automatic saving is now enabled]\nserver-1 | [07:00:22 INFO]: Thread RCON Client /172.20.0.6 shutting down\nserver-1 | [07:00:23 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:00:23 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:00:23 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:00:23 INFO]: [Rcon: Set [proof] for Proof to 99]\nserver-1 | [07:00:23 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:00:51.035040+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\",\"ContainerName\":\"minecraft-f0840fda-database-1\",\"Repository\":\"mariadb\",\"Tag\":\"\",\"Platform\":\"linux/arm64/v8\",\"Size\":485083992,\"Created\":\"2026-09-16T03:25:46.66077829Z\",\"LastTagTime\":\"2026-10-01T06:30:08.502338164Z\"},{\"ID\":\"sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\",\"ContainerName\":\"minecraft-f0840fda-backup-1\",\"Repository\":\"itzg/mc-backup\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":204693685,\"Created\":\"2026-09-27T13:29:54.189552669Z\",\"LastTagTime\":\"2026-10-01T06:17:29.262703881Z\"},{\"ID\":\"sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\",\"ContainerName\":\"minecraft-f0840fda-web-1\",\"Repository\":\"nginx\",\"Tag\":\"\",\"Platform\":\"linux/arm64/v8\",\"Size\":92021013,\"Created\":\"2026-09-22T22:10:07.617314791Z\",\"LastTagTime\":\"2026-10-01T06:30:07.695644704Z\"},{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-f0840fda-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:00:51.190325+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-f0840fda-web-1 Stopping \n Container minecraft-f0840fda-backup-1 Stopping \n Container minecraft-f0840fda-database-1 Stopping \n Container minecraft-f0840fda-backup-1 Stopped \n Container minecraft-f0840fda-backup-1 Removing \n Container minecraft-f0840fda-backup-1 Removed \n Container minecraft-f0840fda-server-1 Stopping \n Container minecraft-f0840fda-web-1 Stopped \n Container minecraft-f0840fda-web-1 Removing \n Container minecraft-f0840fda-web-1 Removed \n Container minecraft-f0840fda-database-1 Stopped \n Container minecraft-f0840fda-database-1 Removing \n Container minecraft-f0840fda-database-1 Removed \n Container minecraft-f0840fda-server-1 Stopped \n Container minecraft-f0840fda-server-1 Removing \n Container minecraft-f0840fda-server-1 Removed \n Network minecraft-f0840fda_default Removing \n Network minecraft-f0840fda_default Removed \n"} +{"timestamp": "2026-10-01T07:00:52.401021+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/latest vanilla/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "57803", "--web-port", "49723", "--memory", "2G", "--motd", "Validation proof", "--distribution", "vanilla"], "exit": 0, "output": "{\"distribution\": \"vanilla\", \"network\": false, \"profiles\": [], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:00:52.443805+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/latest vanilla/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-2e5c3d9d_default Creating \n Network minecraft-2e5c3d9d_default Creating \n Network minecraft-2e5c3d9d_default Created \n Network minecraft-2e5c3d9d_default Created \n Container minecraft-2e5c3d9d-server-1 Creating \n Container minecraft-2e5c3d9d-server-1 Created \n Container minecraft-2e5c3d9d-server-1 Starting \n Container minecraft-2e5c3d9d-server-1 Started \n Container minecraft-2e5c3d9d-server-1 Waiting \n Container minecraft-2e5c3d9d-server-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:01:08.622891+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation mr47_rbn/latest vanilla/scripts/status", "--port", "57803"], "exit": 0, "output": "{\"description\": \"Validation proof\", \"enforcesSecureChat\": true, \"players\": {\"max\": 20, \"online\": 0}, \"version\": {\"name\": \"26.3\", \"protocol\": 777}}\n"} +{"timestamp": "2026-10-01T07:01:08.656084+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "90", "/tmp/minecraft validation mr47_rbn/latest vanilla/scripts/minecraft", "command", "list"], "exit": 0, "output": "There are 0 of a max of 20 players online: \n"} +{"timestamp": "2026-10-01T07:01:08.810663+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "find /data -maxdepth 1 -name \"*.jar\" -exec sha1sum {} \\;"], "exit": 0, "output": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c /data/minecraft_server.26.3.jar\n"} +{"timestamp": "2026-10-01T07:01:08.965239+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "sh", "-c", "grep -E \"^(online-mode|enable-query)=\" /data/server.properties"], "exit": 0, "output": "enable-query=false\nonline-mode=true\n"} +{"timestamp": "2026-10-01T07:01:09.069960+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/latest vanilla/scripts/minecraft", "compose", "exec", "-T", "server", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:01:09.224951+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation mr47_rbn/latest vanilla/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "server-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 2 1001 1002 4096 Oct 1 07:00 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given VANILLA\nserver-1 | [init] Successfully setup vanilla Minecraft version 26.3\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | [init] Creating server properties in /data/server.properties\nserver-1 | [init] Disabling whitelist functionality\nserver-1 | \u001b[39m[mc-image-helper] 07:00:56.651 INFO : Created/updated 10 properties in /data/server.properties\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Unpacking 26.3/server-26.3.jar (versions:26.3) to versions/26.3/server-26.3.jar\nserver-1 | Unpacking at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar (libraries:at.yawk.lz4:lz4-java:1.10.1) to libraries/at/yawk/lz4/lz4-java/1.10.1/lz4-java-1.10.1.jar\nserver-1 | Unpacking com/azure/azure-json/1.4.0/azure-json-1.4.0.jar (libraries:com.azure:azure-json:1.4.0) to libraries/com/azure/azure-json/1.4.0/azure-json-1.4.0.jar\nserver-1 | Unpacking com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar (libraries:com.github.oshi:oshi-core:6.9.0) to libraries/com/github/oshi/oshi-core/6.9.0/oshi-core-6.9.0.jar\nserver-1 | Unpacking com/google/code/gson/gson/2.14.0/gson-2.14.0.jar (libraries:com.google.code.gson:gson:2.14.0) to libraries/com/google/code/gson/gson/2.14.0/gson-2.14.0.jar\nserver-1 | Unpacking com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar (libraries:com.google.guava:failureaccess:1.0.3) to libraries/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\nserver-1 | Unpacking com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar (libraries:com.google.guava:guava:33.6.0-jre) to libraries/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar\nserver-1 | Unpacking com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar (libraries:com.microsoft.azure:msal4j:1.24.1) to libraries/com/microsoft/azure/msal4j/1.24.1/msal4j-1.24.1.jar\nserver-1 | Unpacking com/mojang/authlib/10.0.77/authlib-10.0.77.jar (libraries:com.mojang:authlib:10.0.77) to libraries/com/mojang/authlib/10.0.77/authlib-10.0.77.jar\nserver-1 | Unpacking com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar (libraries:com.mojang:brigadier:1.3.11) to libraries/com/mojang/brigadier/1.3.11/brigadier-1.3.11.jar\nserver-1 | Unpacking com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar (libraries:com.mojang:datafixerupper:10.0.21) to libraries/com/mojang/datafixerupper/10.0.21/datafixerupper-10.0.21.jar\nserver-1 | Unpacking com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar (libraries:com.mojang:jtracy:1.14.38) to libraries/com/mojang/jtracy/1.14.38/jtracy-1.14.38.jar\nserver-1 | Unpacking com/mojang/logging/1.7.12/logging-1.7.12.jar (libraries:com.mojang:logging:1.7.12) to libraries/com/mojang/logging/1.7.12/logging-1.7.12.jar\nserver-1 | Unpacking commons-io/commons-io/2.20.0/commons-io-2.20.0.jar (libraries:commons-io:commons-io:2.20.0) to libraries/commons-io/commons-io/2.20.0/commons-io-2.20.0.jar\nserver-1 | Unpacking io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar (libraries:io.netty:netty-buffer:4.2.16.Final) to libraries/io/netty/netty-buffer/4.2.16.Final/netty-buffer-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar (libraries:io.netty:netty-codec-base:4.2.16.Final) to libraries/io/netty/netty-codec-base/4.2.16.Final/netty-codec-base-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar (libraries:io.netty:netty-codec-compression:4.2.16.Final) to libraries/io/netty/netty-codec-compression/4.2.16.Final/netty-codec-compression-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar (libraries:io.netty:netty-codec-http:4.2.16.Final) to libraries/io/netty/netty-codec-http/4.2.16.Final/netty-codec-http-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar (libraries:io.netty:netty-common:4.2.16.Final) to libraries/io/netty/netty-common/4.2.16.Final/netty-common-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar (libraries:io.netty:netty-handler:4.2.16.Final) to libraries/io/netty/netty-handler/4.2.16.Final/netty-handler-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar (libraries:io.netty:netty-resolver:4.2.16.Final) to libraries/io/netty/netty-resolver/4.2.16.Final/netty-resolver-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar (libraries:io.netty:netty-transport:4.2.16.Final) to libraries/io/netty/netty-transport/4.2.16.Final/netty-transport-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-epoll:4.2.16.Final) to libraries/io/netty/netty-transport-classes-epoll/4.2.16.Final/netty-transport-classes-epoll-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar (libraries:io.netty:netty-transport-classes-kqueue:4.2.16.Final) to libraries/io/netty/netty-transport-classes-kqueue/4.2.16.Final/netty-transport-classes-kqueue-4.2.16.Final.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-x86_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar (libraries:io.netty:netty-transport-native-epoll:4.2.16.Final:linux-aarch_64) to libraries/io/netty/netty-transport-native-epoll/4.2.16.Final/netty-transport-native-epoll-4.2.16.Final-linux-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-x86_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-x86_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar (libraries:io.netty:netty-transport-native-kqueue:4.2.16.Final:osx-aarch_64) to libraries/io/netty/netty-transport-native-kqueue/4.2.16.Final/netty-transport-native-kqueue-4.2.16.Final-osx-aarch_64.jar\nserver-1 | Unpacking io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar (libraries:io.netty:netty-transport-native-unix-common:4.2.16.Final) to libraries/io/netty/netty-transport-native-unix-common/4.2.16.Final/netty-transport-native-unix-common-4.2.16.Final.jar\nserver-1 | Unpacking it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar (libraries:it.unimi.dsi:fastutil:8.5.18) to libraries/it/unimi/dsi/fastutil/8.5.18/fastutil-8.5.18.jar\nserver-1 | Unpacking net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar (libraries:net.java.dev.jna:jna:5.17.0) to libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar\nserver-1 | Unpacking net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar (libraries:net.java.dev.jna:jna-platform:5.17.0) to libraries/net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar\nserver-1 | Unpacking net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar (libraries:net.sf.jopt-simple:jopt-simple:5.0.4) to libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar\nserver-1 | Unpacking org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar (libraries:org.apache.commons:commons-lang3:3.20.0) to libraries/org/apache/commons/commons-lang3/3.20.0/commons-lang3-3.20.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-api:2.26.0) to libraries/org/apache/logging/log4j/log4j-api/2.26.0/log4j-api-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-core:2.26.0) to libraries/org/apache/logging/log4j/log4j-core/2.26.0/log4j-core-2.26.0.jar\nserver-1 | Unpacking org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar (libraries:org.apache.logging.log4j:log4j-slf4j2-impl:2.26.0) to libraries/org/apache/logging/log4j/log4j-slf4j2-impl/2.26.0/log4j-slf4j2-impl-2.26.0.jar\nserver-1 | Unpacking org/joml/joml/1.10.9/joml-1.10.9.jar (libraries:org.joml:joml:1.10.9) to libraries/org/joml/joml/1.10.9/joml-1.10.9.jar\nserver-1 | Unpacking org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar (libraries:org.jspecify:jspecify:1.0.0) to libraries/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar\nserver-1 | Unpacking org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar (libraries:org.slf4j:slf4j-api:2.0.17) to libraries/org/slf4j/slf4j-api/2.0.17/slf4j-api-2.0.17.jar\nserver-1 | Starting net.minecraft.server.Main\nserver-1 | WARNING: A restricted method in java.lang.System has been called\nserver-1 | WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/data/libraries/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar)\nserver-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nserver-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nserver-1 | \nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.9/joml-1.10.9.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:01:01] [ServerMain/INFO]: Environment: Environment[discoveryUrl=https://discovery.minecraftservices.com/minecraft/client, name=PROD]\nserver-1 | [07:01:01] [Worker-Main-5/INFO]: No existing world data, creating new world\nserver-1 | [07:01:01] [Worker-Main-3/INFO]: Loaded 1866 advancements\nserver-1 | [07:01:02] [Server thread/INFO]: Starting minecraft server version 26.3\nserver-1 | [07:01:02] [Server thread/INFO]: Loading properties\nserver-1 | [07:01:02] [Server thread/INFO]: Default game type: SURVIVAL\nserver-1 | [07:01:02] [Server thread/INFO]: Generating keypair\nserver-1 | [07:01:02] [Server thread/INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:01:02] [Server thread/INFO]: Preparing level \"world\"\nserver-1 | [07:01:02] [Server thread/INFO]: Selecting global world spawn...\nserver-1 | [07:01:03] [Server thread/INFO]: Loading 0 persistent chunks...\nserver-1 | [07:01:03] [Server thread/INFO]: Preparing spawn area: 100%\nserver-1 | [07:01:03] [Server thread/INFO]: Time elapsed: 1364 ms\nserver-1 | [07:01:03] [Server thread/INFO]: Done (1.544s)! For help, type \"help\"\nserver-1 | [07:01:03] [Server thread/INFO]: Starting remote control listener\nserver-1 | [07:01:03] [Server thread/INFO]: Thread RCON Listener started\nserver-1 | [07:01:03] [Server thread/INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:01:03] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:01:03] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:01:03] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:01:08] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:01:08] [RCON Client /0:0:0:0:0:0:0:1 #2/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:01:08] [RCON Listener #1/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:01:08] [RCON Client /0:0:0:0:0:0:0:1 #3/INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\n"} +{"timestamp": "2026-10-01T07:01:09.329461+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation mr47_rbn/latest vanilla/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-2e5c3d9d-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:01:09.483840+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/latest vanilla/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-2e5c3d9d-server-1 Stopping \n Container minecraft-2e5c3d9d-server-1 Stopped \n Container minecraft-2e5c3d9d-server-1 Removing \n Container minecraft-2e5c3d9d-server-1 Removed \n Network minecraft-2e5c3d9d_default Removing \n Network minecraft-2e5c3d9d_default Removed \n"} +{"timestamp": "2026-10-01T07:01:10.543404+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "setup", "--accept-eula", "--bind", "127.0.0.1", "--port", "47913", "--web-port", "57903", "--memory", "2G", "--motd", "Validation proof", "--network"], "exit": 0, "output": "{\"distribution\": \"paper\", \"network\": true, \"profiles\": [\"proxy\"], \"setup\": \"created\"}\n"} +{"timestamp": "2026-10-01T07:01:10.585876+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "start"], "exit": 0, "output": " Network minecraft-4a3d50af_default Creating \n Network minecraft-4a3d50af_default Creating \n Network minecraft-4a3d50af_default Created \n Network minecraft-4a3d50af_default Created \n Container minecraft-4a3d50af-server-1 Creating \n Container minecraft-4a3d50af-server-1 Created \n Container minecraft-4a3d50af-proxy-1 Creating \n Container minecraft-4a3d50af-proxy-1 Created \n Container minecraft-4a3d50af-server-1 Starting \n Container minecraft-4a3d50af-server-1 Started \n Container minecraft-4a3d50af-server-1 Waiting \n Container minecraft-4a3d50af-server-1 Healthy \n Container minecraft-4a3d50af-proxy-1 Starting \n Container minecraft-4a3d50af-proxy-1 Started \n Container minecraft-4a3d50af-proxy-1 Waiting \n Container minecraft-4a3d50af-server-1 Waiting \n Container minecraft-4a3d50af-server-1 Healthy \n Container minecraft-4a3d50af-proxy-1 Healthy \nThere are 0 of a max of 20 players online: \n{\"architecture\": \"arm64\", \"compose\": \"5.5.1\", \"configuration\": \"valid\", \"docker\": \"29.8.0\", \"pins\": {\"BACKUP_IMAGE\": \"itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16\", \"DATABASE_IMAGE\": \"mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1\", \"PAPER_BUILD\": \"129\", \"PAPER_SHA256\": \"b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083\", \"PAPER_VERSION\": \"26.2\", \"PROXY_IMAGE\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\", \"SERVER_IMAGE\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\", \"VANILLA_SERVER_SHA1\": \"33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c\", \"VANILLA_VERSION\": \"26.3\", \"VELOCITY_BUILD_ID\": \"36\", \"VELOCITY_SHA256\": \"62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c\", \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\", \"WEB_IMAGE\": \"nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94\"}}\n{\"ready\": true}\n"} +{"timestamp": "2026-10-01T07:01:37.513821+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/status", "--port", "47913"], "exit": 0, "output": "{\"description\": \"Minecraft Velocity network\", \"modinfo\": {\"modList\": [], \"type\": \"FML\"}, \"players\": {\"max\": 20, \"online\": 0, \"sample\": []}, \"version\": {\"name\": \"Velocity 1.7.2-26.3\", \"protocol\": 775}}\n"} +{"timestamp": "2026-10-01T07:01:37.547585+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "compose", "config", "--format", "json"], "exit": 0, "output": "{\n \"name\": \"minecraft-4a3d50af\",\n \"networks\": {\n \"default\": {\n \"name\": \"minecraft-4a3d50af_default\",\n \"ipam\": {}\n }\n },\n \"secrets\": {\n \"rcon\": {\n \"name\": \"minecraft-4a3d50af_rcon\",\n \"file\": \"/tmp/minecraft validation mr47_rbn/velocity network/.state/secrets/rcon\"\n }\n },\n \"services\": {\n \"proxy\": {\n \"profiles\": [\n \"proxy\"\n ],\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"depends_on\": {\n \"server\": {\n \"condition\": \"service_healthy\",\n \"required\": true\n }\n },\n \"entrypoint\": null,\n \"environment\": {\n \"ENABLE_RCON\": \"false\",\n \"MEMORY\": \"512M\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"TYPE\": \"VELOCITY\",\n \"VELOCITY_BUILD_ID\": \"36\",\n \"VELOCITY_VERSION\": \"4.2.1-SNAPSHOT\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-monitor\",\n \"status\",\n \"--host\",\n \"localhost\",\n \"--port\",\n \"25565\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 12\n },\n \"image\": \"itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\n \"mem_limit\": \"1073741824\",\n \"networks\": {\n \"default\": null\n },\n \"ports\": [\n {\n \"mode\": \"ingress\",\n \"host_ip\": \"127.0.0.1\",\n \"target\": 25565,\n \"published\": \"47913\",\n \"protocol\": \"tcp\"\n }\n ],\n \"restart\": \"unless-stopped\",\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"30s\",\n \"user\": \"1001:1002\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation mr47_rbn/velocity network/data/proxy\",\n \"target\": \"/server\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation mr47_rbn/velocity network/.state/velocity.toml\",\n \"target\": \"/server/velocity.toml\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation mr47_rbn/velocity network/.state/secrets/forwarding\",\n \"target\": \"/server/forwarding.secret\",\n \"read_only\": true,\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation mr47_rbn/velocity network/plugins/proxy\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {}\n }\n ]\n },\n \"server\": {\n \"cap_drop\": [\n \"ALL\"\n ],\n \"command\": null,\n \"entrypoint\": null,\n \"environment\": {\n \"COPY_CONFIG_DEST\": \"/data\",\n \"ENABLE_QUERY\": \"false\",\n \"ENABLE_RCON\": \"true\",\n \"EULA\": \"TRUE\",\n \"MEMORY\": \"2G\",\n \"MOTD\": \"Validation proof\",\n \"ONLINE_MODE\": \"false\",\n \"PAPER_BUILD\": \"129\",\n \"PAUSE_WHEN_EMPTY_SECONDS\": \"-1\",\n \"RCON_PASSWORD_FILE\": \"/run/secrets/rcon\",\n \"SIMULATION_DISTANCE\": \"4\",\n \"SKIP_DOWNLOAD_DEFAULTS\": \"true\",\n \"SYNC_SKIP_NEWER_IN_DESTINATION\": \"false\",\n \"TYPE\": \"PAPER\",\n \"VERSION\": \"26.2\",\n \"VIEW_DISTANCE\": \"6\"\n },\n \"healthcheck\": {\n \"test\": [\n \"CMD\",\n \"mc-health\"\n ],\n \"timeout\": \"10s\",\n \"interval\": \"10s\",\n \"retries\": 30,\n \"start_period\": \"1m0s\"\n },\n \"image\": \"itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\n \"mem_limit\": \"3221225472\",\n \"networks\": {\n \"default\": null\n },\n \"restart\": \"unless-stopped\",\n \"secrets\": [\n {\n \"source\": \"rcon\",\n \"target\": \"/run/secrets/rcon\"\n }\n ],\n \"security_opt\": [\n \"no-new-privileges:true\"\n ],\n \"stop_grace_period\": \"2m0s\",\n \"user\": \"1001:1002\",\n \"volumes\": [\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation mr47_rbn/velocity network/data/server\",\n \"target\": \"/data\",\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation mr47_rbn/velocity network/configs/server\",\n \"target\": \"/config\",\n \"read_only\": true,\n \"bind\": {}\n },\n {\n \"type\": \"bind\",\n \"source\": \"/tmp/minecraft validation mr47_rbn/velocity network/plugins/server\",\n \"target\": \"/plugins\",\n \"read_only\": true,\n \"bind\": {}\n }\n ]\n }\n }\n}"} +{"timestamp": "2026-10-01T07:01:37.652572+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "java", "-version"], "exit": 0, "output": "openjdk version \"25.0.4\" 2026-07-21 LTS\nOpenJDK Runtime Environment Temurin-25.0.4+7 (build 25.0.4+7-LTS)\nOpenJDK 64-Bit Server VM Temurin-25.0.4+7 (build 25.0.4+7-LTS, mixed mode, sharing)\n"} +{"timestamp": "2026-10-01T07:01:37.807689+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "compose", "exec", "-T", "proxy", "sha256sum", "/server/velocity-4.2.1-SNAPSHOT-36.jar"], "exit": 0, "output": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c /server/velocity-4.2.1-SNAPSHOT-36.jar\n"} +{"timestamp": "2026-10-01T07:01:38.163011+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation mr47_rbn/velocity network/tests/login.py", "--port", "47913", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:01:38.213726+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-4a3d50af-server-1 Recreate \n Container minecraft-4a3d50af-server-1 Recreated \n Container minecraft-4a3d50af-proxy-1 Recreate \n Container minecraft-4a3d50af-proxy-1 Recreated \n Container minecraft-4a3d50af-server-1 Starting \n Container minecraft-4a3d50af-server-1 Started \n Container minecraft-4a3d50af-server-1 Waiting \n Container minecraft-4a3d50af-server-1 Healthy \n Container minecraft-4a3d50af-proxy-1 Starting \n Container minecraft-4a3d50af-proxy-1 Started \n Container minecraft-4a3d50af-server-1 Waiting \n Container minecraft-4a3d50af-proxy-1 Waiting \n Container minecraft-4a3d50af-server-1 Healthy \n Container minecraft-4a3d50af-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:02:01.316576+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation mr47_rbn/velocity network/tests/login.py", "--port", "47913", "--verify-cli", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft"], "exit": 0, "output": "{\"play\": true, \"backend_list\": \"There are 1 of a max of 20 players online: ForwardProof\\n\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 1], [\"configuration\", 12], [\"configuration\", 14], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 7], [\"configuration\", 13], [\"configuration\", 4], [\"configuration\", 3]]}\n"} +{"timestamp": "2026-10-01T07:02:03.923140+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "compose", "logs", "--no-color", "server", "proxy"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:01:57.827712037Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:01:58 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:01:58 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:01:58 WARN]: The proxy is running in offline mode! This is a security risk and you will NOT receive any support!\nproxy-1 | [07:01:58 INFO]: Loading localizations...\nproxy-1 | [07:01:58 INFO]: Loading plugins...\nproxy-1 | [07:01:58 INFO]: Loaded 1 plugins\nproxy-1 | [07:01:58 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:01:58 INFO]: Done (0.49s)!\nproxy-1 | [07:02:01 INFO]: [connected player] ForwardProof (/172.19.0.1:37654) has connected\nproxy-1 | [07:02:01 INFO]: [server connection] ForwardProof -> main has connected\nproxy-1 | [07:02:03 INFO]: [connected player] ForwardProof (/172.19.0.1:37654) has disconnected\nproxy-1 | [07:02:03 INFO]: [server connection] ForwardProof -> main has disconnected\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:01 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:01:43.545 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:01:43.549 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:01:45.108078068Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:01:45 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:01:45 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:01:45 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:01:45 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:01:48 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:01:48 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:01:48 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 264.4ms\nserver-1 | [07:01:49 INFO]: Loaded 1585 recipes\nserver-1 | [07:01:49 INFO]: Loaded 1688 advancements\nserver-1 | [07:01:49 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:01:49 INFO]: Loading properties\nserver-1 | [07:01:49 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:01:49 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:01:49 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:01:49 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:01:49 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:01:49 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:01:50 INFO]: Default game type: SURVIVAL\nserver-1 | [07:01:50 INFO]: Generating keypair\nserver-1 | [07:01:50 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:01:50 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:01:50 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:01:50 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:01:50 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:01:50 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:01:50 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:01:50 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:01:50 INFO]: Preparing level \"world\"\nserver-1 | [07:01:50 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:01:50 INFO]: Preparing spawn area: 100%\nserver-1 | [07:01:50 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:01:50 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:01:50 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:01:50 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:01:50 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:01:50 INFO]: Done preparing level \"world\" (0.296s)\nserver-1 | [07:01:50 INFO]: [spark] Starting background profiler...\nserver-1 | [07:01:50 INFO]: Starting remote control listener\nserver-1 | [07:01:50 INFO]: Thread RCON Listener started\nserver-1 | [07:01:50 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:01:50 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:01:50 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:01:50 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:01:50 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:01:50 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:01:50 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:01:50 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:01:50 INFO]: Running delayed init tasks\nserver-1 | [07:01:50 INFO]: Done (6.177s)! For help, type \"help\"\nserver-1 | [07:02:01 INFO]: UUID of player ForwardProof is d2c1afbf-5081-3449-8752-8558175e1427\nserver-1 | [07:02:03 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:02:03 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:02:03 INFO]: ForwardProof joined the game\nserver-1 | [07:02:03 INFO]: ForwardProof[/172.19.0.1:54722] logged in with entity id 13 at ([minecraft:overworld]-3.5, 96.0, 10.5)\nserver-1 | [07:02:03 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 started\nserver-1 | [07:02:03 INFO]: Thread RCON Client /0:0:0:0:0:0:0:1 shutting down\nserver-1 | [07:02:03 INFO]: ForwardProof lost connection: Disconnected\nserver-1 | [07:02:03 INFO]: ForwardProof left the game\n"} +{"timestamp": "2026-10-01T07:02:04.029353+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "compose", "ps", "-q", "server"], "exit": 0, "output": "dfb0d01b55f46ef9ac33352ac2eb39236ea71e9f8ab4a13c9cfac5ffb13ef9d8\n"} +{"timestamp": "2026-10-01T07:02:04.134476+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "inspect", "--format", "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}", "dfb0d01b55f46ef9ac33352ac2eb39236ea71e9f8ab4a13c9cfac5ffb13ef9d8"], "exit": 0, "output": "172.19.0.2\n"} +{"timestamp": "2026-10-01T07:02:04.151007+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation mr47_rbn/velocity network/tests/login.py", "--host", "172.19.0.2", "--port", "25565", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"4\\\"This server requires you to connect with Velocity.\\\"\", \"packets\": [[\"login\", 4], [\"login\", 0]]}\n"} +{"timestamp": "2026-10-01T07:02:04.203735+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--no-deps", "--wait", "--wait-timeout", "600", "server"], "exit": 0, "output": " Container minecraft-4a3d50af-server-1 Recreate \n Container minecraft-4a3d50af-server-1 Recreated \n Container minecraft-4a3d50af-server-1 Starting \n Container minecraft-4a3d50af-server-1 Started \n Container minecraft-4a3d50af-server-1 Waiting \n Container minecraft-4a3d50af-server-1 Healthy \n"} +{"timestamp": "2026-10-01T07:02:21.093720+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation mr47_rbn/velocity network/tests/login.py", "--port", "47913", "--expect", "deny"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"\\n\\b\\u0000\\u0005color\\u0000\\u0003red\\b\\u0000\\u0004text\\u0000:Unable to connect to main: Unable to verify player details\\u0000\", \"packets\": [[\"login\", 3], [\"login\", 2], [\"configuration\", 2]]}\n"} +{"timestamp": "2026-10-01T07:02:21.183147+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "compose", "up", "-d", "--force-recreate", "--wait", "--wait-timeout", "600"], "exit": 0, "output": " Container minecraft-4a3d50af-server-1 Recreate \n Container minecraft-4a3d50af-server-1 Recreated \n Container minecraft-4a3d50af-proxy-1 Recreate \n Container minecraft-4a3d50af-proxy-1 Recreated \n Container minecraft-4a3d50af-server-1 Starting \n Container minecraft-4a3d50af-server-1 Started \n Container minecraft-4a3d50af-server-1 Waiting \n Container minecraft-4a3d50af-server-1 Healthy \n Container minecraft-4a3d50af-proxy-1 Starting \n Container minecraft-4a3d50af-proxy-1 Started \n Container minecraft-4a3d50af-proxy-1 Waiting \n Container minecraft-4a3d50af-server-1 Waiting \n Container minecraft-4a3d50af-server-1 Healthy \n Container minecraft-4a3d50af-proxy-1 Healthy \n"} +{"timestamp": "2026-10-01T07:02:44.087981+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "40", "python3", "/tmp/minecraft validation mr47_rbn/velocity network/tests/login.py", "--port", "47913", "--expect", "auth"], "exit": 0, "output": "{\"denied\": true, \"reason\": \"authentication_required\", \"packets\": [[\"login\", 1]]}\n"} +{"timestamp": "2026-10-01T07:02:44.136622+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "60", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "compose", "logs", "--no-color"], "exit": 0, "output": "proxy-1 | [init] Resolving type given VELOCITY\nproxy-1 | WARNING: A restricted method in java.lang.System has been called\nproxy-1 | WARNING: java.lang.System::loadLibrary has been called by io.netty.util.internal.NativeLibraryUtil in an unnamed module (file:/usr/share/mc-image-helper-1.69.1/lib/netty-common-4.2.18.Final.jar)\nproxy-1 | WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module\nproxy-1 | WARNING: Restricted methods will be blocked in a future release unless native access is enabled\nproxy-1 | \nproxy-1 | [init] Copying BungeeCord plugins over...\nproxy-1 | [init] /server/forwarding.secret already exists\nproxy-1 | [init] Setting initial memory to 512M and max to 512M\nproxy-1 | 2026-10-01T07:02:40.607392162Z main WARN Advanced terminal features are not available in this environment\nproxy-1 | [07:02:40 INFO]: Booting up Velocity 4.2.1-SNAPSHOT (git-7fc49913-b36)...\nproxy-1 | [07:02:40 INFO]: Connections will use epoll channels, libdeflate (Linux aarch64) compression, OpenSSL 3.x.x (Linux aarch64) ciphers\nproxy-1 | [07:02:41 INFO]: Loading localizations...\nproxy-1 | [07:02:41 INFO]: Loading plugins...\nproxy-1 | [07:02:41 INFO]: Loaded 1 plugins\nproxy-1 | [07:02:41 INFO]: Listening on /[0:0:0:0:0:0:0:0]:25565\nproxy-1 | [07:02:41 INFO]: Done (0.5s)!\nproxy-1 | [07:02:44 INFO]: [initial connection] /172.19.0.1:54428 has disconnected\nserver-1 | [init] Running as uid=1001 gid=1002 with /data as 'drwx------ 11 1001 1002 4096 Oct 1 07:01 /data'\nserver-1 | [init] Image info: buildtime=2026-09-25T14:21:11.555Z,version=2026.9.2,revision=f3fe8284e5ab3aa464fc0c2be9eb5c993e5d85d0\nserver-1 | [init] Resolving type given PAPER\nserver-1 | [init] Copying any plugins from /plugins to /data/plugins\nserver-1 | [init] Copying any configs from /config to /data\nserver-1 | \u001b[39m[mc-image-helper] 07:02:26.352 INFO : Interpolating /config/spigot.yml -> /data/spigot.yml\nserver-1 | \u001b[0;39m\u001b[39m[mc-image-helper] 07:02:26.356 INFO : Interpolating /config/config/paper-global.yml -> /data/config/paper-global.yml\nserver-1 | \u001b[0;39m[init] Setting initial memory to 2G and max to 2G\nserver-1 | [init] Starting the Minecraft server...\nserver-1 | Starting org.bukkit.craftbukkit.Main\nserver-1 | 2026-10-01T07:02:27.905290300Z ServerMain WARN Advanced terminal features are not available in this environment\nserver-1 | [07:02:28 INFO]: [bootstrap] Running Java 25 (OpenJDK 64-Bit Server VM 25.0.4+7-LTS; Eclipse Adoptium Temurin-25.0.4+7) on Linux 7.0.0-1012-aws (aarch64)\nserver-1 | [07:02:28 INFO]: [bootstrap] Loading Paper 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) for Minecraft 26.2\nserver-1 | [07:02:28 INFO]: [PluginInitializerManager] Initializing plugins...\nserver-1 | [07:02:28 INFO]: [PluginInitializerManager] Initialized 0 plugins\nserver-1 | WARNING: A terminally deprecated method in sun.misc.Unsafe has been called\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/data/libraries/org/joml/joml/1.10.8/joml-1.10.8.jar)\nserver-1 | WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe\nserver-1 | WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release\nserver-1 | [07:02:31 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Initialising converters for DataConverter...\nserver-1 | [07:02:31 INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD]\nserver-1 | [07:02:31 INFO]: [ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry] Finished initialising converters for DataConverter in 259.3ms\nserver-1 | [07:02:32 INFO]: Loaded 1585 recipes\nserver-1 | [07:02:32 INFO]: Loaded 1688 advancements\nserver-1 | [07:02:32 INFO]: Starting minecraft server version 26.2\nserver-1 | [07:02:32 INFO]: Loading properties\nserver-1 | [07:02:32 INFO]: This server is running Paper version 26.2-129-ver/26.2@9240f58 (2026-09-23T18:49:01Z) (Implementing API version 26.2.build.129-stable)\nserver-1 | [07:02:32 INFO]: [spark] This server bundles the spark profiler. For more information please visit https://docs.papermc.io/paper/profiling\nserver-1 | [07:02:32 INFO]: Server Ping Player Sample Count: 12\nserver-1 | [07:02:32 INFO]: Using 4 threads for Netty based IO\nserver-1 | [07:02:32 WARN]: [Configurations] The global config file didn't have a version set, assuming latest\nserver-1 | [07:02:32 INFO]: [MoonriseCommon] Paper is using 4 worker threads, 1 I/O threads\nserver-1 | [07:02:32 INFO]: Default game type: SURVIVAL\nserver-1 | [07:02:32 INFO]: Generating keypair\nserver-1 | [07:02:32 INFO]: Starting Minecraft server on *:25565\nserver-1 | [07:02:32 INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.\nserver-1 | [07:02:32 INFO]: Paper: Using OpenSSL 3.x.x (Linux aarch64) cipher from Velocity.\nserver-1 | [07:02:33 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!\nserver-1 | [07:02:33 WARN]: The server will make no attempt to authenticate usernames. Beware.\nserver-1 | [07:02:33 WARN]: Whilst this makes it possible to use Velocity, unless access to your server is properly restricted, it also opens up the ability for hackers to connect with any username they choose.\nserver-1 | [07:02:33 WARN]: Please see https://docs.papermc.io/velocity/security for further information.\nserver-1 | [07:02:33 WARN]: To change this, set \"online-mode\" to \"true\" in the server.properties file.\nserver-1 | [07:02:33 INFO]: Preparing level \"world\"\nserver-1 | [07:02:33 INFO]: Loading 0 persistent chunks for level 'minecraft:overworld'...\nserver-1 | [07:02:33 INFO]: Preparing spawn area: 100%\nserver-1 | [07:02:33 INFO]: Prepared spawn area in 1 ms\nserver-1 | [07:02:33 INFO]: Loading 0 persistent chunks for level 'minecraft:the_nether'...\nserver-1 | [07:02:33 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:02:33 INFO]: Loading 0 persistent chunks for level 'minecraft:the_end'...\nserver-1 | [07:02:33 INFO]: Prepared spawn area in 0 ms\nserver-1 | [07:02:33 INFO]: Done preparing level \"world\" (0.301s)\nserver-1 | [07:02:33 INFO]: [spark] Starting background profiler...\nserver-1 | [07:02:33 INFO]: Starting remote control listener\nserver-1 | [07:02:33 INFO]: Thread RCON Listener started\nserver-1 | [07:02:33 INFO]: RCON running on 0.0.0.0:25575\nserver-1 | [07:02:33 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld\nserver-1 | [07:02:33 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether\nserver-1 | [07:02:33 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end\nserver-1 | [07:02:33 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved\nserver-1 | [07:02:33 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved\nserver-1 | [07:02:33 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved\nserver-1 | [07:02:33 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved\nserver-1 | [07:02:33 INFO]: Running delayed init tasks\nserver-1 | [07:02:33 INFO]: Done (6.144s)! For help, type \"help\"\n"} +{"timestamp": "2026-10-01T07:02:44.240862+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "compose", "images", "--format", "json"], "exit": 0, "output": "[{\"ID\":\"sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411\",\"ContainerName\":\"minecraft-4a3d50af-proxy-1\",\"Repository\":\"itzg/mc-proxy\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":968846183,\"Created\":\"2026-09-18T17:24:52.935406437Z\",\"LastTagTime\":\"2026-10-01T06:18:11.203022588Z\"},{\"ID\":\"sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e\",\"ContainerName\":\"minecraft-4a3d50af-server-1\",\"Repository\":\"itzg/minecraft-server\",\"Tag\":\"\",\"Platform\":\"linux/arm64\",\"Size\":1314357471,\"Created\":\"2026-09-25T14:26:46.22131782Z\",\"LastTagTime\":\"2026-10-01T06:31:49.950360968Z\"}]\n\n"} +{"timestamp": "2026-10-01T07:02:44.395542+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "720", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "stop"], "exit": 0, "output": " Container minecraft-4a3d50af-proxy-1 Stopping \n Container minecraft-4a3d50af-proxy-1 Stopped \n Container minecraft-4a3d50af-proxy-1 Removing \n Container minecraft-4a3d50af-proxy-1 Removed \n Container minecraft-4a3d50af-server-1 Stopping \n Container minecraft-4a3d50af-server-1 Stopped \n Container minecraft-4a3d50af-server-1 Removing \n Container minecraft-4a3d50af-server-1 Removed \n Network minecraft-4a3d50af_default Removing \n Network minecraft-4a3d50af_default Removed \n"} +{"timestamp": "2026-10-01T07:02:45.953137+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/velocity network", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation mr47_rbn/velocity network/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.056980+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/latest vanilla", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation mr47_rbn/latest vanilla/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.160899+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/restored server", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation mr47_rbn/restored server/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.266360+00:00", "cwd": "/tmp/minecraft validation mr47_rbn/stable paper", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "240", "/tmp/minecraft validation mr47_rbn/stable paper/scripts/minecraft", "compose", "down", "--volumes", "--remove-orphans", "--timeout", "120"], "exit": 0, "output": " Volume minecraft-f0840fda_database Removing \n Volume minecraft-f0840fda_database Removed \n"} +{"timestamp": "2026-10-01T07:02:46.371488+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "ps", "-aq"], "exit": 0, "output": "9fc1c9de7bd4\nb6565a0b2641\ncb032c5d0307\nc4b270652fae\n83b52f82cc55\nfcc32bf402ee\n3faf83c3849e\n14cb2d0322a8\n7ca13c7a9157\n8a106aa4cdf8\n05758f1c498d\n90ed72c10c1c\n4e36373b3ff8\n31f7b35c97a2\n1b9e84a6dac9\n5440b03cc0be\nb659460c72ed\n7910b8100224\nc59f1f70d70f\n1f2fd13508fb\n9a0f33f0c8af\n5f0ffbf98fe9\nd22abb2de519\n"} +{"timestamp": "2026-10-01T07:02:46.423679+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-f0840fda"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.439558+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-f0840fda"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.454887+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-f0840fda"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.470426+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-9a17aa93"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.486162+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-9a17aa93"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.501522+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-9a17aa93"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.519593+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-2e5c3d9d"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.536158+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-2e5c3d9d"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.551866+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-2e5c3d9d"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.567622+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "container", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-4a3d50af"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.583538+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "network", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-4a3d50af"], "exit": 0, "output": ""} +{"timestamp": "2026-10-01T07:02:46.599662+00:00", "cwd": "/tmp/minecraft-modernize-fresh-checkout", "command": ["timeout", "--signal=TERM", "--kill-after=30s", "30", "docker", "volume", "ls", "-q", "--filter", "label=com.docker.compose.project=minecraft-4a3d50af"], "exit": 0, "output": ""} diff --git a/docs/proof/runtime/inventory-diff.json b/docs/proof/runtime/inventory-diff.json new file mode 100644 index 0000000..350d381 --- /dev/null +++ b/docs/proof/runtime/inventory-diff.json @@ -0,0 +1,32 @@ +{ + "removed_unrelated_ids": [ + "096d72ec2f76", + "da6e8ec3c74c" + ], + "added_unrelated_ids": [], + "preserved_ids": [ + "05758f1c498d", + "14cb2d0322a8", + "1b9e84a6dac9", + "1f2fd13508fb", + "31f7b35c97a2", + "3faf83c3849e", + "4e36373b3ff8", + "5440b03cc0be", + "5f0ffbf98fe9", + "7910b8100224", + "7ca13c7a9157", + "83b52f82cc55", + "8a106aa4cdf8", + "90ed72c10c1c", + "9a0f33f0c8af", + "9fc1c9de7bd4", + "b6565a0b2641", + "b659460c72ed", + "c4b270652fae", + "c59f1f70d70f", + "cb032c5d0307", + "d22abb2de519", + "fcc32bf402ee" + ] +} diff --git a/docs/proof/runtime/summary.json b/docs/proof/runtime/summary.json new file mode 100644 index 0000000..6f35548 --- /dev/null +++ b/docs/proof/runtime/summary.json @@ -0,0 +1,6 @@ +{ + "started": "2026-10-01T06:59:33.624930+00:00", + "mode": "fullDocker", + "passed": true, + "finished": "2026-10-01T07:02:46.804819+00:00" +} diff --git a/docs/proof/runtime/versions.env b/docs/proof/runtime/versions.env new file mode 100644 index 0000000..16264c6 --- /dev/null +++ b/docs/proof/runtime/versions.env @@ -0,0 +1,13 @@ +SERVER_IMAGE=itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e +PROXY_IMAGE=itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411 +BACKUP_IMAGE=itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16 +DATABASE_IMAGE=mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1 +WEB_IMAGE=nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94 +PAPER_VERSION=26.2 +PAPER_BUILD=129 +VANILLA_VERSION=26.3 +VELOCITY_VERSION=4.2.1-SNAPSHOT +VELOCITY_BUILD_ID=36 +PAPER_SHA256=b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083 +VELOCITY_SHA256=62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c +VANILLA_SERVER_SHA1=33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c diff --git a/docs/proof/version-check.json b/docs/proof/version-check.json new file mode 100644 index 0000000..f4c0a7c --- /dev/null +++ b/docs/proof/version-check.json @@ -0,0 +1,77 @@ +{ + "images": { + "BACKUP_IMAGE": { + "platforms": { + "amd64": "sha256:67af7cc0b97936effa07ab7b24bc957e3b7562f9bbe30ff0ebc731ad1fd0a00a", + "arm": "sha256:b1ca897693f9ec08f34d50a6c86caeded408ca582861671ec6edc67fa78ff1dd", + "arm64": "sha256:3195676d141fd8afcda317033bf2fd7e09d34f36d0805118f50afa9e4063783e" + }, + "reference": "itzg/mc-backup:2026.9.3@sha256:3ff6a1e8fa15ca4e4440b118676cf58c611a4079d4da8fe792b04a9a13619f16" + }, + "DATABASE_IMAGE": { + "platforms": { + "amd64": "sha256:2f4f46f80e7251990bfdc601ae3f7f2964ddb4dc1868f7deca699fc1ece8c35e", + "arm64": "sha256:6b01a23e2550ac37036c3dd6187f790b56832832b53ce4173b8e2b2fed51e3a5", + "ppc64le": "sha256:31c7afbe80e196dec8aaaed602811b6902e09e70ec9a03ac64372760d1eb4a51", + "s390x": "sha256:d6addcff7350368b777769ed002b9a6b773723034edb85959c0b4aa9fd834945" + }, + "reference": "mariadb:12.3.3@sha256:805c8e104bd563d5bfa24fadd3f31cd419ea859cb5277f32b5dbf2db714f9ed1" + }, + "PROXY_IMAGE": { + "platforms": { + "amd64": "sha256:0dca6fbd141e9623057d396922efbb3b31224737bd8a8bbb15461e2a5746164d", + "arm64": "sha256:6869fe181f33f394d96cc43c60bfac02293c75eaf77f9080e2290317d444e85f" + }, + "reference": "itzg/mc-proxy:2026.9.2-java25@sha256:f95e6c0364a6be9ff983208943c807da70d584d935b25a23b605966a71f33411" + }, + "SERVER_IMAGE": { + "platforms": { + "amd64": "sha256:fb2f45007e63d33322cc9c3e1c87d1aef533197889e88c5d4e6b2138f4d86620", + "arm64": "sha256:11fb5d3a9eac50eaab80926a90a948b1ba6714122d55e36c704e5bbd086a0429", + "riscv64": "sha256:744be55957502885613c65b213537d04b0e5baaa8f2ec6c10e59fde8ed8e20d2" + }, + "reference": "itzg/minecraft-server:2026.9.2-java25@sha256:de5d1b1a83eba576f6c8a688fac2a3523ce457724cdebc8ea48d7818b74cdf6e" + }, + "WEB_IMAGE": { + "platforms": { + "386": "sha256:6b7a4f13aa1cb05946e90cfa70933418e51f99a9604305eec0779737077fa64d", + "amd64": "sha256:8f84ed99befc3891b8f329c5c202785278a2cfb7c25107d57fb2a134a3117433", + "arm": "sha256:3a46b783293cbd9f24fba2fbafdf391b8c8953e8dcbb0da23b841b4783be3c9e", + "arm64": "sha256:3abad30db61dfb2a339ea21acc9f3e6bbe78e291fcff2f835f4510c8fdfcbd83", + "ppc64le": "sha256:a2056a035f0ae2caef33df498ee2f22756955da24d89cc7840a500356fc1b099", + "riscv64": "sha256:d0f15a8a48f14a06d10b50ab988842126c0d769bd8f7d9f3b27b101b2d6b8ec6", + "s390x": "sha256:b2cc574e70799bfa87616aa5f6f734bef5a36c2822c7cb5efd639b28688c632a" + }, + "reference": "nginx:1.30.5-alpine@sha256:0985e772fb9f729e6fa0980da05fca5d9c468e870eed43071545afa9d2e27d94" + } + }, + "software": { + "paper": { + "build": "129", + "channel": "STABLE", + "download": "https://fill-data.papermc.io/v1/objects/b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083/paper-26.2-129.jar", + "sha256": "b1d8f6bfa1b6101fa8e947b53041cb3bdf5540e7b83b6547ca19ba7edefeb083", + "source": "https://fill.papermc.io/v3/projects/paper/versions/26.2/builds/129", + "version": "26.2" + }, + "vanilla": { + "latest_release": "26.3", + "server": { + "sha1": "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c", + "size": 62294556, + "url": "https://piston-data.mojang.com/v1/objects/33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c/server.jar" + }, + "source": "https://piston-meta.mojang.com/v1/packages/4fe1aa1ef8da1cb95c5bad1fb98890ca56dd8ca3/26.3.json", + "version": "26.3" + }, + "velocity": { + "build": "36", + "channel": "STABLE", + "download": "https://fill-data.papermc.io/v1/objects/62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c/velocity-4.2.1-SNAPSHOT-36.jar", + "sha256": "62a06a6bbf3c48b72473ac64a1bdea38e940b82780a99998e83b42d34022b42c", + "source": "https://fill.papermc.io/v3/projects/velocity/versions/4.2.1-SNAPSHOT/builds/36", + "version": "4.2.1-SNAPSHOT" + } + }, + "verified_at": "2026-10-01T07:01:59.156971+00:00" +} diff --git a/docs/validation.md b/docs/validation.md new file mode 100644 index 0000000..fab83d6 --- /dev/null +++ b/docs/validation.md @@ -0,0 +1,74 @@ +# Validation + +The final review-fix full Docker gate passed 45 runtime assertions and nine CLI/config cases on both native ARM64 and native GitHub AMD64. Final application/harness source is `1b6a5ee`; subsequent commits add evidence/documentation only. ARM64 used an unindexed Git archive, Docker 29.8.0/Compose 5.5.1, from 07:42:13 through 07:45:54 UTC on 2026-10-01. [ARM64 summary](proof/review-fixes/runtime-arm64-final/summary.json), [assertions](proof/review-fixes/runtime-arm64-final/assertions.json), [redacted commands](proof/review-fixes/runtime-arm64-final/commands.jsonl). + +[GitHub AMD64 run](https://github.com/sVoxelDev/minecraft-server-template/actions/runs/36831801041) passed the same full gate from a fresh Ubuntu checkout with cold image pulls, Docker 28.0.4 and Compose 2.38.2, from 07:41:44 through 07:46:02 UTC on 2026-10-01. [AMD64 summary](proof/review-fixes/runtime-amd64/summary.json), [assertions](proof/review-fixes/runtime-amd64/assertions.json), [runtime commands/identities](proof/review-fixes/runtime-amd64/commands.jsonl), [CI result](proof/review-fixes/ci-amd64-run.json), [source hashes](proof/review-fixes/identity.json), [local gate](proof/review-fixes/local/summary.json), [version verification](proof/review-fixes/version-check.json), [setup skill validation](proof/review-fixes/skill-validation.json). + +The original 35-assertion proof remains in [historical runtime evidence](proof/runtime/summary.json); independent findings subsequently exposed defects in that earlier tree. The final run preserves all 35 earlier runtime assertions and adds ten meaningful assertions for actual Restic failure/save recovery, overlapping jobs, literal Velocity MOTD and stable cleanup sentinel. Three new focused CLI cases supplement the original six. Both final runs include protected archive-copy exclusions and the tiny derived-image build context. + + +## What ran + +| Boundary | Observed result | +| --- | --- | +| Setup and diagnostics | Explicit EULA refusal; invalid port, memory, distribution/topology and unknown options rejected. Setup from another directory and a path with spaces passed. Repeat setup preserved credentials and a world marker. Legacy data, empty secrets, missing Docker and contradictory offline authentication failed clearly. Every inherited managed setting/pin was contaminated; the generated project and pins remained effective. Image substitution, host/container networking, foreign/external/non-bridge networks were rejected without creating resources. | +| Stable standalone Paper | Paper 26.2 build 129, commit `9240f58`, reached Minecraft status and RCON. Its downloaded JAR matched the pinned official SHA-256. Literal unicode, dollars, backslash/apostrophe and doubled-backslash MOTD reached actual status unchanged. Effective online authentication and disabled query matched the contract. A protocol client received an authentication challenge; an incorrect RCON password failed. | +| Latest Minecraft release | Vanilla 26.3 reached live Minecraft status and RCON, with online authentication and query disabled. The downloaded bundler JAR matched Mojang's pinned SHA-1. | +| Persistence | A scoreboard value of 42 survived forced server container recreation. | +| Backups | The scheduled restic sidecar produced a snapshot and reported its six-hour interval. The manual command used the same job. Server logs showed save flush and automatic saving resumed. Both a failed pre-hook and an actual inner Restic failure from invalid `RESTIC_LIMIT_UPLOAD` returned nonzero; the latter included useful stderr, and saves resumed. Two overlapping jobs completed successfully. While the first held the lock after flushing, the second completed non-mutating readiness and saving remained disabled; saving resumed after both completed. | +| Restore | After changing the source value to 99, a snapshot restored into a separate empty directory. A separately initialized server booted those files and returned the original value of 42. | +| Velocity | Version 4.2.1-SNAPSHOT build 36, commit `7fc49913`, started with the pinned matching JAR hash. Proxy status rendered the same literal MOTD; backend ports were absent from the resolved deployment. Effective Paper config contained the shared modern-forwarding secret. Production login requested account authentication. | +| Forwarding client | In the disposable offline-auth test variant, the minimal native protocol client entered play. Backend RCON listed `ForwardProof`, and backend logs recorded its join. Direct backend login failed without forwarding. A mismatched forwarding secret failed login. Production online authentication was restored and challenged the client again. | +| Optional services | MariaDB 12.3.3 authenticated with generated application credentials, created/read a row, retained it through recreation, and rejected a wrong password. NGINX 1.30.5 served files over its ephemeral loopback port. | +| Agent setup | A clean Git clone contained AGENTS.md, START.md and the repo-local skill. The same setup, diagnostics, live status, RCON and scheduled-backup operations required by the skill ran successfully from fresh deployment copies. Skill frontmatter validation passed. | +| Cleanup | All owned project containers, networks and named volumes were absent after teardown. Temporary server, repository and restore directories were removed. A stable container with a separate project label survived contaminated `COMPOSE_PROJECT_NAME` stop/down cleanup and was then explicitly removed. The unrelated container inventory was compared and exported; concurrent workers' temporary container churn did not trigger unrelated cleanup. | + +Both Java wrappers actually reported Temurin 25.0.4+7. Restic snapshots reported 0.19.1. Actual container/image identities are in the command log; the complete reproducible pins are in [the captured versions](proof/review-fixes/runtime-arm64-final/versions.env). The independent version verifier rechecked Paper/Velocity stable-channel metadata, Mojang release metadata, all five image index digests, and their amd64/arm64 child manifest digests. [Version evidence](proof/review-fixes/version-check.json), [cleanup evidence](proof/review-fixes/runtime-arm64-final/cleanup.json), [inventory comparison](proof/review-fixes/runtime-arm64-final/inventory-diff.json), [local gate](proof/review-fixes/local/summary.json). + +## Reproduce + +Run from a fresh checkout with Python 3.11+, Git, native Linux Docker Engine 28+, Compose v2/v5, GNU `timeout`, sufficient memory and disk, and network access to the publishers: + +```sh +./scripts/validate local --output /tmp/minecraft-local-proof +./scripts/check-versions > /tmp/minecraft-version-proof.json +./scripts/validate fullDocker --output /tmp/minecraft-runtime-proof +``` + +The validator uses fresh temporary source copies, with a safe archive fallback excluding generated/legacy data and secrets, random project names, ephemeral loopback ports, modest heaps and small view distances. Every runtime command has a GNU timeout; signal handling runs scoped teardown. Output includes timestamped commands, exit codes, redacted logs, assertions, versions and cleanup results. `--scenario network` runs only the forwarding sequence. The CI workflow runs the same full gate on pull requests and exposes an explicit workflow-dispatch input and uploads artifacts even after failure. + +## Limits + +Both native ARM64 and GitHub AMD64 executed the real servers and integrations. The committed CI proof identifies the exact tested source; final documentation commits retain those source hashes. The native client explicitly supports Paper protocol 776 for 26.2 and refuses a future unsupported protocol with a clear error before connecting. Runtime version/build/jar/hash expectations derive from `versions.env`; updating a Paper protocol requires updating this small client mapping. + +Production account-authenticated login requires account credentials and was not completed. Authentication challenge checks establish that production requests authentication; isolated play proves forwarding, with online authentication temporarily disabled only in the disposable test project. The final configuration restores production online authentication. + +No arbitrary plugin, Plan/Dynmap release, public DNS/ACME, external reverse proxy, migrated 1.17 production world, SQL backup or off-host repository is certified. Those paths have explicit operational or migration instructions. Backups cover server files; plugin databases need their own consistent backup and rehearsal. The scheduled sidecar's startup snapshot and next interval were observed; the test did not wait six hours for its next scheduled tick. The clean-checkout test exercises the setup skill's public operations; independent agent instruction review remains with the conductor. + +Baseline failures were reproduced before implementation: missing `docker-compose`, invalid duplicate YAML keys, false-success EOF initialization and empty restic credentials, plus missing debug fragments. The original baseline commit was `b65b463a674ca0caf9fcf76eca5c07a60b1ab9cd`; the durable source report is the environment ticket's `logs/baseline/report.md`. The new boundary tests retain those failure contracts through the replacement CLI rather than retaining the broken launchers. + +## Review history + +The independent [standards](proof/review-findings/review-standards.md) and [spec](proof/review-findings/review-spec.md) reports found defects in the earlier successful tree. Their original Restic stderr and unsafe concurrency evidence remains committed. [Focused local red evidence](proof/review-findings/local-red/commands.jsonl) reproduced inherited project/image redirection, host networking and malformed dotenv MOTD. Failed follow-up probes remain under `proof/review-findings/runtime-3/` and `runtime-4/`: the first incorrectly expected player-list output from the wrapper; the second caught Velocity consuming doubled backslashes. Neither failed result is presented as passing proof. [Baseline report](proof/review-findings/baseline-report.md) preserves the old 1.17/Waterfall failures. + +| Review finding | Final public proof | +| --- | --- | +| Inherited project/settings/images | CLI case `test_ambient_environment_cannot_redirect_project_or_pins` poisons every generated setting and pin, verifies exact project/version, and rejects explicit image substitution. All runtime CLI stop/down operations inherit the sentinel project and wrong managed pins. | +| Restic stderr false success | `inner Restic failure returns nonzero with useful output` and `inner Restic failure resumes saves`. | +| Pre-lock save-on overlap | `second backup completed nonmutating readiness while first locked`, `overlap cannot enable saving while first holds lock`, both successful jobs and final save-on evidence in overlap logs. | +| Network bypass | CLI case `test_doctor_rejects_network_bypasses` checks host/container modes, foreign/external bridge names and macvlan without launching them. | +| MOTD literals | Valid TOML/config CLI case and exact Paper/Velocity live protocol MOTD assertions with unicode, dollars, backslash/apostrophe and doubled backslashes. | +| Unrelated cleanup | Stable sentinel survives contaminated cleanup, then is removed; exact project labels show zero owned containers/networks/volumes. Inventory churn is informational. | +| Current actions / AMD64 | Official action release identities are in `proof/actions.json`; GitHub PR jobs run the public local/version/full gates and upload proof even on failure. | +| Updated pins / future protocol | Runtime jar/build/hash assertions use `versions.env`; [unsupported future client proof](proof/review-fixes/unsupported-protocol.json) fails before connecting. | +| Archive validation | Both successful ARM64 full runs used `git archive` source without an index. Fallback excludes protected generated/legacy paths. | + +The first GitHub AMD64 run passed all server/integration assertions but failed cleanup because cold-image `docker create` pull progress was merged into the captured sentinel ID. [Failure proof](proof/review-findings/ci-amd64-cold-image-failure/summary.json) remains committed. The harness now uses its unique owned sentinel name and independently inspects its exact 64-character hexadecimal ID; pull output cannot become a Docker resource identifier. The subsequent green AMD64 run proved sentinel survival, explicit removal and complete owned-project cleanup. + +## Final independent verdict and single-prompt execution + +The fresh [final independent review](proof/final-review/report.md) confirms every original finding and the subsequently discovered cold-image cleanup defect is fixed. Initial cached review used `5cd63b7`; the reviewer then independently ran final `1b6a5ee` with nine CLI cases and all 45 runtime assertions, plus a separate uncached-image gate with nine CLI cases and 14 network/cleanup assertions. Actual builds proved world/backup/secret canaries absent from the derived image context, a changed pinned backup base selected and rebuilt the correct derived identity despite stale generated settings, and an incompatible base failed the exact patch guard. No unresolved finding was accepted instead of fixed. Both final review runtime lanes terminated and exported zero owned resources. + +The [single-prompt setup review](proof/one-prompt/report.md) is genuine source-blind agent execution, not frontmatter validation or a builder simulation. A fresh native Codex worker received only the shipped skill, START prompt, README, routed operations and CLI help, plus explicit disposable EULA acceptance. From archive `5cd63b7`, it made autonomous choices without clarification, started Paper 26.2 build 129 with a 2G heap and backup profile on loopback, verified live status and authenticated RCON, observed the scheduled snapshot and six-hour interval, created/listed a manual snapshot, and cleaned its project and gameplay port. Restore was not requested in that lane; the full gates separately prove restoration. + +Selected redacted reports, assertions, probe transcripts and scoped cleanup evidence are committed. Fixtures, generated state, real secrets, unrelated host inventories and large repeated dumps are omitted. Publication updates only documentation/proof; executable and build source hashes still match `1b6a5ee`. Operational limits above remain unchanged. Review is complete; publication CI and Michael's explicit final go remain the release gates. Nothing has been merged. diff --git a/downloads/conf/default.conf b/downloads/conf/default.conf deleted file mode 100644 index 34a8931..0000000 --- a/downloads/conf/default.conf +++ /dev/null @@ -1,8 +0,0 @@ -server { - listen 80; - server_name localhost; - # serve the static files on port 80 - location / { - alias /files/; - } -} diff --git a/downloads/files/.gitkeep b/downloads/files/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/dynmap/main/.gitignore b/dynmap/main/.gitignore deleted file mode 100644 index beb6e0c..0000000 --- a/dynmap/main/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -tiles/** -standalone/*.json \ No newline at end of file diff --git a/dynmap/main/.gitkeep b/dynmap/main/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/dynmap/main/config.js b/dynmap/main/config.js deleted file mode 100644 index a3436f7..0000000 --- a/dynmap/main/config.js +++ /dev/null @@ -1,2 +0,0 @@ -// This file is retired : settings now can be tailored using url section in configuration.txt, when needed -// \ No newline at end of file diff --git a/dynmap/main/css/dynmap_style.css b/dynmap/main/css/dynmap_style.css deleted file mode 100644 index 3bdc79b..0000000 --- a/dynmap/main/css/dynmap_style.css +++ /dev/null @@ -1,1019 +0,0 @@ -/* TILE DEBUGGING */ -/*.leaflet-tile { - margin: -1; - border: 1px solid red; -}*/ - -/******************* - * Attribution placement - */ -.leaflet-control-attribution { - margin-right: 20px !important; -} - -/******************* - * Page setup - */ - -.dynmap .map .tile img, img { - image-rendering: -moz-crisp-edges; - image-rendering: pixelated; - -ms-interpolation-mode: nearest-neighbor; -} - - -/******************* - * fieldset and legend styles - */ - -.dynmap fieldset { - border: none; - border-top: 1px solid rgba(196,196,196,0.4); -} - -.dynmap legend { - padding: 8px 4px; - font-weight: bold; - color: #fff; -} - -.leaflet-control-layers { - background-color: #bbb; -} - -.leaflet-control-layers:hover { - background-color: #bbb; -} - -.leaflet-control-zoom-in { - background-color: #eee; - } - -.leaflet-control-zoom-out { - background-color: #eee; - } - -.leaflet-control-zoom-in:hover { - background-color: #fff; - } - -.leaflet-control-zoom-out:hover { - background-color: #fff; - } - - -/******************* - * Map Setup - */ - -.dynmap > .map { - width: 100%; - height: 100%; - background: #000; - z-index: 0; -} - -/* Map Controls */ -.gmnoprint{ - margin-top:-75px; - margin-left:-20px; -} - - -/******************* - * Alerts are pretty. - */ - -.alertbox { - position: fixed; - width: 50%; - z-index: 999; - - top: 0; - left: 0; - right: 0; - - text-align: center; - font-size: 16px; - font-weight: bold; - - color: #fff; - background: #c00; - - border-color: #a00; - - margin: auto; - padding: 8px; -} - - -/******************* - * shared rules - */ - -.dynmap .panel ul, .dynmap .panel li { - list-style: none; - - padding: 0; - margin: 0; -} - -.maplist li a, -.playerlist li a { - outline: none; - text-decoration: none; -} - -.alertbox, -.largeclock { - border-style: solid; - border-width: 0px 1px 1px 1px; - - -moz-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4); - -webkit-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4); - -o-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4); - - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - -o-border-radius: 0 0 3px 3px; - - box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4); - border-radius: 0 0 3px 3px; -} - -/******************* - * sidebar panels - */ - -.dynmap .sidebar { - - display: block; - position: absolute; - z-index: 120; - - top: 0px; - right: 0px; - - height: 100%; - - background: rgb(0,0,0); /* FU IE */ - background: rgba(0,0,0,0.6); - color: #fff; - - border-left: 1px solid rgba(0,0,0,0.5); -} - -.dynmap .hitbar { - - display: block; - position: absolute; - z-index: 110; - - top: 0px; - - height: 100%; - width: 16px; - - text-align: center; - - background: url(../images/sidebar_hint.png) rgb(0,0,0); - background: url(../images/sidebar_hint.png) rgba(0,0,0,0.6); - background-repeat: no-repeat; - background-position:center; - - border: 1px solid rgba(0,0,0,0.5); -} - -/* magic and metrics */ - -/* The following only applies to desktops, not to mobile devices */ -@media screen and (min-device-width: 640px) { - .dynmap .sidebar { - -moz-transition: all 0.6s ease-in-out; - -webkit-transition: all 0.6s ease-in-out; - -o-transition: all 0.6s ease-in-out; - transition: all 0.6s ease-in-out; - } - - .dynmap .hitbar { - -moz-transition: all 0.6s ease-in-out; - -webkit-transition: all 0.6s ease-in-out; - -o-transition: all 0.6s ease-in-out; - transition: all 0.6s ease-in-out; - } - - .dynmap .sidebar:hover { - margin-right: 0px; - } - - .dynmap .sidebar < .hitbar:hover { - margin-right: 0px; - } - - .dynmap .sidebar:hover .hitbar { - right: -120px; - } -} - -.dynmap .sidebar.pinned { - margin-right: 0px; -} - -.dynmap .sidebar.pinned .hitbar { - right: -120px; -} - -/* pinning */ - -.dynmap .sidebar .panel > .pin { - position: absolute; - - right: 8px; - top: 7px; - - width: 16px; - height: 16px; - - background-image: url(../images/window_close.png); -} - -.dynmap .sidebar .panel > .pin:hover { - background-image: url(../images/window_pinned_hover.png); -} - -.dynmap .sidebar.pinned .panel > .pin:hover { - background-image: url(../images/window_close_hover.png); -} - -.dynmap .sidebar.pinned .panel > .pin { - background-image: url(../images/window_pinned.png); -} - - -/******************* - * Sidebar clock style - */ -/* -.dynmap .panel .clock { - display: inline-block; - height: 16px; - z-index:50; - - font-weight: bold; - background-repeat: no-repeat; - padding-left: 20px; - margin-left: 8px; -} -*/ -.largeclock.digitalclock { - text-align: center; - font-size: 50px; - font-weight: bold; -} - -.digitalclock { - text-align: center; - font-size: 20px; - font-weight:bold; -} - -.digitalclock.night { - /* background-image: url(../images/clock_night.png); */ - color: #dff; -} - -.digitalclock.day { - /* background-image: url(../images/clock_day.png); */ - color: #fd3; -} - -.digitalclock.night, .digitalclock.day { - -moz-transition: color 8s 8s linear; - -webkit-transition: color 8s 8s linear; - -o-transition: color 8s 8s linear; - transition: color 8s 8s linear; -} - - -/******************* - * Large clock style - */ - -.largeclock { - position: absolute; - top: 0; - left: 0; - right: 0; - border-color: rgba(0,0,0,0.5); - width: 150px; - height: 60px; - background: rgba(0,0,0,0.6); - z-index:50; - - margin: auto; -} - -.timeofday { - background-repeat: no-repeat; -} - -.timeofday.sun { - background-image: url(../images/sun.png); -} - -.timeofday.moon { - background-image: url(../images/moon.png); -} - -.timeofday.digitalclock { - position: relative; - bottom: 25px; -} - -/******************* - * Clock weather style - */ - -.weather { - position: absolute; - top: 5px; - right: 0px; - width: 32px; - height: 32px; - display: block; - background-repeat: no-repeat; -} - -.weather.sunny_day { - background-image: url(../images/weather_sunny_day.png); -} - -.weather.stormy_day { - background-image: url(../images/weather_stormy_day.png); -} -.weather.thunder_day { - background-image: url(../images/weather_thunder_day.png); -} - -.weather.sunny_night { - background-image: url(../images/weather_sunny_night.png); -} - -.weather.stormy_night { - background-image: url(../images/weather_stormy_night.png); -} -.weather.thunder_night { - background-image: url(../images/weather_thunder_night.png); -} - -/******************* - * generic sidebar sublist styling - */ - -.dynmap .panel .subsection { - display: block; - clear: both; - - width: 100%; - line-height: 18px; - margin: 0 0 30px 0; - - border-bottom: 1px solid rgba(128,128,128,0.3); - -} - -.dynmap .sublist .item { - display: block; - float: left; - - height: 18px; - width: 18px; - - padding: 2px; - margin: 5px 2px; - - border-radius: 3px; - -moz-border-radius: 3px; - - background: rgba(32,32,32,0.6); - border: 1px solid rgba(64,64,64,0.6); -} - -.dynmap .sublist .item:hover { - background: rgba(64,64,64,0.6); - border: 1px solid rgba(128,128,128,0.6); -} - -.dynmap .sublist .item.selected { - background: rgba(128,128,128,0.5); - border: 1px solid rgba(255,255,255,0.5); -} - -.dynmap .sublist .item > a { - display: block; - - text-indent: -99999px; - outline: none; -} - -.dynmap .sublist .item > a { - background-repeat: no-repeat; - background-position: center; -} - -/******************* - * player list-specific styles - */ - -.dynmap .playerlist .player { - - display: inline-block; - float: left; - width: 100%; - - padding: 4px 0; - border: 3px solid transparent; -} - -.dynmap .playerlist .player.otherworld { - opacity: 0.5; -} - -.dynmap .playerlist .player:hover { - background: rgba(64,64,64,0.6); -} - -.dynmap .playerlist .player a { - color: #fff; -} - -.dynmap .playerlist .playerIcon img { - width: 16px; - height: 16px; -} - -.dynmap .playerlist .playerIcon > * { - vertical-align: middle; - border: none; -} - -.dynmap .playerlist .playerIcon { - width: 16px; - height: 16px; - - display: block; - float: left; - - margin: 0px 4px 0px 2px; -} - -.dynmap .playerlist .player.following { - background: rgba(128,128,128,0.5); - border: 1px solid rgba(255,255,255,0.5); - - border-radius: 3px; - -moz-border-radius: 3px; - - padding: 6px 2px; - - width: -webkit-calc(100% - 6px); - width: calc(100% - 6px); -} - -.dynmap .playerlist .player:hover .playericon { - background: url(../images/player_follow_off.png) no-repeat; -} - -.dynmap .playerlist .player.following .playericon { - background: url(../images/player_follow_on.gif) no-repeat; -} - -.dynmap .playerlist .player.following .playericon > *, -.dynmap .playerlist .player:hover .playericon > * { - visibility: hidden; -} - -/******************* - * Playerlist Scrolling - */ - -.panel .scrollup { - border: 1px solid rgba(64,64,64,0.6); - background: url(../images/scrollup.png) rgba(32,32,32,0.6); - - margin-bottom: 4px; - - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - -o-border-radius: 2px; - border-radius: 2px; -} - -.panel .scrolldown { - border: 1px solid rgba(64,64,64,0.6); - background: url(../images/scrolldown.png) rgba(32,32,32,0.6); - - margin-top: 4px; - - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - -o-border-radius: 2px; - border-radius: 2px; -} - -.panel .scrollup:hover, .panel .scrolldown:hover { - border: 1px solid rgba(128,128,128,0.6); - background: url(../images/scrollup.png) rgba(64,64,64,0.6); -} - -.panel .scrollup:active, .panel .scrolldown:active { - border: 1px solid rgba(255,255,255,0.5); - background: url(../images/scrollup.png) rgba(128,128,128,0.5); -} - -.panel .scrolldown:hover { - border: 1px solid rgba(128,128,128,0.6); - background: url(../images/scrolldown.png) rgba(64,64,64,0.6); -} - -.panel .scrolldown:active { - border: 1px solid rgba(255,255,255,0.5); - background: url(../images/scrolldown.png) rgba(128,128,128,0.5); -} - -.panel .scrollup, .panel .scrollup:active, .panel .scrollup:hover, -.panel .scrolldown, .panel .scrolldown:active, .panel .scrolldown:hover { - height: 18px; - width: 100%; - - background-repeat: no-repeat; - background-position: center; -} - -.sidebar .list { - overflow:hidden; -} - -.sidebar .content { - min-height: 24px; -} - -/******************* - * players on the map - */ - -/* smooth player movements (contrib from KillahKiwi) */ -.dynmap .playerMarker { - -moz-transition: all 0.6s ease-in-out 0s; - -webkit-transition: all 0.6s ease-in-out 0s; - -o-transition: all 0.6s ease-in-out 0s; - transition: all 0.6s ease-in-out 0s; -} - -.dynmap .playerIcon { - margin-top: -16px; - margin-left: -16px; - width: 32px; - height: 32px; -} - -.dynmap .playerIconSm { - margin-top: -8px; - margin-left: -8px; - width: 16px; - height: 16px; -} - -.dynmap .playerName { - position: absolute; - top: -19px; - left: 18px; - z-index:20; - - white-space: nowrap; - - color: #fff; - background: rgba(0,0,0,0.6); - padding: 2px; - - -moz-border-radius: 3px; - border-radius: 3px; -} - -.dynmap .playerNameSm { - position: absolute; - top: -16px; - left: 10px; - - white-space: nowrap; - - color: #fff; - background: rgba(0,0,0,0.6); - padding: 2px; - - -moz-border-radius: 3px; - border-radius: 3px; -} - -.dynmap .playerNameNoHealth { - top: -7px; -} - -.dynmap .healthContainer { - display: block; - position: absolute; - top: 1px; - left: 18px; - - width: 50px; - - background: rgba(0,0,0,0.6); - padding: 2px; - - -moz-border-radius: 3px; - border-radius: 3px; - - z-index: 21; -} - -.dynmap .healthContainerSm { - display: block; - position: absolute; - top: -2px; - left: 10px; - - width: 50px; - - background: rgba(0,0,0,0.6); - padding: 2px; - - -moz-border-radius: 3px; - border-radius: 3px; -} - -.dynmap .playerHealth { - height: 7px; - - background: url(../images/heart.png) repeat-x left center; -} - -.dynmap .playerHealthBackground { - height: 7px; - width: 50px; - - background: url(../images/heart_depleted.png) repeat-x left center; -} - -.dynmap .playerArmor { - height: 7px; - - background: url(../images/armor.png) repeat-x left center; -} - -.dynmap .playerArmorBackground { - height: 7px; - width: 50px; - - background: url(../images/armor_depleted.png) repeat-x left center; -} - - -/******************* - * Compass - */ - -.compass, .compass_NE, .compass_SE, .compass_NW, .compass_SW { - display: block; - position: absolute; - z-index: 10; - top: 20px; - right: 32px; - height: 84px; - width: 83px; - background-repeat: no-repeat; -} - -.compass, .compass_SE { - background-image: url(../images/compass.png); -} - -.compass_NE { - background-image: url(../images/compass_NE.png); -} - -.compass_NW { - background-image: url(../images/compass_NW.png); -} - -.compass_SW { - background-image: url(../images/compass_SW.png); -} - -.compass_flat, .compass_N, .compass_E, .compass_W, .compass_S { - top: 10px; - right: 21px; - - height: 105px; - width: 105px; -} - -.compass_flat, .compass_S { - background-image: url(../images/compass_flat.png); -} - -.compass_N { - background-image: url(../images/compass_N.png); -} - -.compass_E { - background-image: url(../images/compass_E.png); -} - -.compass_W { - background-image: url(../images/compass_W.png); -} - -.mobilecompass { - top: 5px; - right: 10px; - height: 42px; - width: 42px; - background-size: cover; -} - -/******************* - * Chat - */ - -.chat { - position: absolute; - bottom: 0px; - left: 32px; - z-index:50; - - border-color: rgba(0,0,0,0.5); - background: rgba(0,0,0,0.6); - - border-style: solid; - border-width: 1px 1px 0px 1px; - - -moz-border-radius: 3px 3px 0px 0px; - -webkit-border-radius: 3px 3px 0px 0px; - -o-border-radius: 3px 3px 0px 0px; - border-radius: 3px 3px 0px 0px; - - margin-left: 10px; -} - -.chatinput { - - width: 608px; - height: 16px; - - outline: none; - color: #fff; - background-color: #000000; - - border: 0px; - background: rgba(0, 0, 0, 0.6); - background-image: url(../images/chat_cursor.png); - background-repeat: no-repeat; - background-position: 1px center; - - margin: 4px; - padding: 1px 1px 1px 15px; -} - -.chatsendbutton { - background-color: #bbb; -} - -.loginbutton { - color: #000; - font-family: sans-serif; - font-size: 11px; - border: 1px solid rgba(128,128,128,0.6); - background-color: #bbb; - border-style: solid; - padding: 2px; - -moz-border-radius: 5px; - border-radius: 5px; - cursor: pointer; - margin: 0; -} - -.messagelist { - color: white; - overflow: hidden; - - width: 622px; - max-height: 6em; - - margin: 4px 4px 0px 4px; - padding: 1px; -} - -.scrollback:hover { - overflow-y: auto !important; -} - - -.messagerow { - position: relative; - max-height: 200px; - - left: 0px; - bottom: 0px; - - color: #fff; - font-weight: bold; -} - -.messageicon { - position: relative; - top: 1px; - left: 0px; -} - -.messagetext { - position: relative; - top: -3px; - left: 0px; -} - -.leaflet-popup { - color: black; -} - -.balloonmessage { - word-wrap: break-word; -} - -/* Marker styles */ -.dynmap .mapMarker .markerName { - display: none; - z-index: 101; -} - -.dynmap .mapMarker:hover .markerName, -.dynmap .mapMarker .markerName-show { - display: block; - position: absolute; - z-index: 16; - - white-space: nowrap; - - color: #fff; - background: rgba(0,0,0,0.6); - padding: 2px; - - -moz-border-radius: 3px; - border-radius: 3px; -} - -.dynmap .mapMarker .markerName16x16 { - top: -6px; - left: 10px; -} - -.dynmap .mapMarker .markerName8x8 { - top: -4px; - left: 6px; -} - -.dynmap .mapMarker .markerName32x32 { - top: -8px; - left: 18px; -} - -.dynmap .mapMarker .markerIcon16x16 { - transform: translate(-50%, -50%); - width: 16px; - height: 16px; -} - -.dynmap .mapMarker .markerIcon8x8 { - transform: translate(-50%, -50%); - width: 8px; - height: 8px; -} - -.dynmap .mapMarker .markerIcon32x32 { - transform: translate(-50%, -50%); - width: 32px; - height: 32px; -} - -.dynmap .mapMarker .markerName_offline_players { - font-style: italic; -} - -.dynmap .coord-control { - color: #000; - - border: 1px solid rgba(128,128,128,0.6); - background-color: #bbb; - border-style: solid; - - padding: 2px; - min-width: 80px; - -moz-border-radius: 5px; - border-radius: 5px; -} - -.dynmap .coord-control-noy { - width: 60px; -} - -.dynmap .coord-control .coord-control-label { - -} - -.dynmap .coord-control .coord-control-value { - font-weight: bold; -} - -.dynmap .dynmap-link { - -moz-border-radius: 7px; - -webkit-border-radius: 7px; - border-radius: 7px; - padding: 2px; - background: rgba(0, 0, 0, 0.25); - } -.dynmap .dynmap-link a { - background-color: rgba(255, 255, 255, 0.75); - } -.dynmap .dynmap-link a { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } -.dynmap .dynmap-link a { - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - width: 19px; - height: 19px; - } -.dynmap .dynmap-link a:hover { - background-color: #fff; - } -.leaflet-big-buttons .dynmap-link a { - width: 27px; - height: 27px; - } -.dynmap .dynmap-link-button { - background-image: url(images/link.png); - } - -/* Login/register panel */ -.dynmaplogin { - text-align: center; - width: 100%; - font-weight: bold; - color: #FFFFFF; - background: #000000; -} - -table.loginregister { - color: #ffffff; - border: 1px solid rgba(64,64,64,0.6); - background: #bbb; - font-weight: bold; - margin: auto; -} - -td.login { - vertical-align: top; - color: #000000; - background-color: #bbb; - border: 1px solid rgba(64,64,64,0.6); - font-weight: bold; - margin: 2em; - width: 40em; -} - -td.register { - vertical-align: top; - color: #000000; - background-color: #bbb; - border: 1px solid rgba(64,64,64,0.6); - font-weight: bold; - margin: 2em; - width: 40em; -} - -div.statusmessage { - color: #FF0000; - font-weight: bold; - font-size: 24px; - -} - -.logincontainer { - background-color: rgba(0,0,0,0.0); -} - -.pinnedloginbutton { - margin-right: 201px; -} diff --git a/dynmap/main/css/embedded_example.css b/dynmap/main/css/embedded_example.css deleted file mode 100644 index 84ff380..0000000 --- a/dynmap/main/css/embedded_example.css +++ /dev/null @@ -1,15 +0,0 @@ -/* Embedded into website */ - -#mcmap { - width: 100%; - height: 500px; -} - -.dynmap .sidebar { - width: 140px; /* original width 200px */ - margin-right: -143px; /* original margin 203px, sidebar width +2xborder 1px +1px to hide */ -} - -.dynmap .hitbar { - right: 140px; /* width of sidebar */ -} \ No newline at end of file diff --git a/dynmap/main/css/images/layers.png b/dynmap/main/css/images/layers.png deleted file mode 100644 index ef90a08..0000000 Binary files a/dynmap/main/css/images/layers.png and /dev/null differ diff --git a/dynmap/main/css/images/link.png b/dynmap/main/css/images/link.png deleted file mode 100644 index c4f00cb..0000000 Binary files a/dynmap/main/css/images/link.png and /dev/null differ diff --git a/dynmap/main/css/images/marker-icon.png b/dynmap/main/css/images/marker-icon.png deleted file mode 100644 index e2e9f75..0000000 Binary files a/dynmap/main/css/images/marker-icon.png and /dev/null differ diff --git a/dynmap/main/css/images/marker-icon@2x.png b/dynmap/main/css/images/marker-icon@2x.png deleted file mode 100644 index 0015b64..0000000 Binary files a/dynmap/main/css/images/marker-icon@2x.png and /dev/null differ diff --git a/dynmap/main/css/images/marker-shadow.png b/dynmap/main/css/images/marker-shadow.png deleted file mode 100644 index d1e773c..0000000 Binary files a/dynmap/main/css/images/marker-shadow.png and /dev/null differ diff --git a/dynmap/main/css/images/marker.png b/dynmap/main/css/images/marker.png deleted file mode 100644 index bef032e..0000000 Binary files a/dynmap/main/css/images/marker.png and /dev/null differ diff --git a/dynmap/main/css/images/popup-close.png b/dynmap/main/css/images/popup-close.png deleted file mode 100644 index c8faec5..0000000 Binary files a/dynmap/main/css/images/popup-close.png and /dev/null differ diff --git a/dynmap/main/css/images/zoom-in.png b/dynmap/main/css/images/zoom-in.png deleted file mode 100644 index 9f473d6..0000000 Binary files a/dynmap/main/css/images/zoom-in.png and /dev/null differ diff --git a/dynmap/main/css/images/zoom-out.png b/dynmap/main/css/images/zoom-out.png deleted file mode 100644 index f0a5b5d..0000000 Binary files a/dynmap/main/css/images/zoom-out.png and /dev/null differ diff --git a/dynmap/main/css/leaflet.css b/dynmap/main/css/leaflet.css deleted file mode 100644 index 4ba4e6e..0000000 --- a/dynmap/main/css/leaflet.css +++ /dev/null @@ -1,457 +0,0 @@ -/* required styles */ - -.leaflet-map-pane, -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-tile-pane, -.leaflet-overlay-pane, -.leaflet-shadow-pane, -.leaflet-marker-pane, -.leaflet-popup-pane, -.leaflet-overlay-pane svg, -.leaflet-zoom-box, -.leaflet-image-layer, -.leaflet-layer { - position: absolute; - left: 0; - top: 0; - } -.leaflet-container { - overflow: hidden; - -ms-touch-action: none; - } -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - } -.leaflet-marker-icon, -.leaflet-marker-shadow { - display: block; - } -/* map is broken in FF if you have max-width: 100% on tiles */ -.leaflet-container img { - max-width: none !important; - } -/* stupid Android 2 doesn't understand "max-width: none" properly */ -.leaflet-container img.leaflet-image-layer { - max-width: 15000px !important; - } -.leaflet-tile { - filter: inherit; - visibility: hidden; - } -.leaflet-tile-loaded { - visibility: inherit; - } -.leaflet-zoom-box { - width: 0; - height: 0; - } - -.leaflet-tile-pane { z-index: 2; } -.leaflet-objects-pane { z-index: 3; } -.leaflet-overlay-pane { z-index: 4; } -.leaflet-shadow-pane { z-index: 5; } -.leaflet-marker-pane { z-index: 6; } -.leaflet-popup-pane { z-index: 7; } - - -/* control positioning */ - -.leaflet-control { - position: relative; - z-index: 7; - pointer-events: auto; - } -.leaflet-top, -.leaflet-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } -.leaflet-top { - top: 0; - } -.leaflet-right { - right: 0; - } -.leaflet-bottom { - bottom: 0; - } -.leaflet-left { - left: 0; - } -.leaflet-control { - float: left; - clear: both; - } -.leaflet-right .leaflet-control { - float: right; - } -.leaflet-top .leaflet-control { - margin-top: 10px; - } -.leaflet-bottom .leaflet-control { - margin-bottom: 10px; - } -.leaflet-left .leaflet-control { - margin-left: 10px; - } -.leaflet-right .leaflet-control { - margin-right: 10px; - } - - -/* zoom and fade animations */ - -.leaflet-fade-anim .leaflet-tile, -.leaflet-fade-anim .leaflet-popup { - opacity: 0; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - -o-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; - } -.leaflet-fade-anim .leaflet-tile-loaded, -.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { - opacity: 1; - } - -.leaflet-zoom-anim .leaflet-zoom-animated { - -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); - -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); - -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); - transition: transform 0.25s cubic-bezier(0,0,0.25,1); - } -.leaflet-zoom-anim .leaflet-tile, -.leaflet-pan-anim .leaflet-tile, -.leaflet-touching .leaflet-zoom-animated { - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; - } - -.leaflet-zoom-anim .leaflet-zoom-hide { - visibility: hidden; - } - - -/* cursors */ - -.leaflet-clickable { - cursor: pointer; - } -.leaflet-container { - cursor: -webkit-grab; - cursor: -moz-grab; - } -.leaflet-popup-pane, -.leaflet-control { - cursor: auto; - } -.leaflet-dragging, -.leaflet-dragging .leaflet-clickable, -.leaflet-dragging .leaflet-container { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - } - - -/* visual tweaks */ - -.leaflet-container { - background: #ddd; - outline: 0; - } -.leaflet-container a { - color: #0078A8; - } -.leaflet-container a.leaflet-active { - outline: 2px solid orange; - } -.leaflet-zoom-box { - border: 2px dotted #05f; - background: white; - opacity: 0.5; - } - - -/* general typography */ -.leaflet-container { - font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; - } - - -/* general toolbar styles */ - -.leaflet-bar { - box-shadow: 0 0 8px rgba(0,0,0,0.4); - border: 1px solid #888; - -webkit-border-radius: 5px; - border-radius: 5px; - } -.leaflet-bar-part { - background-color: rgba(255, 255, 255, 0.8); - border-bottom: 1px solid #aaa; - } -.leaflet-bar-part-top { - -webkit-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; - } -.leaflet-bar-part-bottom { - -webkit-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; - border-bottom: none; - } - -.leaflet-touch .leaflet-bar { - -webkit-border-radius: 10px; - border-radius: 10px; - } -.leaflet-touch .leaflet-bar-part { - border-bottom: 4px solid rgba(0,0,0,0.3); - } -.leaflet-touch .leaflet-bar-part-top { - -webkit-border-radius: 7px 7px 0 0; - border-radius: 7px 7px 0 0; - } -.leaflet-touch .leaflet-bar-part-bottom { - -webkit-border-radius: 0 0 7px 7px; - border-radius: 0 0 7px 7px; - border-bottom: none; - } - - -/* zoom control */ - -.leaflet-container .leaflet-control-zoom { - margin-left: 10px; - margin-top: 10px; - } -.leaflet-control-zoom a { - width: 22px; - height: 22px; - text-align: center; - text-decoration: none; - color: black; - } -.leaflet-control-zoom a, -.leaflet-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } -.leaflet-control-zoom a:hover { - background-color: #fff; - color: #777; - } -.leaflet-control-zoom-in { - font: bold 18px/24px Arial, Helvetica, sans-serif; - } -.leaflet-control-zoom-out { - font: bold 23px/20px Tahoma, Verdana, sans-serif; - } -.leaflet-control-zoom a.leaflet-control-zoom-disabled { - cursor: default; - background-color: rgba(255, 255, 255, 0.8); - color: #bbb; - } - -.leaflet-touch .leaflet-control-zoom a { - width: 30px; - height: 30px; - } -.leaflet-touch .leaflet-control-zoom-in { - font-size: 24px; - line-height: 29px; - } -.leaflet-touch .leaflet-control-zoom-out { - font-size: 28px; - line-height: 24px; - } - -/* layers control */ - -.leaflet-control-layers { - box-shadow: 0 1px 7px rgba(0,0,0,0.4); - background: #f8f8f9; - -webkit-border-radius: 8px; - border-radius: 8px; - } -.leaflet-control-layers-toggle { - background-image: url(images/layers.png); - width: 36px; - height: 36px; - } -.leaflet-touch .leaflet-control-layers-toggle { - width: 44px; - height: 44px; - } -.leaflet-control-layers .leaflet-control-layers-list, -.leaflet-control-layers-expanded .leaflet-control-layers-toggle { - display: none; - } -.leaflet-control-layers-expanded .leaflet-control-layers-list { - display: block; - position: relative; - } -.leaflet-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; - } -.leaflet-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } -.leaflet-control-layers label { - display: block; - } -.leaflet-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; - } - - -/* attribution and scale controls */ - -.leaflet-container .leaflet-control-attribution { - background-color: rgba(255, 255, 255, 0.7); - box-shadow: 0 0 5px #bbb; - margin: 0; - } -.leaflet-control-attribution, -.leaflet-control-scale-line { - padding: 0 5px; - color: #333; - } -.leaflet-container .leaflet-control-attribution, -.leaflet-container .leaflet-control-scale { - font-size: 11px; - } -.leaflet-left .leaflet-control-scale { - margin-left: 5px; - } -.leaflet-bottom .leaflet-control-scale { - margin-bottom: 5px; - } -.leaflet-control-scale-line { - border: 2px solid #777; - border-top: none; - color: black; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - text-shadow: 1px 1px 1px #fff; - background-color: rgba(255, 255, 255, 0.5); - box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.2); - white-space: nowrap; - overflow: hidden; - } -.leaflet-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); - } -.leaflet-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } - -.leaflet-touch .leaflet-control-attribution, -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-control-zoom { - box-shadow: none; - } -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-control-zoom { - border: 4px solid rgba(0,0,0,0.3); - } - - -/* popup */ - -.leaflet-popup { - position: absolute; - text-align: center; - } -.leaflet-popup-content-wrapper { - padding: 1px; - text-align: left; - -webkit-border-radius: 20px; - border-radius: 20px; - } -.leaflet-popup-content { - margin: 14px 20px; - line-height: 1.4; - } -.leaflet-popup-content p { - margin: 18px 0; - } -.leaflet-popup-tip-container { - margin: 0 auto; - width: 40px; - height: 20px; - position: relative; - overflow: hidden; - } -.leaflet-popup-tip { - width: 15px; - height: 15px; - padding: 1px; - - margin: -8px auto 0; - - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); - } -.leaflet-popup-content-wrapper, .leaflet-popup-tip { - background: white; - - box-shadow: 0 3px 14px rgba(0,0,0,0.4); - } -.leaflet-container a.leaflet-popup-close-button { - position: absolute; - top: 0; - right: 0; - padding: 4px 5px 0 0; - text-align: center; - width: 18px; - height: 14px; - font: 16px/14px Tahoma, Verdana, sans-serif; - color: #c3c3c3; - text-decoration: none; - font-weight: bold; - background: transparent; - } -.leaflet-container a.leaflet-popup-close-button:hover { - color: #999; - } -.leaflet-popup-scrolled { - overflow: auto; - border-bottom: 1px solid #ddd; - border-top: 1px solid #ddd; - } - - -/* div icon */ - -.leaflet-div-icon { - background: #fff; - border: 1px solid #666; - } -.leaflet-editing-icon { - -webkit-border-radius: 2px; - border-radius: 2px; - } diff --git a/dynmap/main/css/leaflet.ie.css b/dynmap/main/css/leaflet.ie.css deleted file mode 100644 index 71de252..0000000 --- a/dynmap/main/css/leaflet.ie.css +++ /dev/null @@ -1,57 +0,0 @@ -.leaflet-vml-shape { - width: 1px; - height: 1px; - } -.lvml { - behavior: url(#default#VML); - display: inline-block; - position: absolute; - } - -.leaflet-control { - display: inline; - } - -.leaflet-popup-tip { - width: 21px; - _width: 27px; - margin: 0 auto; - _margin-top: -3px; - - filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); - -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; - } -.leaflet-popup-tip-container { - margin-top: -1px; - } -.leaflet-popup-content-wrapper, .leaflet-popup-tip { - border: 1px solid #999; - } -.leaflet-popup-content-wrapper { - zoom: 1; - } - -.leaflet-control-zoom, -.leaflet-control-layers { - border: 3px solid #999; - } -.leaflet-control-zoom a { - background-color: #eee; - } -.leaflet-control-zoom a:hover { - background-color: #fff; - } -.leaflet-control-layers-toggle { - } -.leaflet-control-attribution, -.leaflet-control-layers, -.leaflet-control-scale-line { - background: white; - } -.leaflet-zoom-box { - filter: alpha(opacity=50); - } -.leaflet-control-attribution { - border-top: 1px solid #bbb; - border-left: 1px solid #bbb; - } diff --git a/dynmap/main/css/override_example.css b/dynmap/main/css/override_example.css deleted file mode 100644 index 4dec7e2..0000000 --- a/dynmap/main/css/override_example.css +++ /dev/null @@ -1,39 +0,0 @@ -/******************* - * This is the over-ride CSS file. - * - * if you know any CSS you can easily add custom rules to change how DynMap - * looks and behaves under your DynMap installation. - * - * 1. Uncomment the override.css in the index.html. - * 2. Rename this file or create a new override.css. - * 3. Add your own rules (or steal these) to personalize how DynMap looks. - * - * By adding your own rules here, you can then save your changes - * between DynMap updates and they won't get over-written. - */ - - -/* Use the alternate compass image */ - -.compass { - top: 20px; - right: 20px; - - height: 50px; - width: 50px; - - background-image: url(../images/compass_alt.png); -} - -/* These next two keep the DynMap sidebar open... */ - -.dynmap .sidebar { - margin-right: 0px; -} - -/* ...and hide the hitbar along with the sidebar controls */ - -.dynmap .sidebar .hitbar, -.dynmap .sidebar .panel > .pin { - display: none; -} \ No newline at end of file diff --git a/dynmap/main/css/regions.css b/dynmap/main/css/regions.css deleted file mode 100644 index efc6fcb..0000000 --- a/dynmap/main/css/regions.css +++ /dev/null @@ -1,35 +0,0 @@ -.regioninfo > * { - display: block; -} - -.regioninfo > *:empty { - display: none; -} - -.regioninfo .regionname { - font-size: 120%; - font-weight: bold; -} - -.regioninfo .regionflags .regionflag { - display: block; - font-size: 90%; - color: gray; - margin-left: 5px; -} - -.regioninfo .owners:before { - content: "Owners: "; -} - -.regioninfo .members:before { - content: "Members: "; -} - -.regioninfo .regionflags:before { - content: "Flags: "; -} - -.regioninfo .regionpriority:before { - content: "Priority: "; -} \ No newline at end of file diff --git a/dynmap/main/css/standalone.css b/dynmap/main/css/standalone.css deleted file mode 100644 index 4102c2d..0000000 --- a/dynmap/main/css/standalone.css +++ /dev/null @@ -1,41 +0,0 @@ -/* Standalone Document */ - -html { - width: 100%; - height: 100% -} - -body { - height: 100%; - - font-family: sans-serif; - font-size: 11px; - - color: #fff; - background: #000; - - margin: 0px; - padding: 0px ; -} - -/* Chat Balloons */ - -#content { color: #000; } - -#mcmap { width: 100%; height: 100%;} - -.dynmap { - width: 100%; - height: 100%; - overflow: hidden; - position: absolute; -} - -.dynmap .sidebar { - width: 200px; /* original width 200px */ - margin-right: -203px; /* original margin 203px, sidebar width +2xborder 1px +1px to hide */ -} - -.dynmap .hitbar { - right: 200px; /* width of sidebar */ -} \ No newline at end of file diff --git a/dynmap/main/gettiles.php b/dynmap/main/gettiles.php deleted file mode 100644 index 159e69e..0000000 --- a/dynmap/main/gettiles.php +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/dynmap/main/images/BiomeKey.png b/dynmap/main/images/BiomeKey.png deleted file mode 100644 index cb9da47..0000000 Binary files a/dynmap/main/images/BiomeKey.png and /dev/null differ diff --git a/dynmap/main/images/armor.png b/dynmap/main/images/armor.png deleted file mode 100644 index 0044af1..0000000 Binary files a/dynmap/main/images/armor.png and /dev/null differ diff --git a/dynmap/main/images/armor_depleted.png b/dynmap/main/images/armor_depleted.png deleted file mode 100644 index c9bdc24..0000000 Binary files a/dynmap/main/images/armor_depleted.png and /dev/null differ diff --git a/dynmap/main/images/blank.png b/dynmap/main/images/blank.png deleted file mode 100644 index e0d1092..0000000 Binary files a/dynmap/main/images/blank.png and /dev/null differ diff --git a/dynmap/main/images/block_nether_flat.png b/dynmap/main/images/block_nether_flat.png deleted file mode 100644 index 298cdf9..0000000 Binary files a/dynmap/main/images/block_nether_flat.png and /dev/null differ diff --git a/dynmap/main/images/block_nether_surface.png b/dynmap/main/images/block_nether_surface.png deleted file mode 100644 index d6d1a51..0000000 Binary files a/dynmap/main/images/block_nether_surface.png and /dev/null differ diff --git a/dynmap/main/images/block_other.png b/dynmap/main/images/block_other.png deleted file mode 100644 index 6756844..0000000 Binary files a/dynmap/main/images/block_other.png and /dev/null differ diff --git a/dynmap/main/images/block_skylands.png b/dynmap/main/images/block_skylands.png deleted file mode 100644 index 641155f..0000000 Binary files a/dynmap/main/images/block_skylands.png and /dev/null differ diff --git a/dynmap/main/images/block_the_end_flat.png b/dynmap/main/images/block_the_end_flat.png deleted file mode 100644 index 574d213..0000000 Binary files a/dynmap/main/images/block_the_end_flat.png and /dev/null differ diff --git a/dynmap/main/images/block_the_end_surface.png b/dynmap/main/images/block_the_end_surface.png deleted file mode 100644 index 69bcc32..0000000 Binary files a/dynmap/main/images/block_the_end_surface.png and /dev/null differ diff --git a/dynmap/main/images/block_world_biome.png b/dynmap/main/images/block_world_biome.png deleted file mode 100644 index a72932a..0000000 Binary files a/dynmap/main/images/block_world_biome.png and /dev/null differ diff --git a/dynmap/main/images/block_world_cave.png b/dynmap/main/images/block_world_cave.png deleted file mode 100644 index b6a547b..0000000 Binary files a/dynmap/main/images/block_world_cave.png and /dev/null differ diff --git a/dynmap/main/images/block_world_flat.png b/dynmap/main/images/block_world_flat.png deleted file mode 100644 index 1a511bd..0000000 Binary files a/dynmap/main/images/block_world_flat.png and /dev/null differ diff --git a/dynmap/main/images/block_world_surface.png b/dynmap/main/images/block_world_surface.png deleted file mode 100644 index 603c6d5..0000000 Binary files a/dynmap/main/images/block_world_surface.png and /dev/null differ diff --git a/dynmap/main/images/book.png b/dynmap/main/images/book.png deleted file mode 100644 index 727dcda..0000000 Binary files a/dynmap/main/images/book.png and /dev/null differ diff --git a/dynmap/main/images/cave_off.png b/dynmap/main/images/cave_off.png deleted file mode 100644 index 500d987..0000000 Binary files a/dynmap/main/images/cave_off.png and /dev/null differ diff --git a/dynmap/main/images/cave_on.png b/dynmap/main/images/cave_on.png deleted file mode 100644 index 0639576..0000000 Binary files a/dynmap/main/images/cave_on.png and /dev/null differ diff --git a/dynmap/main/images/chat_bubble.png b/dynmap/main/images/chat_bubble.png deleted file mode 100644 index 51e11a4..0000000 Binary files a/dynmap/main/images/chat_bubble.png and /dev/null differ diff --git a/dynmap/main/images/chat_cursor.png b/dynmap/main/images/chat_cursor.png deleted file mode 100644 index e3d38ab..0000000 Binary files a/dynmap/main/images/chat_cursor.png and /dev/null differ diff --git a/dynmap/main/images/clock_day.png b/dynmap/main/images/clock_day.png deleted file mode 100644 index 6ed0dae..0000000 Binary files a/dynmap/main/images/clock_day.png and /dev/null differ diff --git a/dynmap/main/images/clock_night.png b/dynmap/main/images/clock_night.png deleted file mode 100644 index 0832f0c..0000000 Binary files a/dynmap/main/images/clock_night.png and /dev/null differ diff --git a/dynmap/main/images/compass.png b/dynmap/main/images/compass.png deleted file mode 100644 index 2614dd3..0000000 Binary files a/dynmap/main/images/compass.png and /dev/null differ diff --git a/dynmap/main/images/compass_E.png b/dynmap/main/images/compass_E.png deleted file mode 100644 index a12f987..0000000 Binary files a/dynmap/main/images/compass_E.png and /dev/null differ diff --git a/dynmap/main/images/compass_N.png b/dynmap/main/images/compass_N.png deleted file mode 100644 index 4794e36..0000000 Binary files a/dynmap/main/images/compass_N.png and /dev/null differ diff --git a/dynmap/main/images/compass_NE.png b/dynmap/main/images/compass_NE.png deleted file mode 100644 index e4c6574..0000000 Binary files a/dynmap/main/images/compass_NE.png and /dev/null differ diff --git a/dynmap/main/images/compass_NW.png b/dynmap/main/images/compass_NW.png deleted file mode 100644 index b657abf..0000000 Binary files a/dynmap/main/images/compass_NW.png and /dev/null differ diff --git a/dynmap/main/images/compass_SW.png b/dynmap/main/images/compass_SW.png deleted file mode 100644 index f85c0d3..0000000 Binary files a/dynmap/main/images/compass_SW.png and /dev/null differ diff --git a/dynmap/main/images/compass_W.png b/dynmap/main/images/compass_W.png deleted file mode 100644 index a90055f..0000000 Binary files a/dynmap/main/images/compass_W.png and /dev/null differ diff --git a/dynmap/main/images/compass_alt.png b/dynmap/main/images/compass_alt.png deleted file mode 100644 index 0e7cc4b..0000000 Binary files a/dynmap/main/images/compass_alt.png and /dev/null differ diff --git a/dynmap/main/images/compass_flat.png b/dynmap/main/images/compass_flat.png deleted file mode 100644 index 3a81604..0000000 Binary files a/dynmap/main/images/compass_flat.png and /dev/null differ diff --git a/dynmap/main/images/dynmap.ico b/dynmap/main/images/dynmap.ico deleted file mode 100644 index 035da52..0000000 Binary files a/dynmap/main/images/dynmap.ico and /dev/null differ diff --git a/dynmap/main/images/follow_off.png b/dynmap/main/images/follow_off.png deleted file mode 100644 index ba506d0..0000000 Binary files a/dynmap/main/images/follow_off.png and /dev/null differ diff --git a/dynmap/main/images/follow_on.png b/dynmap/main/images/follow_on.png deleted file mode 100644 index 2fb7be7..0000000 Binary files a/dynmap/main/images/follow_on.png and /dev/null differ diff --git a/dynmap/main/images/heart.png b/dynmap/main/images/heart.png deleted file mode 100644 index fba8477..0000000 Binary files a/dynmap/main/images/heart.png and /dev/null differ diff --git a/dynmap/main/images/heart_depleted.png b/dynmap/main/images/heart_depleted.png deleted file mode 100644 index c8aef57..0000000 Binary files a/dynmap/main/images/heart_depleted.png and /dev/null differ diff --git a/dynmap/main/images/home.png b/dynmap/main/images/home.png deleted file mode 100644 index 5b15f03..0000000 Binary files a/dynmap/main/images/home.png and /dev/null differ diff --git a/dynmap/main/images/list_off.png b/dynmap/main/images/list_off.png deleted file mode 100644 index b7be11b..0000000 Binary files a/dynmap/main/images/list_off.png and /dev/null differ diff --git a/dynmap/main/images/list_on.png b/dynmap/main/images/list_on.png deleted file mode 100644 index 285f76e..0000000 Binary files a/dynmap/main/images/list_on.png and /dev/null differ diff --git a/dynmap/main/images/moon.png b/dynmap/main/images/moon.png deleted file mode 100644 index 0283a87..0000000 Binary files a/dynmap/main/images/moon.png and /dev/null differ diff --git a/dynmap/main/images/player.png b/dynmap/main/images/player.png deleted file mode 100644 index 212039f..0000000 Binary files a/dynmap/main/images/player.png and /dev/null differ diff --git a/dynmap/main/images/player_death.png b/dynmap/main/images/player_death.png deleted file mode 100644 index 9abd211..0000000 Binary files a/dynmap/main/images/player_death.png and /dev/null differ diff --git a/dynmap/main/images/player_face.png b/dynmap/main/images/player_face.png deleted file mode 100644 index 206c6f3..0000000 Binary files a/dynmap/main/images/player_face.png and /dev/null differ diff --git a/dynmap/main/images/player_follow_off.png b/dynmap/main/images/player_follow_off.png deleted file mode 100644 index 935e7c6..0000000 Binary files a/dynmap/main/images/player_follow_off.png and /dev/null differ diff --git a/dynmap/main/images/player_follow_on.gif b/dynmap/main/images/player_follow_on.gif deleted file mode 100644 index 6937e81..0000000 Binary files a/dynmap/main/images/player_follow_on.gif and /dev/null differ diff --git a/dynmap/main/images/player_follow_on.png b/dynmap/main/images/player_follow_on.png deleted file mode 100644 index fa790c5..0000000 Binary files a/dynmap/main/images/player_follow_on.png and /dev/null differ diff --git a/dynmap/main/images/player_travel.png b/dynmap/main/images/player_travel.png deleted file mode 100644 index 03ea756..0000000 Binary files a/dynmap/main/images/player_travel.png and /dev/null differ diff --git a/dynmap/main/images/scrolldown.png b/dynmap/main/images/scrolldown.png deleted file mode 100644 index 9d07aa6..0000000 Binary files a/dynmap/main/images/scrolldown.png and /dev/null differ diff --git a/dynmap/main/images/scrollup.png b/dynmap/main/images/scrollup.png deleted file mode 100644 index b6b6c0c..0000000 Binary files a/dynmap/main/images/scrollup.png and /dev/null differ diff --git a/dynmap/main/images/server.png b/dynmap/main/images/server.png deleted file mode 100644 index e28417c..0000000 Binary files a/dynmap/main/images/server.png and /dev/null differ diff --git a/dynmap/main/images/sidebar_hint.png b/dynmap/main/images/sidebar_hint.png deleted file mode 100644 index 15e2b7d..0000000 Binary files a/dynmap/main/images/sidebar_hint.png and /dev/null differ diff --git a/dynmap/main/images/sign.png b/dynmap/main/images/sign.png deleted file mode 100644 index 8d8573c..0000000 Binary files a/dynmap/main/images/sign.png and /dev/null differ diff --git a/dynmap/main/images/sign_home.png b/dynmap/main/images/sign_home.png deleted file mode 100644 index 5ecfcec..0000000 Binary files a/dynmap/main/images/sign_home.png and /dev/null differ diff --git a/dynmap/main/images/sign_sign.png b/dynmap/main/images/sign_sign.png deleted file mode 100644 index 5eae09b..0000000 Binary files a/dynmap/main/images/sign_sign.png and /dev/null differ diff --git a/dynmap/main/images/sign_sign_alt.png b/dynmap/main/images/sign_sign_alt.png deleted file mode 100644 index 9834150..0000000 Binary files a/dynmap/main/images/sign_sign_alt.png and /dev/null differ diff --git a/dynmap/main/images/sign_warp.png b/dynmap/main/images/sign_warp.png deleted file mode 100644 index 9f05e51..0000000 Binary files a/dynmap/main/images/sign_warp.png and /dev/null differ diff --git a/dynmap/main/images/spawn.png b/dynmap/main/images/spawn.png deleted file mode 100644 index 177650b..0000000 Binary files a/dynmap/main/images/spawn.png and /dev/null differ diff --git a/dynmap/main/images/sun.png b/dynmap/main/images/sun.png deleted file mode 100644 index 40e3962..0000000 Binary files a/dynmap/main/images/sun.png and /dev/null differ diff --git a/dynmap/main/images/warp.png b/dynmap/main/images/warp.png deleted file mode 100644 index 8ed89e7..0000000 Binary files a/dynmap/main/images/warp.png and /dev/null differ diff --git a/dynmap/main/images/weather_stormy.png b/dynmap/main/images/weather_stormy.png deleted file mode 100644 index 45808fb..0000000 Binary files a/dynmap/main/images/weather_stormy.png and /dev/null differ diff --git a/dynmap/main/images/weather_stormy_day.png b/dynmap/main/images/weather_stormy_day.png deleted file mode 100644 index dea2320..0000000 Binary files a/dynmap/main/images/weather_stormy_day.png and /dev/null differ diff --git a/dynmap/main/images/weather_stormy_night.png b/dynmap/main/images/weather_stormy_night.png deleted file mode 100644 index fe08ba8..0000000 Binary files a/dynmap/main/images/weather_stormy_night.png and /dev/null differ diff --git a/dynmap/main/images/weather_sunny.png b/dynmap/main/images/weather_sunny.png deleted file mode 100644 index 8ef8cbd..0000000 Binary files a/dynmap/main/images/weather_sunny.png and /dev/null differ diff --git a/dynmap/main/images/weather_sunny_day.png b/dynmap/main/images/weather_sunny_day.png deleted file mode 100644 index 94ce5b0..0000000 Binary files a/dynmap/main/images/weather_sunny_day.png and /dev/null differ diff --git a/dynmap/main/images/weather_sunny_night.png b/dynmap/main/images/weather_sunny_night.png deleted file mode 100644 index fe4fd8b..0000000 Binary files a/dynmap/main/images/weather_sunny_night.png and /dev/null differ diff --git a/dynmap/main/images/weather_thunder.png b/dynmap/main/images/weather_thunder.png deleted file mode 100644 index 07bbfc0..0000000 Binary files a/dynmap/main/images/weather_thunder.png and /dev/null differ diff --git a/dynmap/main/images/weather_thunder_day.png b/dynmap/main/images/weather_thunder_day.png deleted file mode 100644 index 8900521..0000000 Binary files a/dynmap/main/images/weather_thunder_day.png and /dev/null differ diff --git a/dynmap/main/images/weather_thunder_night.png b/dynmap/main/images/weather_thunder_night.png deleted file mode 100644 index 63b359e..0000000 Binary files a/dynmap/main/images/weather_thunder_night.png and /dev/null differ diff --git a/dynmap/main/images/window_close.png b/dynmap/main/images/window_close.png deleted file mode 100644 index 586de30..0000000 Binary files a/dynmap/main/images/window_close.png and /dev/null differ diff --git a/dynmap/main/images/window_close_hover.png b/dynmap/main/images/window_close_hover.png deleted file mode 100644 index 08656f6..0000000 Binary files a/dynmap/main/images/window_close_hover.png and /dev/null differ diff --git a/dynmap/main/images/window_open.png b/dynmap/main/images/window_open.png deleted file mode 100644 index f84684c..0000000 Binary files a/dynmap/main/images/window_open.png and /dev/null differ diff --git a/dynmap/main/images/window_pinned.png b/dynmap/main/images/window_pinned.png deleted file mode 100644 index 9051e4f..0000000 Binary files a/dynmap/main/images/window_pinned.png and /dev/null differ diff --git a/dynmap/main/images/window_pinned_hover.png b/dynmap/main/images/window_pinned_hover.png deleted file mode 100644 index e1f963d..0000000 Binary files a/dynmap/main/images/window_pinned_hover.png and /dev/null differ diff --git a/dynmap/main/images/window_unpinned.png b/dynmap/main/images/window_unpinned.png deleted file mode 100644 index f84684c..0000000 Binary files a/dynmap/main/images/window_unpinned.png and /dev/null differ diff --git a/dynmap/main/images/zoom_in.png b/dynmap/main/images/zoom_in.png deleted file mode 100644 index 8b91d8d..0000000 Binary files a/dynmap/main/images/zoom_in.png and /dev/null differ diff --git a/dynmap/main/images/zoom_out.png b/dynmap/main/images/zoom_out.png deleted file mode 100644 index 9af74b2..0000000 Binary files a/dynmap/main/images/zoom_out.png and /dev/null differ diff --git a/dynmap/main/inactive.html b/dynmap/main/inactive.html deleted file mode 100644 index 521ef2f..0000000 --- a/dynmap/main/inactive.html +++ /dev/null @@ -1,20 +0,0 @@ - -Minecraft Dynamic Map - Inactive - - -
-

Map disabled due to inactivity.

-Click here to go back -
- - \ No newline at end of file diff --git a/dynmap/main/index.html b/dynmap/main/index.html deleted file mode 100644 index 71e2aaa..0000000 --- a/dynmap/main/index.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - Minecraft Dynamic Map - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/dynmap/main/js/chat.js b/dynmap/main/js/chat.js deleted file mode 100644 index e71f03e..0000000 --- a/dynmap/main/js/chat.js +++ /dev/null @@ -1,47 +0,0 @@ - -componentconstructors['chat'] = function(dynmap, configuration) { - var me = this; - - if(dynmap.getBoolParameterByName("hidechat")) - return; - - // Provides 'chat'-events by monitoring the world-updates. - $(dynmap).bind('worldupdate', function(event, update) { - swtch(update.type, { - chat: function() { - $(dynmap).trigger('chat', [{source: update.source, name: update.playerName, text: update.message, account: update.account, - channel: update.channel}]); - } - }); - }); - var pname = null; - if(configuration.allowurlname) { - pname = dynmap.getParameterByName("chatname"); - if(pname == "") pname = null; - } - - if (dynmap.options.allowwebchat) { - // Accepts 'sendchat'-events to send chat messages to the server. - $(dynmap).bind('sendchat', function(event, message) { - var data = '{"name":'+JSON.stringify(pname?pname:"")+',"message":'+JSON.stringify(message)+'}'; - $.ajax({ - type: 'POST', - contentType: "application/json; charset=utf-8", - url: config.url.sendmessage, - data: data, - dataType: 'json', - success: function(response) { - if(response.error != "none") { - var msg = dynmap.options['msg-chatnotallowed']; - $(dynmap).trigger('chat', [{source: 'me', name: 'Error', text: msg }]); - } - }, - error: function(xhr) { - if (xhr.status === 403) { - $(dynmap).trigger('chat', [{source: 'me', name: 'Error', text: dynmap.options.spammessage.replace('%interval%', dynmap.options['webchat-interval'])}]); - } - } - }); - }); - } -}; diff --git a/dynmap/main/js/chatballoon.js b/dynmap/main/js/chatballoon.js deleted file mode 100644 index 8e5c4d3..0000000 --- a/dynmap/main/js/chatballoon.js +++ /dev/null @@ -1,69 +0,0 @@ -componentconstructors['chatballoon'] = function(dynmap, configuration) { - var me = this; - - if(dynmap.getBoolParameterByName("hidechat")) - return; - - me.chatpopups = {}; - $(dynmap).bind('playerupdated', function(event, player) { - var popup = me.chatpopups[player.account]; - if (popup) { - var markerPosition = dynmap.getProjection().fromLocationToLatLng(player.location); - popup.layer.setLatLng(markerPosition); - } - }); - $(dynmap).bind('worldchanged', function() { - $.each(me.chatpopups, function(name, popup) { - popup.close(); - }); - }); - $(dynmap).bind('chat', function(event, message) { - if (message.source != 'player') { - return; - } - var player = dynmap.players[message.account]; - if (!player) - return; - if (dynmap.world !== player.location.world) { - return; - } - var popupPosition = dynmap.getProjection().fromLocationToLatLng(player.location); - var popup = me.chatpopups[message.account]; - if (!popup) { - me.chatpopups[message.account] = popup = { - layer: new L.Popup({autoPan: configuration.focuschatballoons, closeButton: false}), - content: $('
').addClass('balloonmessages')[0] - }; - popup.layer.setContent($(popup.content).html()); - - popup.close = function() { - if (popup.timeout) { window.clearTimeout(popup.timeout); } - dynmap.map.removeLayer(popup.layer); - delete me.chatpopups[message.account]; - }; - - popup.layer.setLatLng(popupPosition); - dynmap.map.addLayer(popup.layer); - } - - // Add line to balloon. - $('
').addClass('balloonmessage').text(chat_encoder(message)).appendTo(popup.content); - - // Remove older lines when too many messages are shown. - var children = $(popup.content).children(); - if (children.length > 5) { - $(children[0]).remove(); - } - - popup.layer.setContent($(popup.content).html()); - - if (popup.timeout) { window.clearTimeout(popup.timeout); } - popup.timeout = window.setTimeout(function() { - popup.close(); - }, 8000); - - if (configuration.focuschatballoons) { - dynmap.panToLatLng(popupPosition); - } - }); -}; \ No newline at end of file diff --git a/dynmap/main/js/chatbox.js b/dynmap/main/js/chatbox.js deleted file mode 100644 index ae9bca2..0000000 --- a/dynmap/main/js/chatbox.js +++ /dev/null @@ -1,153 +0,0 @@ -componentconstructors['chatbox'] = function(dynmap, configuration) { - var me = this; - - if(dynmap.getBoolParameterByName("hidechat")) - return; - var chat = $('
') - .addClass('chat') - .appendTo(dynmap.options.container); - var messagelist = $('
') - .addClass('messagelist') - .appendTo(chat); - - if (configuration.visiblelines) { - messagelist.css('max-height', configuration.visiblelines + 'em'); - } - else { - messagelist.css('max-height', '6em'); - } - - if (configuration.scrollback) { - messagelist.addClass('scrollback') - .click( function() { $(this).hide(); } ); - } - - if (dynmap.options.allowwebchat) { - if(dynmap.options.loggedin || !dynmap.options['webchat-requires-login']) { - var chatinput = $('') - .addClass('chatinput') - .attr({ - id: 'chatinput', - type: 'text', - value: '', - maxlength: dynmap.options.chatlengthlimit - }) - .keydown(function(event) { - if (event.keyCode == '13') { - event.preventDefault(); - if(chatinput.val() != '') { - $(dynmap).trigger('sendchat', [chatinput.val()]); - chatinput.val(''); - } - } - }); - if(configuration.sendbutton) { - var chatbutton = $('