A Minecraft server setup configured to run on Google's Project IDX environment with automatic tunneling via playit.gg.
This project provides a complete Minecraft server environment that:
- Runs on Project IDX using Nix configuration
- Uses Java 21 (JDK 21) for optimal performance
- Automatically starts with playit.gg tunneling for external access
- Allocates 29GB RAM for the server
- Runs in a screen session for background operation
- Google Project IDX workspace
- Minecraft server JAR file (see Setup section)
- playit.gg account (for external server access)
minecraft-idx/
├── dev.nix # Nix configuration for Project IDX
├── start.sh # Server startup script
├── playit # playit.gg tunnel binary
└── server/
├── server.jar # Minecraft server JAR (not included)
└── readme.md # Server directory instructions
Download your preferred Minecraft server JAR file and place it in the server/ directory:
cd server
# Download your server JAR, for example:
# wget https://papermc.io/api/v2/projects/paper/versions/1.20.4/builds/xyz/downloads/paper-1.20.4-xyz.jar -O server.jar- Sign up at playit.gg
- The
playitbinary will start automatically and provide a tunnel URL - Follow the authentication prompts when first running
Before the server can start, you need to accept the EULA:
cd server
# After first run, edit eula.txt and change eula=false to eula=trueThe server is configured to start automatically when the IDX workspace starts. You can also manually start it:
./start.shThis script will:
- Start playit.gg in a screen session named
playit - Launch the Minecraft server with 29GB RAM allocation
To view the playit tunnel information:
screen -r playitTo detach from a screen session: Press Ctrl+A then D
The server is configured with 29GB RAM by default. To adjust this, edit start.sh:
java -Xms29G -Xmx29G -jar server.jarChange 29G to your desired amount (e.g., 4G, 8G, 16G).
The dev.nix file includes:
jdk21- Java Development Kit 21unzip- For extracting archivesscreen- For background process management
- Check the playit screen session for your tunnel URL
- Share the tunnel address with players
- Players connect using:
<your-playit-url>:25565
- Ensure
server.jarexists in theserver/directory - Check that EULA has been accepted (
eula=trueinserver/eula.txt) - Verify sufficient disk space
- Ensure playit tunnel is running:
screen -r playit - Check that the Minecraft server is running
- Verify firewall settings allow the connection
- Reduce RAM allocation in
start.sh - Check IDX workspace resource limits
- The server runs in the foreground after starting (no screen for the main server)
- Only the playit tunnel runs in a screen session
- Server files and world data are stored in the
server/directory - Remember to backup your world data regularly