Premessa: per questa guida ti serve un minimo di dimestichezza con SSH, terminale/shell e Ubuntu, non è plug and play tipo Aternos. Se non hai mai aperto un terminale in vita tua potrebbe essere ostico.
Detto ciò, ci sarebbe Oracle Cloud free tier, secondo me è la scelta migliore se vuoi qualcosa gratis.
Vai su
https://oracle.com/cloud/free e ti registri con email, telefono e carta di credito, la carta di credito viene usata come verifica, sul piano free non ti addebiteranno nulla, basta che poi non vai a toccare risorse a pagamento per sbaglio. L'unica cosa a cui devi stare attento è la region che scegli all'inizio perché una volta scelta non la cambia più, ti consiglio Francoforte o Amsterdam che di solito hanno più roba disponibile rispetto ad altre zone europee.
Poi vai su Compute > Instances > Create Instance, come immagine ti conviene mettere Ubuntu che è più semplice, e come shape scegli VM.Standard.A1.Flex (è quella ARM). lì ti danno fino a 2 OCPU e 12GB di RAM gratis, mettili praticamente tutti perché tanto non ti costa niente.
Una cosa che potrebbe capitarti è l'errore "Out of host capacity" perché queste VM gratis se le "litigano" in tanti. Devi riprovare tante volte, magari in orari diversi della giornata finché non riesci a prenderne una. Salvati la chiave SSH che ti fa creare, ti servirà dopo per collegarti alla VM.
Una volta che hai la VM devi aprire la porta 25565 in due posti diversi, se ne salti uno non funzionerà niente:
nel pannello di Oracle: Networking > Virtual Cloud Networks > la tua VCN > Security Lists > aggiungi una regola Ingress per la porta 25565 TCP da 0.0.0.0/0
e fai lo stesso anche sul firewall di Ubuntu via SSH:
Bash:
sudo iptables -I INPUT -p tcp --dport 25565 -j ACCEPT
sudo netfilter-persistent save
Dopo ti connetti via SSH e installi Java in base alla versione del server che vuoi creare, in questo caso prendiamo come esempio un server 1.21.11:
Bash:
sudo apt update && sudo apt install openjdk-21-jre-headless -y
Ti scarichi il file jar del server (o qualsiasi fork tu preferisca, Paper/Purpur/Spigot ecc.), per questo esempio uso Paper. Una volta scaricato lo avvii una prima volta per generare i file, ti dirà di accettare l'eula: apri il file
eula.txt e cambi
eula=false in
eula=true, poi lo riavvii così:
Bash:
java -Xms4G -Xmx8G -jar paper.jar nogui
Per tenerlo acceso pure quando chiudi la sessione SSH usa screen:
Bash:
screen -S minecraft
java -Xms4G -Xmx8G -jar paper.jar nogui
poi fai Ctrl+A e D per uscire senza killare tutto.
Se poi ti disconnetti e vuoi tornare a vedere la console del server (per scrivere comandi, controllare i log, ecc.), ti riconnetti così:
Se hai più screen aperti e non sai i nomi, prima fai:
e ti elenca le sessioni attive, poi usi il nome (o il numero) che trovi lì per riconnetterti.
Se invece vuoi fermare il server, ti riconnetti alla sessione:
e dentro alla console scrivi:
così il server salva tutto correttamente prima di chiudersi, non fare mai Ctrl+C a caso o rischi di corrompere il mondo.
P.S. questa è una delle poche (se non forse l'unica) soluzione davvero gratis per tenere su un server Minecraft H24 senza trucchetti o bot fasulli. Detto ciò non sono qui per fare da assistenza personale su ogni singolo passaggio, come scritto nella premessa all'inizio ti serve un minimo di autonomia con SSH/terminale/Ubuntu, per il resto trovi tutto su Google o sulla documentazione ufficiale di Oracle/PaperMC.