This project implements a Docker container for MCASelector.
I used the jlesage jlesage/docker-baseimage-gui with Ubuntu 22.04 as the base image to build this container (alpine do not work due to MCASelector requiring JavaFX).
The project allows Minecraft admins to modify chunks with a powerful GUI tool directly in browser without having to copy and paste the world save to a local machine. This could be useful for editing worlds on a VPS/headless server, editing a world with slow non-local network/VPN connections or allowing multiple admins to edit the world without constantly transferring the world save.

Fullscreen do not work - this is documented in here
If you know the cause or how to fix this, feel free to make a pull request.
NOTE: The Docker command provided in this quick start is given as an example and parameters should be adjusted to your need.
Launch the MCASelector docker container with the following command:
docker run -d \
--name=mcaselector \
-p 5800:5800 \
-v /docker/minecraft-server/world:/world:rw \
-v /appdata/mcaselector:/config:rw \
vttc08/mcaselector
Where:
/appdata/mcaselector: This is where the application stores its configuration, states, log and any files needing persistency./docker/minecraft-server/world: This is where the world save of Minecraft Java Edition which you want to edit in MCASelector.⚠ MCA Selector modifies and deletes chunks in your Minecraft world. Please make backups of your world before using.
Browse to http://your-host-ip:5800 to access the MCASelector GUI.
version: '3'
services:
mcaselector:
image: vttc08/mcaselector
container_name: mcaselector
ports:
- "5800:5800"
- "5900:5900"
volumes:
- "/docker/minecraft-server/world:/world:rw"
- "/appdata/mcaselector:/config:rw"
environment:
- USER_ID=1000
- GROUP_ID=1000
- TZ=America/New_York
- KEEP_APP_RUNNING=1
- MEMORY=4G
restart: unless-stopped
| Parameter | Description |
|---|---|
| port 5800 | The noVNC port to access the GUI in a web browser |
| port 5900 | The VNC port that is used to access the GUI with a VNC client |
| volumes | Check Docker Run Command for more information |
| USER_ID/GROUP_ID | The user/group ID that should run the application. See User/Group IDs for more information. |
| TZ | Time zone, check here for supported timezone variables |
| KEEP_APP_RUNNING | By default is not enabled. Set to 1 so the container will restart the app if it crash or exits. Could be useful if you want to force restart the app by quitting it in the GUI. |
| Memory | The amount of memory to allocate to the container eg. 4G, 4096M. Default is 4G which is recommended by MCASelector wiki. If you're running on paid VPS hosting with limited RAM or sharing resource with Minecraft server, you can lower this. Any RAM assignment lower than 400MB the app will crash often. To avoid it with low RAM, you can take advantage that this app cannot fullscreen to adjust the window size smaller, avoid rapid movement and do not load large worlds. |
To update the container, you can run the following commands which will pull the latest container image, then re-run the container with the same parameters as before:
docker pull vttc08/mcaselector
or using docker compose
docker compose pull
docker compose up -d --force-recreate
This container image may not follow the latest release of MCASelector or you want to run a different version of MCASelector without building an entire container. To update:
wget or curl on your server.
/config with the new jar filedocker cp mcaselector.jar mcaselector:/config
To documentation for MCASelector can be found here.
There are also YouTube tutorials
Not all features of MCASelector may work, if you encounter any issues and do not encounter it when running MCASelector natively, please open an issue here.
The above docker-compose file is a good starting point for configuring jlesage GUI containers. For advanced configuration such as changing the resolution, password authentication, ports and logging, consult the base image documentation for those options.
If you want to contribute to this project, you can fork/clone this repository and make a pull request.
git clone https://github.com/vttc08/docker-mcaselector.git
cd docker-mcaselector
Build the image
docker build . -t mcaselector
If you want to publish the image via Github Action. Make sure to set the DOCKER_USERNAME and DOCKER_TOKEN in the repository secrets and change DOCKER_IMAGE_NAME in .github/workflows/build-image.yml.
jlesage images uses rootfs/etc/openbox/main-window-selection.xml to make a window fullscreen. You can read official documentation on the full screen here. Change the main-window-selection.xml to this to reproduce.
<Type>normal</Type>
<Name>net.querz.mcaselector.ui.Windows</Name>
Content type
Image
Digest
sha256:e420f4e9e…
Size
313.6 MB
Last updated
about 2 years ago
docker pull vttc08/mcaselector