Coder Social home page Coder Social logo

theremote / raspberrypiminecraft Goto Github PK

View Code? Open in Web Editor NEW
193.0 15.0 52.0 219 KB

Configuration files and performance testing scripts to setup and optimize a dedicated Minecraft (PC Java version) server

Home Page: https://jamesachambers.com/raspberry-pi-minecraft-server-script-with-startup-service/

License: MIT License

Shell 100.00%
dedicated-game-server dedicated-server java minecraft minecraft-server papermc raspberry-pi

raspberrypiminecraft's Introduction

This script will automatically download and configure the Paper Minecraft server!
For the full article and guide visit https://jamesachambers.com/raspberry-pi-minecraft-server-script-with-startup-service/

Installation Instructions

To get started / install the server type:
curl https://raw.githubusercontent.com/TheRemote/RaspberryPiMinecraft/master/SetupMinecraft.sh | bash

Getting Help

To get help you may open an issue here or visit my web site at https://jamesachambers.com/raspberry-pi-minecraft-server-script-with-startup-service/ which contains lots of comments from myself and users helping each other out!

Changing Minecraft Server Versions

If a new version of Minecraft is out and the script hasn't been updated yet you can change it in the SetupMinecraft.sh script. If you use the command nano SetupMinecraft.sh it will be the first line in the file like this:

Version="1.18.1"
AllowLocalCopy="1"

Make sure to change AllowLocalCopy="1" to tell the script you want to actually run the local copy instead of the latest version.
Note that for this to work the Paper Minecraft server must also have released the latest version or the download will fail. You can check here: https://papermc.io/downloads

Tested Distributions

  • Raspberry Pi OS - Bullseye/Buster/Stretch
  • Ubuntu / Ubuntu Server 22.04 / 21.10 / 20.04 (LTS)
  • Debian 11 Bullseye / Debian 10 Buster / Debian 9 Stretch
  • Arch Linux
  • TinkerOS Stretch

Troubleshooting Note - Oracle Virtual Machines

A very common problem people have with the Oracle Virtual Machine tutorials out there that typically show you how to use a free VM is that the VM is much more difficult to configure than just about any other product / offering out there.
The symptom you will have is that nobody will be able to connect.
It is because there are several steps you need to take to open the ports on the Oracle VM. You need to both:
  • Set the ingress ports (TCP/UDP) in the Virtual Cloud Network (VCN) security list
  • *and* set the ingress ports in a Network Security Group assigned to your instance

Both of these settings are typically required before you will be able to connect to your VM instance. This is purely configuration related and has nothing to do with the script or the Minecraft server itself.

I do not recommend this platform due to the configuration difficulty but the people who have gone through the pain of configuring an Oracle VM have had good experiences with it after that point. Just keep in mind it's going to be a rough ride through the configuration for most people.

Here are some additional links:

Troubleshooting Note - Hyper-V

There is a weird bug in Hyper-V that breaks UDP connections on the Minecraft server. The fix for this is that you have to use a Generation 1 VM with the Legacy LAN network driver.
See the following links:

Buy A Coffee / Donate

People have expressed some interest in this (you are all saints, thank you, truly)

  • PayPal: [email protected]
  • Venmo: @JamesAChambers
  • CashApp: $theremote
  • Bitcoin (BTC): 3H6wkPnL1Kvne7dJQS8h7wB4vndB9KxZP7

Update History

April 27th 2024

  • Upgrade to 1.20.5 (make backups first, and make sure you've copied backup out of the main backups folder as they are rotated)

January 4th 2024

  • Upgrade to 1.20.4 (make backups first, and make sure you've copied backup out of the main backups folder as they are rotated)

October 1st 2023

  • Upgrade to 1.20.2 (make backups first, and make sure you've copied backup out of the main backups folder as they are rotated)

March 16th 2023

  • Upgrade to 1.19.4 (make backups first, and make sure you've copied backup out of the main backups folder as they are rotated)

January 14th 2023

  • Change connectivity check from google.com to papermc.org to prevent blocking in some countries

December 9th 2022

  • Upgrade to 1.19.3
  • Upgrade to OpenJDK 19

September 20th 2022

  • Update to OpenJDK 18.0.2.1

September 11th 2022

  • Fix memory recommendation to allow a little bit more breathing room to prevent heap errors

September 4th 2022

  • Remove pointless and confusing automation code

September 2nd 2022

  • Fix tail warning message if there is no existing log file

August 26th 2022

  • Raise server startup timeout from 600 seconds to 1800 seconds to prevent startup failure when backing up large servers

August 10th 2022

  • Moved custom directories to the top of SetupMinecraft.sh to eliminate confusion about how to use the feature (and almost nobody should unless you are storing your server on a separate drive)
  • Improve JRE update detection in SetupMinecraft.sh

August 6th 2022

  • Upgrade to 1.19.2

August 4th 2022

  • Script now removes non-alphanumeric characters from the servername variable (to prevent using quotes and other symbols that will break it)

August 2nd 2022

  • Fix ARM link for Adoptium OpenJDK (thanks zqigolden, PR #42
  • OpenJDK will now detect if you have an older version than SetupMinecraft is installing (or a broken Java install) and reinstall the newest version

July 31st 2022

  • Upgrade Adoptium OpenJDK to 18.0.2 -- if you want to upgrade your Adoptium you can remove the ~/minecraft/jre folder and run SetupMinecraft.sh again to upgrade to the latest one

July 27th 2022

  • Update to 1.19.1 (always make sure you've copied some backups out of the backups folder first!)

June 15th 2022

  • Fix Paper 1.19 version upgrades (thanks Meganium97, issue #41)

June 11th 2022

  • Update to Paper experimental 1.19 release as default installation
  • Make sure you have backups of your server from your "backups" folder stored separately before upgrading
  • If you have problems with 1.19 you need to restore a backup to go back to 1.18 as it will not take your server data files on 1.18 once the 1.19 structures/data have been added
  • Change update.sh to /bin/bash instead of /bin/sh
  • Add PATH variable to update.sh

May 22nd 2022

  • Update OpenJDK installation paths

May 21st 2022

  • Switched from JDK to JRE to save space
  • Added Adoptium OpenJDK support for s390x and ppc64le architectures

May 16th 2022

  • Add -DPaper.IgnoreJavaVersion=true to allow OpenJDK 17 to run the older Paper Minecraft versions (thanks NotMick, issue #39)

May 15th 2022

  • Added screen -wipe to beginning of start.sh to prevent a startup issue that could occur if there was a "dead" screen instance (thanks grimholme)

May 11th 2022

  • Fix Adoptium arm and aarch64 OpenJDK links (thanks 407pilot, issue #38

May 10th 2022

  • Update Adoptium OpenJDK version
  • Add safety check for backups to make sure folder exists before pruning

May 8th 2022

  • Fixed a problem with restart.sh having a #!/bin/sh at the top which could cause restart.sh to run in a POSIX shell that doesn't recognize the [[ operator (thanks jmswan, issue #37

May 4th 2022

  • Fixed "route" command used to detect internet access to be compatible with Debian

April 24th 2022

  • Fixed mistake in new multicore compression (thanks pmcmorris) and related mistake in SetupMinecraft.sh dependency check

April 16th 2022

  • Remove "jre" folder if JDK installation fails so it will attempt to download a fresh copy upon running SetupMinecraft.sh again
  • Added support for the tar command to use multiple CPU cores instead of a single core. This should speed up backups and reduce instances of when it takes longer to back up than the server's startup time (thanks SudosFTW, issue #36)

April 6th 2022

  • Fixed issue that prevented detecting a broken OpenJDK installation
  • Added language headers to OpenJDK download

March 24th 2022

  • Dedicated OpenJDK 17 install is now used (stored in your server's directory) to avoid apt / snap issues
  • Create "logs" folder for new servers to avoid harmless error messages (cleanup)
  • Add new "jre" folder to backup command's ignore list to avoid bloated backups

March 23rd 2022

  • Removed snapd installation as the snapd repository will only install OpenJDK 18 or higher which won't work with Paper
  • Paper still does not support OpenJDK 18 and will give errors using a version that high
  • Working on a new more reliable method to install OpenJDK 17

March 23rd 2022

  • Removed obsolete requirement not allowing OpenJDK versions above 17 as Paper now supports this

March 5th 2022

  • Update to 1.18.2 -- make sure you have backups first if you are upgrading from an existing server!

December 12th 2021

  • Update to 1.18.1 -- make sure you have backups first if you are upgrading from an existing server!
Update_Sudoers

November 30th 2021

  • Update to 1.18 -- make sure you have backups first if you are upgrading from an existing server!

September 15th 2021

  • Update to allow OpenJDK 17 which is now the default "snap"

September 2nd 2021

  • Update to Paper Minecraft Server API v2

August 1st 2021

  • Fixed a missing -A parameter for a curl command (thanks davie2000, issue #27)

July 27th 2021

  • Added PATH variable to scripts to improve compatibility on some distros
  • Server now fixes permissions upon startup

July 21st 2021

  • Switched from wget to curl to fix spacing issues experienced by some users
  • Added error redirection to crontab line to help diagnose failures during scheduled restarts

July 19th 2021

  • Fixed an issue where SetupMinecraft.sh could throw an error if no Java version was installed

July 17th 2021

  • Fixed server name prompt
  • Added username missing to fix service issue
  • Reduced memory recommendation by 100MB to allow more space for the OS / other processes since newer versions of Minecraft are requiring more memory. Remember, if you don't leave enough memory for other things the Minecraft server will crash for memory issues, but it's because you set it too high (counterintuitive I know) and didn't leave enough for the OS and it killed your Minecraft server to prevent the entire OS from crashing.
  • Added in check to ensure start.sh and other scripts are not being ran as root. If this happens you have to use sudo screen -r to find the screen and the permissions will be wrong since root isn't the owner of the server files
  • If you know you ran the script/server as root (which starts creating files owned by root instead of the regular user) and your server won't start/is wonky run the fixpermissions script from your server folder with ./fixpermissions.sh and it will correct them for you!

July 15th 2021

  • Added safety check for path to server -- please use the default path of ~ if you aren't familiar with fully qualified Linux paths/directories -- you really don't want to change the safe defaults unless you have a really specific need.

July 14th 2021

  • Fixed a issue that was causing backups to not rotate (it should only keep 10). Thanks Olli

July 8th 2021

  • Update to 1.17.1
  • Update documentation to explain new AllowLocalCopy="1" flag. This flag tells the script not to run the latest online version and to run the local copy. You want to use this if you are changing the version or making any modifications to the script itself before running it.
  • Added update.sh convenience script that calls the latest version of SetupMinecraft.sh
  • Fixed a bug where having an OpenJDK greater than 16 was not triggering the snap configuration (usually only seen on the cutting edge Ubuntu flavors)

July 5th 2021

  • Fixed an issue with SetupMinecraft.sh saving scripts to the home folder instead of the minecraft folder (thanks Ryan A J.)

July 3rd 2021

  • Add option to choose a custom directory instead of forcing the home path

June 24th 2021

  • Removed installation of OpenJDK above OpenJDK 16 as the Paper Minecraft server is not working with versions higher than 16
  • If you have a higher version of Java installed use the following command: sudo update-alternatives –config java and select OpenJDK 16

June 19th 2021

  • 1.17 Release
  • Make sure you have backups and take copies of your backups and place them outside the Minecraft folder to be 100% safe
  • Once running the new version you can't go back to the old one without restoring a backup because it writes new stuff in your server the old version doesn't understand and crashes on
  • As long as you have backups you should be okay!

June 16th 2021

  • Raised minimum OpenJDK requirement to 16 in preparation for the 1.17 Paper Minecraft server release
  • If a new enough OpenJDK is not available in apt (Raspberry Pi OS is on OpenJDK 11 for example) it will be installed via snapd
  • If snapd is not installed it will ask you if you want to install it (reboot required) or abort
  • After the reboot run SetupMinecraft.sh again and it will finish installing OpenJDK 16! Be patient, it can take some time, even 10-15 minutes on a good connection and longer on a bad one
  • Sorry for the inconvenience, there isn't an easier way to get it until the Raspberry Pi OS apt repositories are updated!

June 12th 2021

  • Fixed syntax error (thanks aruthir!)

June 10th 2021

  • Added OpenJDK 17 and 18 placeholders for prerequisite installations
  • Added a fallback to the non-headless JRE for platforms that don't offer that metapackage
  • Paper Minecraft 1.17 is not yet available but should be soon. If you go to https://papermc.io/api/v1/paper/ and see 1.17 in the list it's available and you can change the version variable at the very top of SetupMinecraft.sh otherwise it hasn't been released yet. Should be soon!

March 22nd 2021

  • Lowered amount of recommended memory by a flat 200MB due to so many people having "Out of Memory" errors
  • Note: Nobody has ever really been "out of memory" on the Pi since like the Pi 1. The problem is you're using TOO MUCH.
  • If you're getting memory related crashes you need to turn your memory DOWN. The server will recommend lower amounts going forward.

March 16th 2021

  • Added backup rotation - server keeps the last 10 backups by default
  • If you want to change the amount of backups held it is located in the "start.sh" script with a comment of '# Rotate backups -- keep most recent 10'
  • This adds a little responsibility for saving really old backups but fixes the issue I and many others have had of the server getting filled with backups and crashing

January 31st 2021

  • Update to 1.16.5
  • Server now takes ownership of server files on each start to prevent folks a whole heap of trouble and heartache when restoring backups/moving files/etc.
  • Added check to make sure script isn't being ran as sudo to prevent installing to the /root folder

December 5th 2020

  • Update to 1.16.4
  • Fixed a bug where if your username on the Pi was Minecraft it would cause the script to break (thanks Minecraftschurli, pull request #20)
  • Fixed a bug that could cause OpenJDK 10 to try to be installed even if OpenJDK 11 installation was successful

September 25th 2020

  • Update to 1.16.3

August 28th 2020

  • Update to 1.16.2

July 4th 2020

  • Update to 1.16.1

January 25th 2020

  • Update to 1.15.2

December 28th 2019

  • Backup system now takes a backup of your entire server folder (minus logs and cache) instead of just the world folders. This mean it now backs up things like server.properties and other worlds if you are running a multiverse setup.

December 20th 2019

  • Updated to version 1.15.1
  • Added more information to script installation warnings to help with initial configuration
  • Added warning to 2700MB limit on 32 bit operating systems explaining that you can lift the 3 GB limit by using a 64 bit Pi distribution
  • Cleaned up Java installation in setup script

August 26th 2019

  • Fixed a silly bug causing recommended memory to be stuck at 2700

August 25th 2019

  • Improved server startup detection after running SetupMinecraft
  • Added terminal colors to improve visibility
  • Cleaned up script substantially by breaking out duplicate code to functions
  • Fixed issue where when reconfiguring an existing server you would not be prompted to configure daily reboots
  • Removed /boot/config.txt tweaks as they are no longer compatible with Pi 4

August 24th 2019

  • To prevent startup failure on 32bit ARM the maximum memory for the Minecraft server is capped at 2700MB. This is a per process limitation of 32 bit on ARM and Linux. This restriction can be lifted by using a 64 bit operating system.

July 19th 2019

  • Updated development version to 1.14.4
  • Added OpenJDK 13 support

July 2nd 2019

  • Removed bc dependency to improve portability

June 30th 2019

  • Raspberry Pi 4 support (all memory sizes)
  • Updated development version to 1.14.3
  • Fixed issue that could cause 1.13.2 servers to crash when going to the Nether

June 1st 2019

  • Added option to select stable or development version
  • Current stable version of the Paper Minecraft server is 1.13.2
  • If you want to install 1.14.2 you may select to do so during installation
  • Be aware that 1.14.2 continues to have severe performance issues for the entire Minecraft server/hosting community. After playing on it myself and talking to the Paper developers I can personally state that performance on 1.14.2 is really bad right now and highly recommend sticking with the stable version.

May 31st 2019

  • OpenJDK 12 and OpenJDK 10 package checks added into the script
  • Script will attempt to install OpenJDK 10 from package on Raspbian if it isn't in apt
  • Added many paper.yml, bukkit.yml and spigot.yml changes to server config files to help with the ongoing lag affecting all Minecraft servers in 1.14
  • To configure them open start.sh in nano after running SetupMinecraft and you will see the different options and what they do
  • Updated Java certificates installer link
  • Fixed bug where changing GPU memory wasn't being applied

May 30th 2019

  • Updated to 1.14.2

May 19th 2019

  • Updated to 1.14.1

April 18th 2019

  • Changed StopChecks++ to StopChecks=$((StopChecks+1)) to improve portability (thanks Jason B.)
  • Added TimeoutStartSec=600 to server to prevent it being killed if taking longer than usual to download paperclip

March 31st 2019

  • Added x86_64 support

March 9th 2019

  • Changed Paper download URL to use API (Issue #7 Fix)
  • Added \n to beginning of printf to config.txt to prevent adding our line to the end of another config line

March 7th 2019

  • Added support for OpenJDK 8 to improve portability
  • Added Armbian support
  • Tinkerboard platform now supported. Other Armbian capable boards should also work
  • Added ca
  • certificates
  • java OpenJDK 11 fix for a broken package on some platforms
  • Added checks for paper.yml and world backup folders before attempting to back up
  • Fixed portability issue with route vs /sbin/route

March 4th 2019

  • Shared GPU memory reduction and MicroSD overclock now supported on distros that use /boot/firmware/config.txt such as Ubuntu Server and Debian
  • Removed vcgencmd usage for portability to other distros
  • Added check for sudo for compatibility with more distros
  • Improved MicroSD clock detection
  • Setup now sets paper.yml option for watchdog warnings to wait until 120 seconds after the server starts to suppress excessive warnings

March 2nd 2019

  • Added a configuration option for memory to dedicate to the Minecraft server (along with a recommended amount)
  • Added support for Debian and Ubuntu Server Raspberry Pi distros
  • Server now installs OpenJDK
  • 11
  • jre
  • headless if it is available, otherwise OpenJDK 9 will be selected
  • Improved CPU architecture detection
  • Added sudo, net
  • tools, wget to server dependencies to improve portability
  • Removed absolute paths from scripts to improve portability
  • MicroSD overclock and GPU memory split config are now split if vcgencmd is not present (non
  • Raspbian systems)

February 18th 2019

  • The SetupMinecraft.sh script will now update all of your scripts to the latest version when ran and reinstall the startup service
  • Implemented a workaround for Java 9 installation since the ca
  • certificates
  • java package broke in Raspbian on the 16th

February 15th 2019

  • Server now starts correctly on Raspbian Full (Raspbian Lite still highly recommended due to more available memory)
  • Added network connectivity check before attempting to update server
  • skips update if no connection available to prevent .jar corruption
  • Service now waits up to 20 seconds for network connectivity before starting up to prevent service starting before server gets an IP address
  • Fixed typo in stop.sh that was causing server to say it wasn't running when it was
  • Removed unnecessary sleep time on stop.sh script so it returns as soon as the minecraft server closes
  • Added automatic backups performed when server starts (located in minecraft/backups)

February 9th 2019

  • Added check to make sure service isn't already running when started

February 3rd 2019

  • Added optional service configuration to start minecraft automatically on boot
  • Added optional daily reboot configuration via Cron in setup script
  • Added a check in the installer to make sure Java was installed properly before continuing
  • Installer script now goes into the started screen window after installation
  • Server now checks for updates to the server on startup

February 2nd 2019

  • Script now checks to make sure we are running on the ARMv7 CPU architecture with 1024MB of RAM to ensure Java 9 works
  • Script helps you overclock SD card and change gpu_mem to 16MB
  • Increased memory usage of server from 800MB to 850MB due to gpu_mem tweak
  • Improved reliability and validation checks on setup script

raspberrypiminecraft's People

Contributors

minecraftschurli avatar mtoensing avatar randomblock1 avatar theremote avatar zqigolden avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

raspberrypiminecraft's Issues

Version 1.19.3

Hi,

I wanted to set up another PaperMC server with your script, but yesterday’s version 1.19.3 is still missing. Can you add it?

Anyways, you have a good script, which I like to use again and again for new servers. Please still keep it up!

Greetings,
Atten 😊

Update for 1.19 version

The client version now is 1.19, but the latest server version is still 1.18.2. When I set the installation version to 1.19, the game crashed after launch. So how and when can I have the latest version on my server?
Thanks a lot.

Automatic Update to the latest version?

Hello,

it would be cool to have something like Update.sh that checks for new Versions.

If you run the Script with ./Update.sh -f it should automatically download and install/update to the latest available Version, without asking. Through that, we could have a fully automatic updater.

Would be nice!

For now, you have to run SetupMinecraft.sh and confirm everything

1.19.4 support?

Hello,

The new Minecraft 1.19.4 version has been released on Tuesday and it's now also available for PaperMC. Unfortunately, your script hasn't currently 1.19.4 support, so I wanted to ask you: "is it possible to update your script to 1.19.4"?

Best regards,
Atten 😄

Wrong version test

JavaVer=$(apt-cache show openjdk-13-jre-headless | grep Version | awk 'NR==1{ print $2 }')

This checks for version 13, then tries to install version 14.

It then checks for 13 again, and tries to install 13. So I'm guessing the first check should be for version 14.

Required OpenJDK version 18 could not be installed

Hey there!

When trying to setup a minecraft server using SetupMinecraft.sh with an SSD mounted to the raspberry pi it doesn't install into the SSD folder even when changing the directory from the script.

I wanted to set the server folder as /mnt/ssd/minecraft, so I changed the script to:

DirName=$(readlink -e /mnt/ssd) if [ -z "$DirName" ]; then DirName=~ fi

This seemed to work because the folder minecraft was created there and some other folders related to the OpenJDK installation as well. But then an error is thrown after trying to install OpenJDK:
Required OpenJDK version 18 could not be installed.

When checking java --version, these are the results:
openjdk 20 2023-03-21 OpenJDK Runtime Environment (build 20+36-snap) OpenJDK Server VM (build 20+36-snap, mixed mode, sharing) from ubuntu using the command line

What should I do?

Best regards,
Pedro

Server restart and Maintaining connection

When the Server Restarts has had an issue with restarting with an error 127. When starting the server it maintains the Connection between The Server and API but soon results in an error soon after logging in.
Minecraft

Error

Wrong RAM suggestion

Hi,
When setting up the server on a Raspberry Pi 4B+ with 8GB of RAM the script suggested 7.259GB.
Even though I only run the minecraft server on my Raspberry Pi it broke down, when starting chunky to pregenerate my world.
When decreasing the RAM to 6.8GB (max RAM - 10%) everything works fine.

Console?

How would you be able to access the console to make yourself a operator of the server?

Backup breaks startup

After pregenerating my world, the files in the minecraft folder are getting really large. This causes the backup to take really long wich results in a timeout when starting the systemd service.

My workaround at the moment is a separate script wich makes the backup and is executed by crontab every day.

Update paper.jar URL

I'll just repost the announcement made on Paper discord:

Say hello to Parchment!

We've introduced an API, as described below, that we intend to replace Jenkins-based downloading with.

The old Jenkins based download links you used in the past are now subject to change without notice. You should move over to these API links as soon as possible.
If you just download via the website downloads page there is nothing to change, we’ll update that and you’ll never notice

projects: paper, travertine, waterfall

https://papermc.io/api/v1/paper - project overview, lists available version
https://papermc.io/api/v1/paper/1.13.2 - version overview, lists available builds
https://papermc.io/api/v1/paper/1.13.2/543 - specific build overview
https://papermc.io/api/v1/paper/1.13.2/543/download - specific build download
https://papermc.io/api/v1/paper/1.13.2/latest - latest build overview
https://papermc.io/api/v1/paper/1.13.2/latest/download - latest build download

Does not pull latest paper version

Not sure what exactly the problem is. It claims it does but it ends up being stuck on update 0 and the server complains about my version being 18 versions behind.

Typo in the readme.md

Hi @TheRemote,

I found a typo in your readme.md in the Updates section: There’s „January 14, 2022“, but it needs to be „January 14, 2023“. Can you fix this?

Greetings,
Atten 😊

"Enter amount of memory"-text: add "M" in example

The text:
Enter amount of memory in megabytes to dedicate to the Minecraft server (recommended: 511)
suggest to enter 511 however you have to enter 511M. Though this might be common knowlege to advanced users this may confuse beginners.
So change the "recommended" text from "recommended: x" to "recommended: xM"

The 272th line go wrong in SetupMinecraft.sh

2019-07-02 160029
Look at the output, the 272th line error, it says the command: "bc" was not found
I use the raspberrypi 3B+ and Raspbian with GUI.

The original code in the script:

#Ask user for amount of memory they want to dedicate to the Minecraft server
echo "Please enter the amount of memory you want to dedicate to the server. A minimum of 700MB is recommended."
echo "You must leave enough left over memory for the operating system to run background processes."
echo "If all memory is exhausted the Minecraft server will either crash or force background processes into the paging file (very slow)

MemSelected=0
while [[ $MemSelected -lt 600 || $MemSelected -ge $TotalMemory ]]; do
read -p "Enter amount of memory in megabytes to dedicate to the Minecraft server (recommended: $RecommendedMemory): " MemSelected

MemSelected=$(echo $MemSelected | bc)

if [[ $MemSelected -lt 600 ]]; then
echo "Please enter a minimum of 600"
elif [[ $MemSelected -gt $TotalMemory ]]; then
echo "Please enter an amount less than the total memory in the system ($TotalMemory)"
fi
done
echo "Amount of memory for Minecraft server selected: $MemSelected MB"

server not starting properly

after installing and starting my server I get
[20:44:24] [ServerMain/INFO]: Environment: Environment[accountsHost=https://api.mojang.com, sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD]
[20:44:34] [ServerMain/INFO]: Loaded 7 recipes
[20:44:35] [Server thread/INFO]: Starting minecraft server version 1.20.2
[20:44:35] [Server thread/INFO]: Loading properties
[20:44:36] [Server thread/INFO]: This server is running Paper version git-Paper-298 (MC: 1.20.2) (Implementing API version 1.20.2-R0.1-SNAPSHOT) (Git: e1cd9e5)
[20:44:38] [Server thread/INFO]: Server Ping Player Sample Count: 12
[20:44:38] [Server thread/INFO]: Using 4 threads for Netty based IO
[20:44:39] [Server thread/WARN]: [!] The timings profiler has been enabled but has been scheduled for removal from Paper in the future.
We recommend installing the spark profiler as a replacement: https://spark.lucko.me/
For more information please visit: PaperMC/Paper#8948
[20:44:39] [Server thread/INFO]: [ChunkTaskScheduler] Chunk system is using 1 I/O threads, 1 worker threads, and gen parallelism of 1 threads
[20:44:40] [Server thread/INFO]: Default game type: SURVIVAL
[20:44:40] [Server thread/INFO]: Generating keypair
[20:44:41] [Server thread/INFO]: Starting Minecraft server on *:25565
[20:44:41] [Server thread/INFO]: Using epoll channel type
[20:44:41] [Server thread/INFO]: Paper: Using libdeflate (Linux aarch64) compression from Velocity.
[20:44:41] [Server thread/INFO]: Paper: Using OpenSSL 1.1.x (Linux aarch64) cipher from Velocity.
[20:44:41] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
[20:44:41] [Server thread/INFO]: Preparing level "world"
[20:44:43] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[20:44:44] [Server thread/INFO]: Time elapsed: 1031 ms
[20:44:44] [Server thread/INFO]: Preparing start region for dimension minecraft:the_nether
[20:44:45] [Server thread/INFO]: Time elapsed: 322 ms
[20:44:45] [Server thread/INFO]: Preparing start region for dimension minecraft:the_end
[20:44:45] [Server thread/INFO]: Time elapsed: 212 ms
[20:44:45] [Server thread/INFO]: Running delayed init tasks
[20:44:45] [Server thread/INFO]: Done (9.789s)! For help, type "help"
[20:44:45] [Server thread/INFO]: Timings Reset
and when I try to join the server it doesn't work

32 Bit restriction on a 64 bit os.

Referring to this piece of code

SetupMinecraft.sh detects the os as 32bit when It is actually 64bit

Console log:

Getting total system memory...
Total memory: 3808 - Available Memory: 3624
Total memory: 3808 - Available Memory: 3624
Please enter the amount of memory you want to dedicate to the server.  A minimum of 700MB is recommended.
You must leave enough left over memory for the operating system to run background processes.
If all memory is exhausted the Minecraft server will either crash or force background processes into the paging file (very slow).
Enter amount of memory in megabytes to dedicate to the Minecraft server (recommended: 3624): 3624
You are running a 32 bit operating system which has a limit of 2700MB.  Please enter 2700 to use it all.
You can lift this restriction by upgrading to a 64 bit operating system.

I jumped through the code and you assign $CPUArch to the response of uname-m which for this os returns:
aarch64

When I try to start the server nothing happens.

When I run the command ./start.sh it send me all the messages about it start but when I try to access the console I get nothing. I can rub the command again but it still has the same issue. Not sure what the issue is.

Great script and great guide ! Do you plan to add Fabric mods compatibility to your script ?

Hi,

I absolutely love your work on this script, it allowed me to make a nice server always running for friends, it is perfect for noobs but also highly configurable and your tutorial is perfect. You're doing an amazing job !!!

But I was thinking about Fabric, and how Lithium/Sodium/Phosphor allow greater performances. That would be nice on Raspberry, server side. Do you think it would be possible to add Fabric mods compatibility on the script ?

Thanks in advance for your answer and thanks for your incredible work ! Have a great day

World transfer problem

Hi
i have an issuing with Transferring a world to a new Minecraft server instance.
[first excuse my englisch]
I got the api v1/v2 bug and fixed it with a new installation.
But now I have the Problem that if I am copying an world (made on this server before) (everything in 1.17.1)to the new installation it starts (sometimes I have to agree the Eula in Eula.tx) but on the second start it resets the Eula to false and delete start.sh/stop.sh and many other important scripts. I tried to set the file permission to only read from the Eula but it resets after one or two reboots/restarts of the server.

The strange thing is that with the normal installation it won't happen(if I doesn't import the world)

I hope you can help me and Thanks in advance

Installation fails, server does not start.

TLDR; skip to edit 2

Raspberry Pi 4, 2GB Ram, running Buster

Ran updates (apt-get update, upgrade) on the server earlier, after performing updates the minecraft server stopped working. Rebooted the Pi, server would not start. Saved my latest backup and re-flashed Buster to the SD card. After running the install script, the server still will not start.

Reviewing the output from the install, there was some kind of problem with OpenJDK installation. Then at the end there are some errors. I'm really not sure where to go from here.

edit: for the sake of thoroughness I installed a fresh copy of 32-bit bullseye. The installation went exactly the same with the same result.

edit2: I found the problem in the install script. Line 203 points to the x64 version of jdk 17. (Line 207 also points to the x64 version)

There also seems to be something else going wrong, because after running the script the jre folder does not exist after the script finishes, although it reports Java is installed successfully. Downloading and unpacking the correct version of jdk 17 into the correct directory got the start script working.

pi@rotormine:~ $ curl https://raw.githubusercontent.com/TheRemote/RaspberryPiMinecraft/master/SetupMinecraft.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17089  100 17089    0     0  65726      0 --:--:-- --:--:-- --:--:-- 65726
Minecraft Server installation script by James A. Chambers - https://jamesachambers.com/
Version 1.18.2 will be installed.  To change this, open SetupMinecraft.sh and change the "Version" variable to the version you want to install.
Latest version is always available at https://github.com/TheRemote/RaspberryPiMinecraft
Don't forget to set up port forwarding on your router!  The default port is 25565
Installing screen, sudo, net-tools, curl...
Hit:1 http://raspbian.raspberrypi.org/raspbian buster InRelease
Hit:2 http://archive.raspberrypi.org/debian buster InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
net-tools is already the newest version (1.60+git20180626.aebd88e-1).
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libutempter0
Suggested packages:
  byobu | screenie | iselect
The following NEW packages will be installed:
  libutempter0 screen
0 upgraded, 2 newly installed, 0 to remove and 7 not upgraded.
Need to get 555 kB of archives.
After this operation, 961 kB of additional disk space will be used.
Get:1 http://raspbian.mirrors.lucidnetworks.net/raspbian buster/main armhf libutempter0 armhf 1.1.6-3 [7,736 B]
Get:2 http://mirror.pit.teraswitch.com/raspbian/raspbian buster/main armhf screen armhf 4.6.2-3+deb10u1 [547 kB]
Fetched 555 kB in 1s (449 kB/s) 
Selecting previously unselected package libutempter0:armhf.
(Reading database ... 49878 files and directories currently installed.)
Preparing to unpack .../libutempter0_1.1.6-3_armhf.deb ...
Unpacking libutempter0:armhf (1.1.6-3) ...
Selecting previously unselected package screen.
Preparing to unpack .../screen_4.6.2-3+deb10u1_armhf.deb ...
Unpacking screen (4.6.2-3+deb10u1) ...
Setting up libutempter0:armhf (1.1.6-3) ...
Setting up screen (4.6.2-3+deb10u1) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for install-info (6.5.0.dfsg.1-4+b1) ...
Processing triggers for libc-bin (2.28-10+rpt2+rpi1) ...
Processing triggers for systemd (241-7~deb10u8+rpi1) ...
Enter root directory path to install Minecraft server.  Almost nobody should change this unless you're installing to a different disk altogether. (default ~): 
Directory Path: 
Directory Path : /home/pi -- accept (y/n)?y
Directory Path: /home/pi
Creating minecraft server directory...
Installing OpenJDK...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  182M  100  182M    0     0  5453k      0  0:00:34  0:00:34 --:--:-- 8703k
main: line 221: [[: main: line 220: /home/pi/minecraft/jre/bin/java: cannot execute binary file: Exec format error: syntax error in expression (error token is ": line 220: /home/pi/minecraft/jre/bin/java: cannot execute binary file: Exec format error")
main: line 221: [[: main: line 220: /home/pi/minecraft/jre/bin/java: cannot execute binary file: Exec format error: syntax error in expression (error token is ": line 220: /home/pi/minecraft/jre/bin/java: cannot execute binary file: Exec format error")
OpenJDK installation completed.
Getting total system memory...
Total memory: 1872 - Available Memory: 1732
Total memory: 1872 - Available Memory: 1732
Please enter the amount of memory you want to dedicate to the server.  A minimum of 700MB is recommended.
You must leave enough left over memory for the operating system to run background processes.
If all memory is exhausted the Minecraft server will either crash or force background processes into the paging file (very slow).
Enter amount of memory in megabytes to dedicate to the Minecraft server (recommended: 1432): 1200
Amount of memory for Minecraft server selected: 1200 MB
Getting latest Paper Minecraft server...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   543  100   543    0     0   3271      0 --:--:-- --:--:-- --:--:--  3290
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 33.1M  100 33.1M    0     0  7343k      0  0:00:04  0:00:04 --:--:-- 7345k
Building the Minecraft server...
bash: line 357: /home/pi/minecraft/jre/bin/java: cannot execute binary file: Exec format error
Accepting the EULA...
Grabbing start.sh from repository...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 11987  100 11987    0     0  62432      0 --:--:-- --:--:-- --:--:-- 62108
Grabbing stop.sh from repository...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1631  100  1631    0     0   8816      0 --:--:-- --:--:-- --:--:--  8816
Grabbing restart.sh from repository...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2207  100  2207    0     0  10871      0 --:--:-- --:--:-- --:--:-- 10925
Grabbing fixpermissions.sh from repository...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1582  100  1582    0     0   7031      0 --:--:-- --:--:-- --:--:--  7031
Grabbing update.sh from repository...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   607  100   607    0     0   3178      0 --:--:-- --:--:-- --:--:--  3178
Enter a name for your server...
Server Name: rotormine
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   311  100   311    0     0   1611      0 --:--:-- --:--:-- --:--:--  1619
Minecraft can automatically start at boot if you wish.
Start Minecraft server at startup automatically (y/n)?y
Created symlink /etc/systemd/system/multi-user.target.wants/minecraft.service → /etc/systemd/system/minecraft.service.
Your time zone is currently set to America/Chicago.  Current system time: Wed 11 May 21:45:11 CDT 2022
You can adjust/remove the selected reboot time later by typing crontab -e
Automatically reboot Pi and update server at 4am daily (y/n)?y
no crontab for pi
Daily reboot scheduled.  To change time or remove automatic reboot type crontab -e
Setting server file permissions...
tail: cannot open '' for reading: No such file or directory
Setup is complete.  Starting Minecraft server...
Must be connected to a terminal.
Must be connected to a terminal.
pi@rotormine:~ $ screen -ls
No Sockets found in /run/screen/S-pi.

Update for Ubuntu Server 19.10 please.

Appears the only thing that needs to be changed for 19.10 is the JDK, says the default is 58(?) after downloading OpenJDK 11 (not headless) and setting it as default it ran fine.

Downloading latest not working ""(6) Could not resolve host: paperclip.jar"

With the command from start.sh script
curl -H "Accept-Encoding: identity" -H "Accept-Language: en" -L -A -o paperclip.jar https://papermc.io/api/v1/paper/verselect/latest/download

we always receive error
"(6) Could not resolve host: paperclip.jar"

If we call the above URL directly the browser shows a "Whitelabel Error Page" telling that "There was an unexpected error (type=Not Found, status=404)."

So we will be nailed to the installed version (fix #143) although there should be an automatic daily update to newest version at 4 a.m. :-(
We are using Ubuntu 20 on a raspi4.

Unable to Set Path Variable - restart.sh

image
Error is thrown every time restart.sh is run. Every fresh installation I've had has had this error so far, I've made sure my Pi is up to date every time too.

100% Reproducible on Pi 4 (8gb) when using Raspberry Pi OS Lite (64bit), booting from USB drive. (I believe it happened too with booting from SD card.) I can provide additional details if requested, thanks. I only access the system through SSH but I doubt that would be related.

Minecraft Screen Automatically Closes on Boot

Hello,

I am currently attempting to run a minecraft server on my Raspberry Pi 4, 4GB Ram, 64GB Microsd. After the completion of the setup, it did cd ~/minecraft/ then ./start.sh and it proceeded to boot up. Immediately after the spawn point was loaded, the server gave no errors (to my knowledge) and it said screen terminated. After this, I ensure it wasn't running, than ran updates on the Raspberry Pi itself, rebooted it, and tried it again. To no prevail. I am unsure why this is happening and can't figure it out myself.

Unsupported Java detected (61.0)

When I try to start a server on version 1.13 to 1.16.5 I get the following error during the setup:

...
Building the Minecraft server...
Downloading vanilla jar...
Patching vanilla jar...
Unsupported Java detected (61.0). Only up to Java 13 is supported.
Accepting the EULA...
...

...
Minecraft can automatically start at boot if you wish.
Start Minecraft server at startup automatically (y/n)?n
Your time zone is currently set to Europe/Berlin. Current system time: Mon 16 May 18:59:38 CEST 2022
You can adjust/remove the selected reboot time later by typing crontab -e
Automatically reboot Pi and update server at 4am daily (y/n)?n
Setting server file permissions...
tail: cannot open '' for reading: No such file or directory
Setup is complete. Starting Minecraft server...
There is no screen to be resumed matching minecraft.
There is no screen to be resumed matching minecraft.
...

This one is for version 1.14.4. The only difference between the versions is the Unsupported java error.

I'm using a Pi 4 8gb and Raspbian 64bit OS

Version 1.11.2, 1.12.2, 1.17 and 1.18 work

1.20 update?

Hello!

Minecraft 1.20 has been released on 5'o clock PM at the 7th June and unfortunately, it's not currently available in this script, so I wanted to ask you: Can you add this Minecraft version to your plugin? That may be nice :)

1.20 is currently available for Paper and Bedrock.

Suggestion: Update backup script to utilize all cores

As per the examples in the post on this blog, one can decrease the time needed to compress files into a gzipped tarball by adding in an external compressor. This would be ideal for multi-core Pi/other embedded ARM boards/etc. (and any other systems that may utilize your scripts, as I'm personally using it to make my life easier on a low-end quadcore amd64 thin client with the network checks commented out, which works quite well in fact!)

by changing the script to read as such...

tar -I pigz --exclude='./backups' --exclude='./cache' --exclude='./logs' --exclude='./jre' --exclude='./paperclip.jar' -pvcf backups/$(date +%Y.%m.%d.%H.%M.%S).tar.gz ./*

...it will now utilize all available cores to make the backup instead of only utilizing a single core and allow the backup to go faster by a factor of 2-3 times. This makes sense both for a faster startup experience for a small server instance and also for a server that has been running for a long time with many chunks, or a pre-generated world with many chunks. Additionally, after this it might be a good idea to throw in a sync command to be sure the data is fully flushed to disk/SD card/etc. before starting the java instance since it doesn't hurt anything.

I've already tested this in my own startup script and it works splendidly, and while I don't have a modern pi to test it out with, it should be safe to use going forward on those so long as tar is able to recognize the -I pigz argument with -pvcf at the end instead.

Server does not start

With a rapsberry Pi 3B+ starting the server with ./start.sh results in Updating to most recent paperclip version ... which is 95 and then seemingly starting the server.
screen -r minecraft results in "There is no screen to be resumed matching minecraft".

This is an endless loop. ./fixpermissions.sh does not help ./update does not help either.

Screen output of ./update.sh
pi@raspberrypi:~/minecraft $ ./update.sh
./update.sh: 8: [[: not found
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17647  100 17647    0     0  58627      0 --:--:-- --:--:-- --:--:-- 58823
Minecraft Server installation script by James A. Chambers - https://jamesachambers.com/
Version 1.18.1 will be installed.  To change this, open SetupMinecraft.sh and change the "Version" variable to the version you want to install.
Latest version is always available at https://github.com/TheRemote/RaspberryPiMinecraft
Don't forget to set up port forwarding on your router!  The default port is 25565
Installing screen, sudo, net-tools, curl...
Hit:1 http://raspbian.raspberrypi.org/raspbian bullseye InRelease
Hit:2 http://archive.raspberrypi.org/debian bullseye InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
curl is already the newest version (7.74.0-1.3+deb11u1).
screen is already the newest version (4.8.0-6).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
net-tools is already the newest version (1.60+git20181103.0eebece-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Installing latest Java OpenJDK...
OpenJDK installation completed.
Java installed successfully
Enter root directory path to install Minecraft server.  Almost nobody should change this unless you're installing to a different disk altogether. (default ~):
Directory Path: ~
Directory Path : ~ -- accept (y/n)?y
Directory Path: ~
Directory minecraft already exists!  Updating scripts and configuring service ...
Getting total system memory...
Total memory: 923 - Available Memory: 817
Total memory: 923 - Available Memory: 817
Please enter the amount of memory you want to dedicate to the server.  A minimum of 700MB is recommended.
You must leave enough left over memory for the operating system to run background processes.
If all memory is exhausted the Minecraft server will either crash or force background processes into the paging file (very slow).
Enter amount of memory in megabytes to dedicate to the Minecraft server (recommended: 517): 517M
main: line 106: [[: 517M: value too great for base (error token is "517M")
main: line 108: [[: 517M: value too great for base (error token is "517M")
main: line 110: [[: 517M: value too great for base (error token is "517M")
main: line 103: [[: 517M: value too great for base (error token is "517M")
main: line 103: [[: 517M: value too great for base (error token is "517M")
Amount of memory for Minecraft server selected: 517M MB
Grabbing start.sh from repository...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 11323  100 11323    0     0  41476      0 --:--:-- --:--:-- --:--:-- 41476
Grabbing stop.sh from repository...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1631  100  1631    0     0   6421      0 --:--:-- --:--:-- --:--:--  6421
Grabbing restart.sh from repository...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2205  100  2205    0     0   8480      0 --:--:-- --:--:-- --:--:--  8448
Grabbing fixpermissions.sh from repository...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1579  100  1579    0     0   5936      0 --:--:-- --:--:-- --:--:--  5958
Grabbing update.sh from repository...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   607  100   607    0     0   2215      0 --:--:-- --:--:-- --:--:--  2215
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   311  100   311    0     0   1033      0 --:--:-- --:--:-- --:--:--  1029
Minecraft can automatically start at boot if you wish.
Start Minecraft server at startup automatically (y/n)?y
Setting server file permissions...
Your time zone is currently set to Europe/London.  Current system time: Wed 22 Dec 10:40:01 GMT 2021
You can adjust/remove the selected reboot time later by typing crontab -e
Automatically reboot Pi and update server at 4am daily (y/n)?y
Daily reboot scheduled.  To change time or remove automatic reboot type crontab -e
Minecraft installation scripts have been updated to the latest version!
pi@raspberrypi:~/minecraft $

Setting up the script gives a error.

When I run the script and get to the 'Choose if you want daily reboot section' it gives a error
Setting server file permissions...
tail: cannot open '' for reading: No such file or directory
Then:
Setup is complete. Starting Minecraft server...
Must be connected to a terminal.
Must be connected to a terminal.
If I continue after this and run the start.sh script it doesn't turn the server on.
Is there any way I could fix that?
Thanks Squawkykaka

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.