A step by step guide to hosting your own private Minecraft Java server in the cloud.
Powered by GitHub Codespaces, PaperMC, Crafty Controller and Playit.gg.
ABOUT ・ ARCHITECTURE ・ QUICK START ・ LANGUAGES ・ LIMITATIONS
Ever wanted to create a Minecraft server for you and your friends without paying for traditional hosting?
Minecraft Server is a multilingual educational project explaining how to deploy and manage a private Minecraft Java server using cloud development resources.
The setup combines four main technologies:
| Technology | Purpose |
|---|---|
| GitHub Codespaces | Provides the cloud Linux environment |
| PaperMC | Runs the Minecraft Java server |
| Crafty Controller | Provides a web interface to manage the server |
| Playit.gg | Creates a public connection tunnel for players |
The goal is to make server hosting accessible to beginners while explaining the commands, configuration and tools involved.
- Creating a GitHub Codespace.
- Preparing a Linux environment.
- Installing Java 21.
- Downloading and configuring PaperMC.
- Installing and configuring Playit.gg.
- Installing Crafty Controller.
- Managing the server through a web dashboard.
- Creating automatic world backups.
- Starting and stopping gaming sessions.
- Monitoring Codespaces usage.
The server uses a cloud based Linux environment. PaperMC handles the game world, Crafty manages the server and Playit.gg makes the game port reachable by players.
flowchart TB
PLAYER["Players<br/>Minecraft Java Edition"]
PLAYIT["Playit.gg<br/>Public tunnel"]
AGENT["Playit agent<br/>Inside Codespace"]
PAPER["PaperMC<br/>TCP 25565"]
subgraph CLOUD["GitHub Codespaces"]
subgraph SERVER["Linux environment"]
AGENT
PAPER
CRAFTY["Crafty Controller<br/>Web panel :8443"]
end
end
PLAYER --> PLAYIT
PLAYIT --> AGENT
AGENT --> PAPER
CRAFTY -.-> PAPER
| Component | Role |
|---|---|
| GitHub Codespaces | Cloud development environment |
| Linux | Operating system |
| Java 21 | Runtime environment |
| PaperMC 1.21.4 | Minecraft server software used by the guide |
| Crafty Controller 4.x | Server administration panel |
| Playit.gg | Public tunnel for Minecraft connections |
| Python 3 | Required by the Crafty installation |
| Bash | Startup and backup scripts |
| Port | Service | Purpose |
|---|---|---|
25565/TCP |
PaperMC | Minecraft Java connections |
8443/TCP |
Crafty Controller | Web administration panel |
The ports are accessed through the Codespaces port forwarding interface. The Minecraft port is exposed through Playit.gg, while Crafty's web panel is accessed through its forwarded Codespaces port.
The current guides use the following baseline configuration.
| Component | Guide configuration |
|---|---|
| Cloud environment | GitHub Codespaces |
| Machine type | 2 cores |
| Memory | 8 GB RAM |
| Operating system | Ubuntu / Linux |
| Java | OpenJDK 21 |
| Minecraft | Java Edition 1.21.4 |
| Server software | PaperMC 1.21.4 |
| Management panel | Crafty Controller 4.x |
| Tunnel | Playit.gg |
| Backup format | Compressed TAR.GZ archives |
These are the configuration values documented in the current guides. They are not claims that these are the latest available Minecraft or PaperMC versions.
This repository is the documentation project. It contains the installation guides, not a preconfigured Minecraft server or ready made startup scripts.
To create your own server, follow these steps:
Open the guide that matches your preferred language in the Docs directory.
You need:
Follow the guide to create a separate private repository for your Minecraft server.
The documentation uses mc-server as its example repository name.
Create a Codespace from your server repository and select the 2-core machine configuration described in the guide.
The guide takes you through Java, PaperMC, Playit.gg and Crafty Controller, then helps you configure backups and manage your server sessions.
Tools used during installation
| Tool | Official website |
|---|---|
| GitHub Codespaces | github.com/features/codespaces |
| Java | adoptium.net |
| PaperMC | papermc.io |
| Crafty Controller | craftycontrol.com |
| Playit.gg | playit.gg |
The project includes installation guides in eight languages.
| Language | Guide |
|---|---|
| English | EN.GUIDE.md |
| Français | FR_Guide.md |
| Português (Brasil) | BR.GUIDE.md |
| Deutsch | DE.GUIDE.md |
| Español | ES.GUIDE.md |
| Italiano | IT.GUIDE.md |
| 日本語 | JA.GUIDE.md |
| Русский | RU.GUIDE.md |
Each guide follows the same general installation process, adapted to its language.
The guides explain how to prepare the environment for a gaming session and how to shut it down correctly.
The tutorial creates several scripts inside the Codespace:
| Script | Purpose |
|---|---|
start.sh |
Starts the PaperMC server with the configured Java parameters |
backup.sh |
Creates compressed backups of the Minecraft world |
keep-alive.sh |
Legacy helper discussed in the guide for session activity |
These scripts are created during the tutorial. They are not included as executable files in this repository.
The general startup sequence is:
- Open the Codespace.
- Start the Playit.gg agent.
- Start the PaperMC server.
- Start Crafty Controller.
- Check that the tunnel and server are operational.
- Share the public Playit.gg address with your players.
At the end of a gaming session:
- Stop the Minecraft server cleanly.
- Stop the Playit.gg agent.
- Stop Crafty Controller.
- Stop the Codespace from GitHub.
Closing the browser tab does not necessarily stop the Codespace.
Minecraft worlds contain valuable player data and should be backed up regularly.
The installation guide explains how to create compressed world archives and schedule backups.
Important: a backup stored inside the same Codespace is not a permanent external backup. Download or transfer important archives to storage outside the Codespace before deleting it.
The repository does not contain player worlds or generated backup archives.
GitHub Codespaces is a cloud development service with limited included usage. It should not be treated as unlimited or permanent Minecraft hosting.
For personal accounts, the currently documented monthly allowances are:
| Account | Included compute | Storage |
|---|---|---|
| GitHub Free | 120 core-hours | 15 GB-month |
| GitHub Pro | 180 core-hours | 20 GB-month |
A 2-core machine consumes 2 core-hours for every hour it remains active.
For a GitHub Free personal account, 120 core-hours therefore correspond to approximately 60 active hours on a 2-core machine, assuming no other Codespaces usage.
The available quota depends on the account plan and billing period. Usage beyond the included allowance may be billed when billing is enabled.
| Setting | Current documented behaviour |
|---|---|
| Default idle timeout | 30 minutes |
| Configurable idle timeout | 5 to 240 minutes |
| Maximum Codespace lifetime | 12 hours |
Use this setup for occasional private gaming sessions and educational purposes, not continuous 24/7 hosting.
The older guide includes a keep-alive helper. It must not be treated as a way to bypass platform limits or keep an unused Codespace running. Stop the Codespace when you finish playing.
Always check your own billing settings and current usage before starting a session.
Official references:
| Problem | Possible cause | Recommended action |
|---|---|---|
| Java version mismatch | Wrong Java runtime | Check that Java 21 is installed |
| PaperMC does not start | Incorrect JAR or EULA | Verify server.jar and eula.txt |
| Playit address is unreachable | Tunnel agent is offline | Check the Playit.gg dashboard |
| Crafty panel is inaccessible | Port forwarding configuration | Check that port 8443 is available |
| Server runs out of memory | Incorrect RAM configuration | Check Codespace machine type and Java memory values |
| Backup is missing | Incorrect folder or cron configuration | Check the script and scheduled task |
| Codespace stops | Timeout or maximum lifetime | Check Codespaces lifecycle settings |
For additional help, consult the guide in your language or the official community resources.
| Community | For |
|---|---|
| PaperMC Discord | Server software and plugins |
| Playit.gg Discord | Tunnel and connection issues |
| Crafty Controller Docs | Server panel installation and management |
| GitHub Issues | Problems with this repository or its guides |
Minecraft-Server/
│
├── README.md
├── LICENSE
│
├── Docs/
│ ├── BR.GUIDE.md
│ ├── DE.GUIDE.md
│ ├── EN.GUIDE.md
│ ├── ES.GUIDE.md
│ ├── FR_Guide.md
│ ├── IT.GUIDE.md
│ ├── JA.GUIDE.md
│ └── RU.GUIDE.md
│
└── Others README o(* ̄▽ ̄*)o/
├── BR.README.md
├── DE.README.md
├── ES.README.md
├── FR_README.md
├── IT.README.md
├── JA.README.md
└── RU.README.md
This repository primarily contains documentation and localized README material. The scripts and server files are generated or downloaded as part of the installation process described in the guides.
Found an outdated command, a broken link or a translation issue?
Contributions are welcome.
You can:
- Report a problem through GitHub Issues.
- Suggest corrections to a guide.
- Improve an existing translation.
- Help keep the installation instructions accurate.
When suggesting technical changes, include the operating system, Minecraft version and exact error message.
This repository is distributed under the MIT License.
The license applies to the repository's own content. Minecraft, PaperMC, Crafty Controller, Playit.gg and other third-party products remain subject to their respective licenses and terms.