· 6 years ago · Nov 13, 2019, 06:06 PM
1## This is the main configuration file for the Multicraft daemon. Any change to
2## this file requires a restart of the daemon or a reload through the panel
3## under Settings->Operations. Not all settings can be reloaded while the
4## daemon is running.
5## Lines with a '#' in front of them are disabled and will not have any effect.
6## Remove the '#' to enable the setting.
7[multicraft]
8## The daemon will run under this user (not used for Windows)
9user = minecraft
10## Directories created by Multicraft will have the owner set to
11## the user and the group set to the webUser (not used for Windows)
12## default: same as "user"
13webUser =
14
15## The daemon will listen on the following IP/port.
16## 0.0.0.0 to listen on all available interfaces (all IPs). Note that
17## you will have to use the "externalIp" setting below if you set this
18## to 0.0.0.0 as the control panel needs to know where to connect.
19ip = 0.0.0.0
20port = 25465
21
22## If the external address is different from the listen address
23## you can set the external address here. This setting will be saved
24## to the DB and used by the control panel to connect to the daemon.
25## default: same as "ip"
26externalIp =104.225.141.196
27
28## The connection password for daemon communication
29## !! Change this when you set Multicraft to listen on a public IP !!
30## The same password will have to be used on the panel side in the file:
31## protected/config/config.php
32password = none
33
34## Remote IP restrictions for daemon connections. This is a comma separated
35## list of IPs that are allowed to connect to this daemon. Empty for all
36## remote IPs allowed.
37## default: empty
38#allowedIps = 104.225.141.10
39
40## The maximum number of daemon connections to allow to this daemon.
41## default: 500
42#maxConnections = 500
43
44## The maximum number of daemon connections a single client can open.
45## default: 50
46#maxClientConnections = 50
47
48
49## The daemon ID, only the Dynamic license supports this setting.
50## Running multiple servers with the same IDs can cause unpredictable behavior
51## Valid values: 1, 2, ..., 65535
52id = 1
53
54## The database containing daemon
55## default: sqlite:data.db (-> "baseDir"/"dataDir"/data.db)
56database = mysql:host=192.185.16.115;dbname=jackshar_daemon
57## Example for MySQL connections:
58database = mysql:host=192.185.16.115;dbname=jackshar_daemon
59dbUser = jackshar_daemon
60dbPassword = 252649
61#dbCharset = utf8
62
63## A name for this daemon, this is optional
64## default: Multicraft Daemon
65#name =
66
67## The daemon group this daemon belongs to. Currently only used to determine
68## which .jar.conf files are available.
69## default: empty
70#group =
71
72## The amount of memory available to this daemon in MB. This setting mainly
73## serves informational purpose for display in the control panel and
74## for the API to decide if this daemon can still run more servers.
75## 0 means undefined
76## default: 0
77#totalMemory =
78
79## The base directory of the multicraft install. Relative to the users
80## home directory or absolute. Must exist.
81## default: multicraft (-> /home/"user"/multicraft)
82baseDir = /home/minecraft/multicraft
83## The directory the daemon binaries reside in
84## default: bin (-> "baseDir"/bin)
85daemonDir = bin
86## The data directory. Contains the database, socket, log and
87## must be accessible by the control panel user if using a SQLite DB
88## default: data (-> "baseDir"/data)
89dataDir = data
90## The directory jar files can be placed in
91## default: jar (-> "baseDir"/jar)
92jarDir = jar
93## The directory containing all the servers. Users can be given access
94## to specific subdirectories containing their server data
95## default: servers (-> "baseDir"/servers)
96serversDir = servers
97## The directory containing server templates
98## default: templates (-> "baseDir"/templates)
99templatesDir = templates
100## The following files contain daemon specific data.
101## The paths specified are relative to "baseDir"
102pidFile = multicraft.pid
103logFile = multicraft.log
104licenseFile = multicraft.key
105scriptsFile = scripts.conf
106## This file defines the config file to use depending on the executable name
107configsFile = server_configs.conf
108## This config file contains the default server configuration. It is not
109## in the "jar" directory so it does not get listed as a selection in the
110## JAR File dropdown.
111defaultConfigFile = default_server.conf
112
113## Note that for all of the above settings where a file or directory is
114## indicated you can also use absolute paths (/dir), home-relative
115## paths (~/dir) or relative paths (./dir or ../dir). "dir" stands for
116## the setting you're editing.
117## When not using absolute/relative paths the setting is taken to be
118## relative to the home directory of the user configured by the "user"
119## setting.
120## Examples:
121## - Changing "baseDir" to ./multicraft will cause multicraft to search
122## all the files in a subdirectory "multicraft" of the directory it's
123## called from
124## - Changing "logFile" to ~/multicraft.log will cause Multicraft to log
125## everything to the file multicraft.log in the home directory of the
126## user configured by the "user" setting
127
128## The maximum size of one logfile after which the log will be rotated
129## default: 20971520 (20 MB)
130logSize = 20971520
131
132## The number of log files to keep (multicraft.log.1 ... multicraft.log.X)
133## default: 9
134logCount = 9
135
136## Synchronize log writes. Disabling this will improve performance at the
137## risk of having some log entries overlap.
138## default: true
139#logSync = false
140
141## Use thesyslog facility instead of logging to a file.
142## default: false
143#logSyslog = true
144
145## The syslog facility to log to. Possible values: auth, cron, daemon,
146## kern, lpr, mail, news, security, syslog, user, uucp, local10-17
147## default: daemon
148#logFacility = daemon
149
150## Log all commands the daemon receives from the panel
151## default: false
152#logCommands = false
153
154## Log server console output to the log file under these conditions:
155## - always Always log server console output
156## - startup Only log server console output during server startup
157## - running Only log server console output after server startup
158## - never Never log server console output
159## default: startup
160#logServerConsole = startup
161
162## Delay between server auto-starts in milliseconds.
163## default: 750
164autostartDelay = 750
165
166## Automatically update server binaries, conf files or both on daemon
167## startup. Valid values:
168## - empty Don't update anything on startup
169## - base Update the server binaries and conf files for the base server
170## types that come with Multicraft. Currently:
171## minecraft_server.jar.conf, minecraft_optimized.jar.conf,
172## craftbukkit.jar.conf, spigot.jar.conf
173## - initial Same as "base" but only update if the jar files don't exist
174## - binary Update all server binaries on daemon startup
175## - conf Update all server conf files on daemon startup
176## - both Update all server binaries and conf files on daemon startup
177## default: empty
178startupServerUpdate = initial
179
180## A list of section names in .conf files that can safely be defined
181## or overridden by users. Note that this is just a default value that
182## can itself be overridden in the .conf files in the daemon directory.
183## Use * to allow all sections or a regular expression matching allowed
184## sections only.
185## default: ^(encoding|commands|parse_.+)$
186#safeConfSections = ^(encoding|commands|parse_.+)$
187
188## Allow symlinks where directories are expected. This check is done for
189## security.
190## default: false
191#allowSymlinks = false
192
193## Skip the integrity check for directories. This check is done for
194## security, it verifies that a directory entry is consistent with its
195## filesystem entry. You can disable this if this check causes issues
196## on your particular filesystem.
197## default: true
198#skipIntegrityCheck = false
199
200## The timeout for template setup operations in seconds
201## default: 600
202#templateSetupTimeout = 600
203
204## Disables the template functionality. Please use the setting in the panel to
205## disable it there.
206## default: false
207#templatesDisabled = false
208
209## Advanced: Use TCP keepalive for daemon connections
210## default: true
211#tcpKeepAlive = true
212## Advanced: Use TCP keepalive for FTP connections
213## default: true
214#ftpTcpKeepAlive = true
215## TCP keepalive parameters, use 0 for system default
216## default: 0
217tcpKeepAliveIdle = 60
218tcpKeepAliveInterval = 5
219tcpKeepAliveCount = 6
220## Advanced: Set global timeout for TCP connections in seconds, 0 for no
221## timeout
222## default: 120
223tcpTimeout = 120
224
225## Advanced: Prefer IPv4 for version check requests.
226## Can speed up hostname lookup.
227## default: true
228#preferIPv4 = true
229
230## Whether to delete the server directory on the old daemon after a server
231## move. This is disabled by default for safety.
232## default: false
233#deleteAfterMove = false
234
235## Only allow a single script to be run at a time for each server. If disabled
236## there is no limit on the number of scripts that can be running at the same
237## time.
238## default: false
239singleScriptPerServer = true
240
241## The timeout for server executable and config file downloads in seconds.
242## default: 15
243#downloadTimeout = 15
244## The User-Agent string to use for server executable and config file downloads
245#downloadUserAgent = Your Custom User-Agent
246## The Headers to add for server executable and config file downloads
247#downloadHeaders = {"Header1": "Value", "Header2": "Value"}
248## A list of ciphers to use for downloads
249#downloadCiphers = ECDHE-ECDSA-AES128-GCM-SHA256:...
250## Same settings as above but for plugin downloads
251#downloadUserAgentPlugins = Your Custom User-Agent
252#downloadHeadersPlugins = {"Header1": "Value", "Header2": "Value"}
253#downloadCiphersPlugins = ECDHE-ECDSA-AES128-GCM-SHA256:...
254## Whether or not to add version/architecture/OS parameters when downloading
255## config files
256## default: true
257#downloadAddVersionInfo = true
258
259## When enabled the remote host will be verified when using HTTPS, otherwise
260## the host and certificate checks are skipped.
261## default: false
262#secureDownloads = false
263
264## The CA certificate bundle to use for verifying secure downloads. If set to
265## "auto" the daemon will try a set of default paths.
266## default: auto
267#caBundle = /etc/ssl/certs/ca-certificates.crt
268
269## Stop automatically restarting a crashed server if it exceeds a certain
270## number of restarts within a set time period. For example: With
271## crashRestartLimit=10 and crashRestartPeriod=300 a server will no longer
272## automatically restart when it crashes if it already crashed 10 times within
273## the last 5 minutes
274##
275## The number of crash related restarts after which to stop restarting a
276## server. 0 to disable.
277## default: 0
278crashRestartLimit = 0
279## The period in seconds during which to count crash related automatic server
280## restarts. If this is set to 0 the server will stop restarting regardless of
281## the time period the restart limit was hit in.
282## default: 300
283#crashRestartPeriod = 300
284
285[useragent]
286## The path to the Multicraft useragent. This program is used in
287## multiuser mode to access user files.
288## default: bin (-> "baseDir"/bin, same as daemonDir)
289#userAgentDir = bin
290## The executable of the Multicraft useragent. Note that a config
291## file with the same name as this setting (plus .conf) will be
292## generated next to this file.
293## default: useragent (-> "baseDir"/"userAgentDir"/useragent)
294#userAgentFile = useragent
295## The minimum allowed user and group IDs for server users
296## default: 100
297#userAgentMinUid = 100
298#userAgentMinGid = 100
299## The script to run when a server is being prepared. The path is
300## relative to the userAgentDir.
301## NOTE: This script will be run as the superuser.
302## default: empty
303#userAgentSuperuserPrepare =
304## The script to run when a server is being prepared. The path is
305## relative to the baseDir.
306## default: empty
307#userAgentPrepare =
308## Various useragent configuration options
309#userAgentCp = /bin/cp
310#userAgentCpOpts = --preserve=mode,timestamps --
311#userAgentDirCpOpts = -r --preserve=mode,timestamps --
312#userAgentUnzip = /usr/bin/unzip
313#userAgentUnzipOpts = -qql
314#userAgentUnzipRe = ^(?:\s+[^\s]+){3}\s+(.*)$
315
316
317[launcher]
318## The path to the Multicraft launcher. This launcher program enables
319## Multicraft to run servers that need a console to run correctly.
320## default: launcher (-> "baseDir"/launcher)
321#launcherDir = launcher
322## The executable of the Multicraft launcher
323## default: launcher (-> "baseDir"/"launcherDir"/launcher)
324#launcherFile = launcher
325
326## Integrated FTP server settings
327[ftp]
328## Wheter or not to enable the integrated FTP server, true/false
329## default: true
330enabled = true
331## IP to listen on for FTP connections, uncomment to use the same as
332## for the daemon.
333## 0.0.0.0 means listening on all available interfaces (all IPs)
334## default: same as the "ip" setting for the daemon, see above
335ftpIp = 0.0.0.0
336## See the descriptions of "externalIp" and "ip" for the daemon above
337## default: same as "externalIp" if "ftpIp" is "0.0.0.0" otherwise "ftpIp"
338ftpExternalIp = 104.225.141.10
339## Masquerade IP address to use for passive FTP connections when
340## Multicraft is running behind a router.
341## default: empty
342#ftpNatIp =
343## A port range to use for passive data transfers. If this is not
344## specified the FTP server will use random ports.
345## Format: 4000-8000
346## default: empty
347#ftpPasvPorts =
348## Port to listen on for incoming FTP connections. Change this to
349## something else if you are already running an FTP server on this
350## system.
351## default: 21
352ftpPort = 21
353## Regular expression matching files that can't be manipulated by
354## users in any way. If you want users to be able to upload their own
355## plugins instead of using the ones you provide for them you can
356## just comment this option out.
357## default: empty
358forbiddenFiles = \.(jar|exe|bat|pif|sh)$
359## Set the level of detail for FTP server log messages in the multicraft.log.
360## Errors will always be logged regardless of this setting.
361## Available levels:
362## - full Log all messages
363## - basic Don't log client/server communication
364## - none No FTP logging
365## default: full
366ftpLogLevel = full
367## If this setting is enabled the FTP server will not be started when the main
368## daemon process is started. You can start the FTP server separately by using
369## "start_ftp" instead of "start" as the parameter to the daemon command.
370## default: false
371ftpSeparate = false
372## The PID file for the FTP only process. The path is relative to "baseDir"
373## default: multicraft_ftp.pid
374ftpPidFile = multicraft_ftp.pid
375## The log file to use for the FTP only process. This setting has no effect if
376## the FTP server is started as part of the main daemon process (i.e. if
377## "ftpSeparate" is false.
378## default: multicraft.log (same as the daemon)
379ftpLogFile = multicraft.log
380## Throttle the FTP bandwidth (experimental)
381## Incoming data throttle (Kb/s)
382## default: 0 (unlimited)
383#ftpThrottleIn = 0
384## Outgoing data throttle (Kb/s)
385## default: 0 (unlimited)
386#ftpThrottleOut = 0
387
388## Starts an FTPS server when enabled
389## default: false
390#ftps = false
391
392## The certificate file to use for the FTPS server. This is required when the
393## "ftps" setting is enabled. You can generate your own self signed certificate
394## as described here:
395## https://httpd.apache.org/docs/2.4/ssl/ssl_faq.html#selfcert
396## It's not recommended to use the default certificate for live deployments.
397## default: ssl/ftps.pem
398#ftpsCertfile = ssl/ftps.pem
399## The key file to use for the FTPS server. This can be left empty if the key
400## is already contained in the certificate file.
401## default: empty
402#ftpsKeyfile =
403## Enable this to force users to use FTPS
404## default: false
405#ftpsForce = false
406## This will allow some older protocols considered insecure to be used by the
407## FTPS server to improve compatibility with older clients.
408## default: false
409#ftpsCompatMode = false
410
411## Minecraft default settings
412[minecraft]
413## The default amount of reserved memory
414## default: 1024
415memory = 1024
416## The name of the java executable
417## default: /usr/bin/java
418java = /usr/bin/java
419## The jar file to use. This file will be looked for in the "base"
420## directory as configured above
421## default: minecraft_server.jar
422jar = minecraft_server.jar
423
424## Backup settings
425[backup]
426## The command to run a backup. The following variables can be used:
427## - {WORLD} The name of the world being backed up
428## - {SERVER_DIR} The directory of the server (working directory)
429## - {MULTICRAFT_DIR} The Multicraft base directory ("baseDir" above)
430## - {BASE_DIR} The directory containing all the servers ("serversDir above")
431## Note that the resulting files is expected to be named "{WORLD}-tmp.zip"
432command = /usr/bin/zip -qr "{WORLD}-tmp.zip" . -i "{WORLD}"*/*
433## The same setting for Windows systems
434commandWin = "{MULTICRAFT_DIR}\bin\zip.exe" -qr "{WORLD}-tmp.zip" "{WORLD}"*/
435## Uncomment the following commands to backup the entire server directory
436## instead of just the current world
437## command = /usr/bin/zip -qr "{WORLD}-tmp.zip" . --exclude {WORLD}*.zip
438## commandWin = "{MULTICRAFT_DIR}\bin\zip.exe" -qr "{WORLD}-tmp.zip" . --exclude {WORLD}*.zip
439
440## System settings
441[system]
442## Most of the settings below are for Linux only
443
444## Whether or not to use one system user per Minecraft server.
445## This is recommended if you let your users upload untrusted executables.
446## Note that for every server a new system user is automatically created
447## if this option is enabled (user name format and commands configured below).
448## default: false
449multiuser = true
450
451## Display the output of this command in the panel under
452## "Settings"->"Multicraft Status"
453## default: empty
454#infoCmd = uptime
455#infoCmdWin =
456
457## The name format for new users, the following variables can be used:
458## - {ID} The server ID
459## default: mc{ID}
460userFormat = mc{ID}
461## The name format for new groups, the following variables can be used:
462## - {ID} The server ID
463## - {USER} The full username
464## default: same as userFormat
465#groupFormat = {USER}
466
467## The commands to create and delete system users and groups
468## The following variables can be used:
469## - {USER} The full username
470## - {GROUP} The full groupname
471## - {ID} The server ID
472## - {DIR} The server base directory, used as the users home
473## These commands cannot contain escaped quotes or empty arguments
474addUser = /usr/sbin/useradd -c "Multicraft Server {ID}" -d "{DIR}" -g "{GROUP}" -s /bin/false "{USER}"
475addGroup = /usr/sbin/groupadd "{GROUP}"
476delUser = /usr/sbin/userdel "{USER}"
477delGroup = /usr/sbin/groupdel "{GROUP}"
478
479## Enable or disable Linux quota support
480## default: false
481#enableQuota = false
482
483## The command to set the Linux user quota
484## The following variables can be used:
485## - Variables from "addUser" comment
486## - {QUOTA} The disk space quota in MB
487## - {QUOTA_BLOCKS} The disk space quota in blocks
488#setUserQuota = /usr/sbin/setquota -u "{USER}" 0 "{QUOTA_BLOCKS}" 0 0 -a
489
490## The script used to fetch quota usage information for the current user
491## (in blocks)
492## default: scripts/getquota.sh
493#quotaCheckScript = scripts/getquota.sh
494
495## The minimum time in seconds between two quota usage checks
496## default: 20
497#quotaCheckDelay = 20
498
499## The kernel block size to use for quota calculation
500## default: 1024
501#quotaBlockSize = 1024
502
503## Regular expression for filtering file names. Any match gets replaced by "_".
504## Warning: Changing this is potentially dangerous
505## default: [\\/<>:|*?"'&;$~%\0]
506#fileFilter = [\\/<>:|*?"'&;$~%\0]
507
508## The command to unpack a zip file. The following variables can be used:
509## - {FILE} The name of the zip archive to restore
510## - {MULTICRAFT_DIR} The daemon base directory
511unpackCmd = /usr/bin/unzip -quo "{FILE}"
512## The same setting for Windows systems
513unpackCmdWin = "{MULTICRAFT_DIR}\bin\unzip.exe" -quo "{FILE}"
514
515## The command to pack a zip file. The following variables can be used:
516## - {FILE} The name of the zip archive to create
517## - {MULTICRAFT_DIR} The daemon base directory
518packCmd = /usr/bin/zip -qr "{FILE}" .
519## The same setting for Windows systems
520packCmdWin = "{MULTICRAFT_DIR}\bin\zip.exe" -qr "{FILE}" .
521
522## Settings for Docker support (EXPERIMENTAL)
523[docker]
524## Enable Docker support
525## default: false
526enabled = false
527
528## The name of the user that the container process should belong to. It's
529## recommended to create a new user that is used just for this, for example:
530## # adduser --disabled-login --no-create-home --ingroup users docker
531## default: docker
532#user = docker
533
534## The name of the "docker" group. This group needs to have access to the
535## docker daemon.
536## default: docker
537#group = docker
538
539## The full path to the "docker" executable
540## default: /usr/bin/docker
541#docker = /usr/bin/docker
542
543## The name of the Docker image to use
544## default: java:jre
545#image = java:jre
546
547## Memory in MB to add to server memory value for Docker containers
548## default: 128
549#memoryAdd = 128
550
551## CPU factor for each Docker container. Multiplies default CPU shares by this
552## value.
553## default: 1.0
554#cpuFactor = 1.0
555
556## If this is enabled the daemon will try to always show the external IP in the
557## server console instead of the IP used in the container.
558## default: true
559#maskIp = true
560
561## Format for volume definitions (see mounts below)
562## default: --volume=%s:%s:%s
563#volumeFormat = --volume=%s:%s:%s
564
565## Format for environment variable definitions
566## default: --env=%s=%s
567#envFormat = --env=%s=%s
568
569## Directories to mount inside the container. Uses the "volumeFormat" setting
570## to mount the directories. Format:
571## HOST_DIR[:[CONTAINER_DIR]:[MODE]]
572## If CONTAINER_DIR is omitted it is set to the same value as HOST_DIR.
573## MODE can be "rw" for writable or "ro" for read-only, defaults to "ro".
574#mounts = "{TEMPLATES_DIR}" "{MULTICRAFT_DIR}/scripts" "{DAEMON_JAR_DIR}" "{SERVER_DIR}::rw" "/usr/lib/locale"
575
576## Additional arguments to pass to Docker
577## default: empty
578#arguments =
579
580## The command to start the Docker container. See the [start] section of the
581## default "craftbukkit.jar.conf" for a list of available variables.
582## Additional variables:
583## - {DOCKER_ARGS} The additional arguments from the "arguments" setting
584## - {DOCKER_VOLUMES} The volume arguments generated from the "volumeFormat"
585## and "mounts" settings
586## - {DOCKER_ENVS} The env arguments generated using the "envFormat" setting
587## - {DOCKER_IMAGE} The docker image to use
588## - {DOCKER_MEMORY} The memory limit in MB to use for this container. This is
589## calculated as the server memory limit plus the "memoryAdd" setting
590## - {DOCKER_CPUSHARES} The CPU shares this container can use. This is
591## calculated using the "cpuFactor" setting (1024 * cpuFactor)
592## - {DOCKER_IP} The actual IP setting of the server. When running in a Docker
593## container the {IP} variable is always 0.0.0.0
594#command = run --rm -i -a stdin -a stdout -a stderr --read-only --tmpfs /tmp:exec --security-opt=no-new-privileges --cap-drop=ALL {DOCKER_ARGS} -p {DOCKER_IP}:{PORT}:{PORT} -w {WORKING_DIR} -u {UID}:{GID} -m {DOCKER_MEMORY}M --cpu-shares={DOCKER_CPUSHARES} --name=mc{SERVER_ID} {DOCKER_VOLUMES} {DOCKER_ENVS} {DOCKER_IMAGE}
595
596## The command to stop a container when a server did not shut down on its own
597## after a certain period of time
598#stopCommand = stop mc{SERVER_ID}
599
600## The command to kill a container when it does not close after sending the
601## stop command
602#killCommand = kill mc{SERVER_ID}
603
604## The command to determine the PID of the root process of a container
605#pidCommand = inspect -f "{{ .State.Pid }}" mc{SERVER_ID}
606
607## Docker settings can be overridden by conf files of server executables in the
608## [docker] section. This setting is a comma sepparated list of setting types
609## that can be overridden. Valid values:
610## - disable: Allows conf files to run without Docker ("enabled" setting)
611## - image: Allows conf files to change the image name ("image" setting)
612## - settings: Allows conf files to change general settings ("memoryAdd",
613## "cpuFactor", "maskIp" settings)
614## - command: Allows conf files to affect the final docker run command
615## ("mounts", "arguments", "command", "stopCommand", "killCommand")
616## default: image, settings
617#override = image, settings
618
619## Cleanup existing docker containers using the configured cleanup command
620## before trying to run a server.
621## default: false
622#cleanup = false
623
624## The command to cleanup an existing container before starting a server
625#cleanupCommand = rm -f mc{SERVER_ID}