itzg/minecraft-server keeps re-adding removed whitelist/OP entries after deop/whitelist remove — what am I missing?

U

/u/olarized

Guest
I’m running a Minecraft Java server in Docker with itzg/minecraft-server and I’m stuck in a really confusing loop. The docker container and presets are based on viren070s Docker stack and I basically used it as is, as I am a total noob and wanted to give my nephew and his friends something to game on. Now I've got a lot to learn and hope you will not dismiss me entirely. If I made mistakes or did something completely stupid, please let me know. I am willing to learn. Here goes.

I can remove players from OP and whitelist through the console/RCON, but after a while — or after restarting/recreating the container — removed users come back. In the worst case, removing one player seems to cause other old entries to reappear as well. Also, recently I am able to deop players and the op.json reflects that, but the moment, the deoped player comes back online, all removed players are back as op in ops.json.

My setup is based on a Compose stack, and the relevant parts look like this:

services: minecraft: image: itzg/minecraft-server:latest restart: unless-stopped tty: true stdin_open: true container_name: minecraft ports: - "25565:25565" environment: UID: ${PUID} PGID: ${PGID} EULA: "TRUE" TYPE: ${MINECRAFT_SERVER_TYPE:-PAPER} MEMORY: ${MINECRAFT_SERVER_MEMORY:-8G} MOTD: ${MINECRAFT_SERVER_MOTD:-"A Minecraft Server"} OVERRIDE_ICON: ${MINECRAFT_SERVER_OVERRIDE_ICON:-} ICON: ${MINECRAFT_SERVER_ICON:-} USE_AIKAR_FLAGS: "TRUE" TZ: ${TZ:-UTC} DIFFICULTY: "2" VIEW_DISTANCE: ${MINECRAFT_SERVER_VIEW_DISTANCE:-10} #OPS: |- # ${MINECRAFT_SERVER_OP:-} EXISTING_OPS_FILE: SKIP ENABLE_WHITE_LIST: ${MINECRAFT_SERVER_ENABLE_WHITE_LIST:-false} #WHITELIST: ${MINECRAFT_SERVER_WHITELIST:-} RCON_PASSWORD: ${MINECRAFT_RCON_PASSWORD:-} PLUGINS: |- volumes: - "${DOCKER_DATA_DIR}/minecraft:/data" profiles: - minecraft - all

And my .env contains:

MINECRAFT_SERVER_OP=<single operator name> MINECRAFT_SERVER_ENABLE_WHITELIST=true MINECRAFT_SERVER_WHITELIST=<multiple usernames>

I intentionally removed one user from the whitelist, but they still show up in-game and in whitelist.json / ops.json after changes.

What I already tried:

  • deop <player> in the console.
  • whitelist remove <player> in the console.
  • whitelist reload.
  • docker compose up -d --force-recreate.
  • Checking docker inspect for the effective environment variables.
  • Grepping the project directories for WHITELIST, OPS, and related variables.
  • Checking /data/whitelist.json, /data/ops.json, and latest.log. and deleting or backing those up in bak files

What I found:

  • docker inspect shows the container is still receiving a WHITELIST=... value with multiple players.
  • whitelist.json and ops.json inside /data contain entries that I thought I had removed.
  • latest.log shows that removals happened, but the entries came back later, either after container restart after update and once a player that I deoped joined the server again

My current suspicion is that the image is synchronizing whitelist/ops from the environment on startup, which should be properly configured from what I can see though.

My question(s):

What is the correct way to manage whitelist and OP entries with itzg/minecraft-server so removed users stay removed, and how do I stop the container from reapplying old env-based entries on restart?

Should I just start from scratch? If so, how do I backup the world but nothing else, so that the kids can keep what they built?

Is there a better way to set this up than from the container-setup I am using? I would like to include the MC environment in the stack though, since I feel the setup is quite well thought out and mostly intrusion-proof.

I hope someone has an idea. Thanks in advance. If anything is missing I'll gladly try to find the relevant infos.

submitted by /u/olarized
[link] [comments]

Continue reading...
 
Back
Top