Upgrading Multicraft


Content

Linux - Quick Guide

The "setup.sh" script can be used to simply install a new release over an existing installation. It will keep existing server files in place.
Be sure to back up your entire installation (files and databases) first.

See the Installation Quick Guide on how to use the setup.sh. If you have not deleted the installation directory after the previous installation run it might already have most of the answers pre-filled.


Linux/Windows - Manual Upgrade

It is possible to upgrade the panel first and then upgrade each daemon individually. That way a large installation can be upgraded with minimal overall downtime. It is not recommended to mix panel and daemon versions other than during a short period while the upgrade is underway.
Be sure to back up your entire installation (files and databases) first.

Upgrade the Panel

To upgrade the panel you can simply replace all panel files with the one ones from the "panel" folder in the Multicraft archive.
To do a clean upgrade you can delete all but the "protected/runtime" and "protected/data" directories before putting the new files in place.

Upgrade the Databases

After upgrading the panel you need to re-run the install.php to upgrade the two databases. You can simply click trough the install.php, no changes should be required. The database pages should show you a green message mentioning database upgrades being applied.

Upgrade the Daemon(s)

Upgrading the daemon consists of replacing the "bin" directory of your daemon installation with the new files from the Multicraft package. Depending on your system you might have to stop the daemon first (by default: /home/minecraft/multicraft/bin/multicraft stop" for Linux, or closing the command window for Windows).

When running under Linux in multiuser mode you also need to adapt the useragent permissions:
# chown root:minecraft bin/useragent
# chmod 4550 bin/useragent

The daemon can then be started or restarted:
/home/minecraft/multicraft/bin/multicraft restart


Windows Bitnami and All-in-one

See "Linux/Windows - Manual Upgrade" above. The path to the panel files is "apps\multicraft\htdocs" within your Bitnami installation directory and the path to the daemon bin directory is "apps\multicraft\bin".


Version Notes

2.1 Version Notes
No special update steps are necessary.


2.0 Version Notes
  • If you want to allow the new 2.0 panel to communicate with older daemons you have to enable the setting "Support Legacy Daemons" under "Settings" -> "Panel Configuration" -> "Show Advanced Options".
  • If you want to allow older API clients to access the new 2.0 panel you have to enable the setting "Support Legacy API" under "Settings" -> "Panel Configuration" -> "Show Advanced Options".


1.8 Version Notes
If you didn't use the setup.sh script to update, please see the 1.7 version notes below.

It's recommended to delete the file protected/runtime/bukget.sqlite if it exists after applying this upgrade.


Configuration File Changes

Config File Changes in 2.1.0
New settings in 2.1.0 (only new settings are listed, see the multicraft.conf.dist for a full list of available settings).
[multicraft]
## The User-Agent string to use for server executable and config file downloads
#downloadUserAgent = Your Custom User-Agent
## The User-Agent string to use for plugin downloads
#downloadUserAgentPlugins = Your Custom User-Agent
## Whether or not to add version/architecture/OS parameters when downloading
## config files
## default: true
#downloadAddVersionInfo = true

## When enabled the remote host will be verified when using HTTPS, otherwise
## the host and certificate checks are skipped.
## default: false
#secureDownloads = false

## The CA certificate bundle to use for verifying secure downloads. If set to
## "auto" the daemon will try a set of default paths.
## default: auto
#caBundle = /etc/ssl/certs/ca-certificates.crt

[docker]
All settings in this section are new.


Config File Changes in 2.0.0
New settings in 2.0.0 (only new settings are listed, see the multicraft.conf.dist for a full list of available settings).
[multicraft]
## The maximum number of daemon connections a single client can open.
## default: 50
#maxClientConnections = 50

## The directory containing server templates
## default: templates (-> "baseDir"/templates)
templatesDir = templates

## This file defines the config file to use depending on the executable name
configsFile = server_configs.conf
## This config file contains the default server configuration. It is not
## in the "jar" directory so it does not get listed as a selection in the
## JAR File dropdown.
defaultConfigFile = default_server.conf

## Log all commands the daemon receives from the panel
## default: false
#logCommands = false

## Log server console output to the log file under these conditions:
## always - Always log server console output
## startup - Only log server console output during server startup
## running - Only log server console output after server startup
## never - Never log server console output
## default: startup
#logServerConsole = startup

## The timeout for template setup operations in seconds
## default: 600
#templateSetupTimeout=600

## Disables the template functionality. Please use the setting in the panel to
## disable it there.
## default: false
#templatesDisabled=false

## Advanced: Use TCP keepalive for daemon connections
## default: true
#tcpKeepAlive = true
## Advanced: Use TCP keepalive for FTP connections
## default: true
#ftpTcpKeepAlive = true
## TCP keepalive parameters, use 0 for system default
## default: 0
tcpKeepAliveIdle = 60
tcpKeepAliveInterval = 5
tcpKeepAliveCount = 6

## Advanced: Prefer IPv4 for version check requests.
## Can speed up hostname lookup.
## default: true
#preferIPv4 = true

## Whether to delete the server directory on the old daemon after a server
## move. This is disable by default for safety.
## default: false
#deleteAfterMove = false

## Only allow a single script to be run at a time for each server. If disabled
## there is no limit on the number of scripts that can be running at the same
## time.
## default: false
singleScriptPerServer = true

## The timeout for server executable and config file downloads in seconds.
## default: 15
#downloadTimeout = 15

[ftp]
## Set the level of detail for FTP server log messages in the multicraft.log.
## Errors will always be logged, regardless of this setting.
## Available levels:
## full  - Log all messages
## basic - Don't log client/server communication
## none  - No FTP logging
## default: full
ftpLogLevel = full
## If this setting is enabled the FTP server will not be started when the main
## daemon process is started. You can start the FTP server separately by using
## "start_ftp" instead of "start" as the parameter to the daemon command.
## default: false
ftpSeparate = false
## The PID file for the FTP only process. The path is relative to "baseDir"
## default: multicraft_ftp.pid
ftpPidFile = multicraft_ftp.pid
## The log file to use for the FTP only process. This setting has no effect if
## the FTP server is started as part of the main daemon process (i.e. if
## "ftpSeparate" is false.
## default: multicraft.log (same as the daemon)
ftpLogFile = multicraft.log
## Throttle the FTP bandwidth (experimental)
## Incoming data throttle (Kb/s)
## default: 0 (unlimited) 
#ftpThrottleIn = 0
## Outgoing data throttle (Kb/s)
## default: 0 (unlimited) 
#ftpThrottleOut = 0

[system]
## Enable or disable Linux quota support
## default: false
#enableQuota = false

## The command to set the Linux user quota
## The following variables can be used:
## - Variables from "addUser" comment
## - {QUOTA} The disk space quota in MB
## - {QUOTA_BLOCKS} The disk space quota in blocks
#setUserQuota = /usr/sbin/setquota -u "{USER}" 0 "{QUOTA_BLOCKS}" 0 0 -a

## The script used to fetch quota usage information for the current user
## (in blocks)
## default: scripts/getquota.sh
#quotaCheckScript = scripts/getquota.sh

## The minimum time in seconds between two quota usage checks
## default: 20
#quotaCheckDelay = 20

## The kernel block size to use for quota calculation
## default: 1024
#quotaBlockSize = 1024

## The command to pack a zip file. The following variables can be used:
## - {FILE} The name of the zip archive to create
## - {MULTICRAFT_DIR} The daemon base directory
packCmd = /usr/bin/unzip -quo "{FILE}"
## The same setting for Windows systems
packCmdWin = "{MULTICRAFT_DIR}\bin\unzip.exe" -quo "{FILE}"



Config File Changes in 1.8.0
New settings in 1.8.0
[multicraft]
## The maximum number of daemon connections to allow to this daemon.
## default: 500
#maxConnections = 500

## Allow symlinks where directories are expected. This check is done for
## security.
## default: false
#allowSymlinks = false

## Skip the integrity check for directories. This check is done for
## security, it verifies that a directory entry is consistent with its
## filesystem entry. You can disable this if this check causes issues
## on your particular filesystem.
#default: false
#skipIntegrityCheck = false