A proof of concept of a Minecraft infrastructure that can handle an infinite amount of players
This is not new, Hypixel (and others) have probably already done it
- A Linux server
- Docker installed
The installation can be run with any user, but the same for each step, and will create files as root
The installation will be in the ~/infinite-minecraft-players-poc/
dir
Clone the repository with alpine/git
Docker image by running
docker run -it --rm \
--volume ~:/git \
alpine/git clone https://github.com/Raraph84/Infinite-Minecraft-Players-POC.git infinite-minecraft-players-poc/
Generate a random string of the length of your choice (100 is good) and replace exampleapikey
to the one you generated in the files api/.env
and node/.env
Install the libs and compile by running
docker run -it --rm \
--volume ~/infinite-minecraft-players-poc:/home/infinite-minecraft-players-poc \
--workdir /home/infinite-minecraft-players-poc/api \
node bash -c "npm install --omit=dev && npm run build"
docker run -it --rm \
--volume ~/infinite-minecraft-players-poc:/home/infinite-minecraft-players-poc \
--workdir /home/infinite-minecraft-players-poc/node \
node bash -c "npm install --omit=dev && npm run build"
docker run -it --rm \
--volume ~/infinite-minecraft-players-poc:/home/infinite-minecraft-players-poc \
--workdir /home/infinite-minecraft-players-poc/bots \
node npm install --omit=dev
Open a terminal and run
docker run -it --init \
--name api \
--volume ~/infinite-minecraft-players-poc:$HOME/infinite-minecraft-players-poc \
--workdir $HOME/infinite-minecraft-players-poc/api \
--publish 8080:8080 \
node npm start
Open a terminal and run
docker run -it --init \
--name node \
--volume ~/infinite-minecraft-players-poc:$HOME/infinite-minecraft-players-poc \
--volume /var/run/docker.sock:/var/run/docker.sock \
--workdir $HOME/infinite-minecraft-players-poc/node \
node npm start
Open a terminal and run
docker run -it --rm --init \
--volume ~/infinite-minecraft-players-poc:/home/infinite-minecraft-players-poc \
--workdir /home/infinite-minecraft-players-poc/bots \
node index.js <player count> <delay between each player join> <first player number>
For example, for 100 bots with 1 second delay between each join, run
docker run -it --rm --init \
--volume ~/infinite-minecraft-players-poc:/home/infinite-minecraft-players-poc \
--workdir /home/infinite-minecraft-players-poc/bots \
node index.js 100 1000 0
You can build Velocity from its repository
Or download it from its website
And replace it in proxy/
You can build Paper from its repository
Or download it from its website
And replace it in server-template/
You can import proxy-plugin/
into an IDE like IntelliJ as a Maven project
Then run the default Maven goal and the jar will be built in proxy/plugins/
You can import server-plugin/
into an IDE like IntelliJ as a Maven project
Then run the default Maven goal and the jar will be built in server-template/plugins/
WorldEdit is not required but useful to have on every server
You can build WorldEdit on its repository
Or download it on its Modrinth page
And replace it in server-template/plugins/