Over-engineered open-source Minecraft anarchy server β made in Brasil π§π·β¨
This monorepo uses npm as a package manager. It includes the following applications:
apps
: all the services related to the serverpackages
: libraries shared between appsplugins
: first-party Minecraft plugins source codeservers
: the Minecraft servers configuration files and plugins
Make sure you have Node.js v18 installed. You can easily change your Node version using nvm:
nvm install 18
node --version
For plugin development, you will need JDK 17 and Maven. To install them on macOS using Homebrew, run:
brew install openjdk@17 maven
Finally, you will also need to have Docker and Docker Compose installed. You can easily get both by installing the much recommended Docker Desktop.
First off, install the dependencies by running the following command:
npm install
Then, you will need to setup your environment variables. You can do this by copying the example file:
cp .env.example .env
Now, open your /etc/hosts
file and add these lines to the end:
127.0.0.1 ssn.local id.ssn.local gk.ssn.local
::1 ssn.local id.ssn.local gk.ssn.local
Start the containers by running this command:
npm run start
You should now be able to join the Minecraft server on localhost:25565 and open ssn.local in your browser.
To build a plugin and copy the artifact to the server, you can run this command:
# npm run build:plugin-name
npm run build:catraca
All services are rebuilt on start by default.
The deployment stage is not yet defined.
These are known issues with the current setup of this project:
- A few scripts might only work with Unix-like systems, as Windows has a different way of setting environment variables on the fly.
- Unfortunately,
npm run start
is also being used as the development environment at this moment. This means no hot reloading, you will have to restart it everytime you change something. Help on setting one up is much appreciated. - As you restart your instance multiple times, a gigantic build cache will form until your containers are out of space. When that happens, run
docker system prune --volumes
.
First of all, thank you for your interest in making SSN.gg better! Contributions are always welcomed. Please, feel free to open an issue with your suggestion or bug report. Discussions must be in Brazilian Portuguese.
The SSN.gg project is licensed under the GPLv3 License.