I made this for myself to play with my kid locally on the same network from different devices with different versions Java and Bedrock editions (MacBook and iPad).
Sharing in case it helps someone else. Click star ⭐️ if you find it useful!
This repository contains instructions and configurations to set up a local Minecraft server on your Mac using Docker. The server supports both Java Edition and Bedrock Edition clients, allowing you to play with friends on the same network.
The main feature - it allows to play together from Mac OS, Linux, Windows (Java Edition) and iOS (iPhone, iPad), Android, XBox, and other mobile devices (Bedrock Edition) using GeyserMC and Floodgate plugins.
- Docker installed on your Mac / Linux / Windows (which will be server host). Can be downloaded from here
- At least 4GB RAM allocated to Docker (you can try with less, but performance may be affected)
- Ports
25565(Java) and19132(Bedrock) available - Basic knowledge of terminal/command line
- PlayIt account to make it accessible over the internet (optional, sometimes it may be required for Bedrock clients)
- Git and Makefile installed (optional, for easier commands)
# clone repository
git clone github.com/wowkin2/minecraft-server.git
# Create account on PlayIt.gg (optional, for internet access)
# Create `.secret_key` file with your PlayIt secret key (if using PlayIt)
# Start Minecraft server
make start
# Start agent for PlayIt (if using PlayIt)
make online
# View server logs
make logs
# Stop the server
make stop-
Clone the Repository
git clone github.com/wowkin2/minecraft-server.git cd minecraft-server -
Start the Server
docker compose up -d
This command will download the necessary Docker image and start the Minecraft server with GeyserMC and Floodgate plugins.
-
Monitor the First Startup The first time will take 3-5 minutes to download everything. Watch the progress:
docker compose logs -f
Wait until you see: "Done! For help, type 'help'"
Press
Ctrl+Cto exit the logs (server keeps running). -
Check if Server is Running
Use Docker Desktop app or run:
docker compose ps
You should see the container status as "running".
-
Connect from MacBook (Java Edition)
- Open Minecraft Java Edition
- Multiplayer > Add Server
- Server Address:
localhostor<Mac IP address>(e.g.,192.168.0.100or192.168.1.100) - Save and Join
-
Connect from iPad (Bedrock Edition)
- Open Minecraft Bedrock Edition
- Play > Servers > Add Server
- Server Name:
My Server - Server Address:
<IP address of your Mac WiFi connection>(e.g.,192.168.0.100) - Port:
19132 - Save and Join
-
Optional: Make the Server Accessible Over the Internet
- If you want to make the server accessible over the internet or you'll have issues accessing within local network (firewall rules or router restrictions) - use PlayIt. It's free.
- Follow their instructions to set up a tunnel for ports
19132and25565(if needed too). - As result they will provide you with public addresses to connect from anywhere, which should be used as Server Address in Minecraft clients.
- And also with secret key to run PlayIt client on the server host machine:
docker exec -it minecraft-server_minecraft_1 /bin/sh wget https://playit.gg/downloads/playit-linux-amd64 chmod +x playit-linux-amd64 ./playit-linux-amd64 -key YOUR_SECRET_KEY -
Stop the Server
cd minecraft-server docker compose stop
- The server uses the
itzg/minecraft-serverDocker image with GeyserMC and Floodgate plugins pre-installed. - World data is stored in the
./datadirectory on the host machine, so it persists across container restarts. - You can customize server properties by modifying the
docker-compose.ymlfile.
- World:
data/world/ - Config:
data/server.properties - Plugins:
data/plugins/ - Logs:
data/logs/
To restrict access to specific players, enable the whitelist in data/server.properties:
Then add players using RCON commands:
docker exec -i minecraft-server_minecraft_1 rcon-cli whitelist add <username>You can manage the server using RCON:
docker exec -i minecraft-server_minecraft_1 rcon-cliCommon commands:
list- Show online playersop <username>- Make player an operatorwhitelist add <username>- Add player to whiteliststop- Stop server gracefully- Type
exitto leave rcon-cli.
- If you cannot connect from Bedrock clients, ensure that your firewall allows traffic on port
19132. - If using PlayIt, ensure the tunnel is active and correctly configured.
- Check server logs for errors:
docker compose logs -f
- Make sure both devices (server host and client) are on the same network for local connections.
- If the server is not starting, check the logs for errors and ensure Docker has enough resources allocated.
- If you face issues with PlayIt, refer to their documentation or support for help.
- Ensure your Minecraft client versions are compatible with the server version.