· 6 years ago · Apr 01, 2020, 06:16 AM
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: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 = www-data:www-data
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 = 127.0.0.1
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"
26#externalIp =
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 = //Password removed//
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 = 127.0.0.1
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
52#id = 1
53
54## The database containing daemon
55## default: sqlite:data.db (-> "baseDir"/"dataDir"/data.db)
56#database = sqlite:data.db
57## Example for MySQL connections:
58database = mysql:host=127.0.0.1;port=3306;dbname=multicraft_daemon
59dbUser = root
60dbPassword = //Password removed//
61dbCharset = 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 = J:\Multicraft\vendor\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 = J:\Multicraft\data
90## The directory jar files can be placed in
91## default: jar (-> "baseDir"/jar)
92jarDir = J:\Multicraft\config\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 = J:\Multicraft\data\servers
97## The directory containing server templates
98## default: templates (-> "baseDir"/templates)
99templatesDir = J:\Multicraft\config\templates
100## The following files contain daemon specific data.
101## The paths specified are relative to "baseDir"
102pidFile = J:\Multicraft\tmp\multicraft.pid
103logFile = J:\Multicraft\log\multicraft.log
104licenseFile = J:\Multicraft\config\multicraft.key
105scriptsFile = J:\Multicraft\config\scripts.conf
106## This file defines the config file to use depending on the executable name
107configsFile = J:\Multicraft\config\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 = J:\Multicraft\config\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 User-Agent string to use for plugin downloads
247#downloadUserAgentPlugins = Your Custom User-Agent
248## Whether or not to add version/architecture/OS parameters when downloading
249## config files
250## default: true
251#downloadAddVersionInfo = true
252
253## When enabled the remote host will be verified when using HTTPS, otherwise
254## the host and certificate checks are skipped.
255## default: false
256#secureDownloads = false
257
258## The CA certificate bundle to use for verifying secure downloads. If set to
259## "auto" the daemon will try a set of default paths.
260## default: auto
261#caBundle = /etc/ssl/certs/ca-certificates.crt
262
263## Stop automatically restarting a crashed server if it exceeds a certain
264## number of restarts within a set time period. For example: With
265## crashRestartLimit=10 and crashRestartPeriod=300 a server will no longer
266## automatically restart when it crashes if it already crashed 10 times within
267## the last 5 minutes
268##
269## The number of crash related restarts after which to stop restarting a
270## server. 0 to disable.
271## default: 0
272crashRestartLimit = 0
273## The period in seconds during which to count crash related automatic server
274## restarts. If this is set to 0 the server will stop restarting regardless of
275## the time period the restart limit was hit in.
276## default: 300
277#crashRestartPeriod = 300
278
279[useragent]
280## The path to the Multicraft useragent. This program is used in
281## multiuser mode to access user files.
282## default: bin (-> "baseDir"/bin, same as daemonDir)
283#userAgentDir = bin
284## The executable of the Multicraft useragent. Note that a config
285## file with the same name as this setting (plus .conf) will be
286## generated next to this file.
287## default: useragent (-> "baseDir"/"userAgentDir"/useragent)
288#userAgentFile = useragent
289## The minimum allowed user and group IDs for server users
290## default: 100
291#userAgentMinUid = 100
292#userAgentMinGid = 100
293## The script to run when a server is being prepared. The path is
294## relative to the userAgentDir.
295## NOTE: This script will be run as the superuser.
296## default: empty
297#userAgentSuperuserPrepare =
298## The script to run when a server is being prepared. The path is
299## relative to the baseDir.
300## default: empty
301#userAgentPrepare =
302## Various useragent configuration options
303#userAgentCp = /bin/cp
304#userAgentCpOpts = --preserve=mode,timestamps --
305#userAgentDirCpOpts = -r --preserve=mode,timestamps --
306#userAgentUnzip = /usr/bin/unzip
307#userAgentUnzipOpts = -qql
308#userAgentUnzipRe = ^(?:\s+[^\s]+){3}\s+(.*)$
309
310
311[launcher]
312## The path to the Multicraft launcher. This launcher program enables
313## Multicraft to run servers that need a console to run correctly.
314## default: launcher (-> "baseDir"/launcher)
315#launcherDir = launcher
316## The executable of the Multicraft launcher
317## default: launcher (-> "baseDir"/"launcherDir"/launcher)
318#launcherFile = launcher
319
320## Integrated FTP server settings
321[ftp]
322## Wheter or not to enable the integrated FTP server, true/false
323## default: true
324enabled = true
325## IP to listen on for FTP connections, uncomment to use the same as
326## for the daemon.
327## 0.0.0.0 means listening on all available interfaces (all IPs)
328## default: same as the "ip" setting for the daemon, see above
329ftpIp = 0.0.0.0
330## See the descriptions of "externalIp" and "ip" for the daemon above
331## default: same as "externalIp" if "ftpIp" is "0.0.0.0" otherwise "ftpIp"
332#ftpExternalIp =
333## Masquerade IP address to use for passive FTP connections when
334## Multicraft is running behind a router.
335## default: empty
336#ftpNatIp =
337## A port range to use for passive data transfers. If this is not
338## specified the FTP server will use random ports.
339## Format: 4000-8000
340## default: empty
341#ftpPasvPorts =
342## Port to listen on for incoming FTP connections. Change this to
343## something else if you are already running an FTP server on this
344## system.
345## default: 21
346ftpPort = 21
347## Regular expression matching files that can't be manipulated by
348## users in any way. If you want users to be able to upload their own
349## plugins instead of using the ones you provide for them you can
350## just comment this option out.
351## default: empty
352#forbiddenFiles = \.(jar|exe|bat|pif|sh)$
353## Set the level of detail for FTP server log messages in the multicraft.log.
354## Errors will always be logged regardless of this setting.
355## Available levels:
356## - full Log all messages
357## - basic Don't log client/server communication
358## - none No FTP logging
359## default: full
360ftpLogLevel = full
361## If this setting is enabled the FTP server will not be started when the main
362## daemon process is started. You can start the FTP server separately by using
363## "start_ftp" instead of "start" as the parameter to the daemon command.
364## default: false
365ftpSeparate = false
366## The PID file for the FTP only process. The path is relative to "baseDir"
367## default: multicraft_ftp.pid
368ftpPidFile = J:\Multicraft\tmp\multicraft_ftp.pid
369## The log file to use for the FTP only process. This setting has no effect if
370## the FTP server is started as part of the main daemon process (i.e. if
371## "ftpSeparate" is false.
372## default: multicraft.log (same as the daemon)
373ftpLogFile = J:\Multicraft\log\multicraft.log
374## Throttle the FTP bandwidth (experimental)
375## Incoming data throttle (Kb/s)
376## default: 0 (unlimited)
377#ftpThrottleIn = 0
378## Outgoing data throttle (Kb/s)
379## default: 0 (unlimited)
380#ftpThrottleOut = 0
381
382## Starts an FTPS server when enabled
383## default: false
384#ftps = false
385
386## The certificate file to use for the FTPS server. This is required when the
387## "ftps" setting is enabled. You can generate your own self signed certificate
388## as described here:
389## https://httpd.apache.org/docs/2.4/ssl/ssl_faq.html#selfcert
390## It's not recommended to use the default certificate for live deployments.
391## default: ssl/ftps.pem
392#ftpsCertfile = ssl/ftps.pem
393## The key file to use for the FTPS server. This can be left empty if the key
394## is already contained in the certificate file.
395## default: empty
396#ftpsKeyfile =
397## Enable this to force users to use FTPS
398## default: false
399#ftpsForce = false
400## This will allow some older protocols considered insecure to be used by the
401## FTPS server to improve compatibility with older clients.
402## default: false
403#ftpsCompatMode = false
404
405## Minecraft default settings
406[minecraft]
407## The default amount of reserved memory
408## default: 1024
409memory = 1024
410## The name of the java executable
411## default: /usr/bin/java
412java = J:\Multicraft\vendor\java\bin\java.exe
413## The jar file to use. This file will be looked for in the "base"
414## directory as configured above
415## default: minecraft_server.jar
416jar = minecraft_server.jar
417
418## Backup settings
419[backup]
420## The command to run a backup. The following variables can be used:
421## - {WORLD} The name of the world being backed up
422## - {SERVER_DIR} The directory of the server (working directory)
423## - {MULTICRAFT_DIR} The Multicraft base directory ("baseDir" above)
424## - {BASE_DIR} The directory containing all the servers ("serversDir above")
425## Note that the resulting files is expected to be named "{WORLD}-tmp.zip"
426command = /usr/bin/zip -qr "{WORLD}-tmp.zip" . -i "{WORLD}"*/*
427## The same setting for Windows systems
428commandWin = "{MULTICRAFT_DIR}\bin\zip.exe" -qr "{WORLD}-tmp.zip" "{WORLD}"*/
429## Uncomment the following commands to backup the entire server directory
430## instead of just the current world
431## command = /usr/bin/zip -qr "{WORLD}-tmp.zip" . --exclude {WORLD}*.zip
432## commandWin = "{MULTICRAFT_DIR}\bin\zip.exe" -qr "{WORLD}-tmp.zip" . --exclude {WORLD}*.zip
433
434## System settings
435[system]
436## Most of the settings below are for Linux only
437
438## Whether or not to use one system user per Minecraft server.
439## This is recommended if you let your users upload untrusted executables.
440## Note that for every server a new system user is automatically created
441## if this option is enabled (user name format and commands configured below).
442## default: false
443#multiuser = true
444
445## Display the output of this command in the panel under
446## "Settings"->"Multicraft Status"
447## default: empty
448#infoCmd = uptime
449#infoCmdWin =
450
451## The name format for new users, the following variables can be used:
452## - {ID} The server ID
453## default: mc{ID}
454userFormat = mc{ID}
455## The name format for new groups, the following variables can be used:
456## - {ID} The server ID
457## - {USER} The full username
458## default: same as userFormat
459#groupFormat = {USER}
460
461## The commands to create and delete system users and groups
462## The following variables can be used:
463## - {USER} The full username
464## - {GROUP} The full groupname
465## - {ID} The server ID
466## - {DIR} The server base directory, used as the users home
467## These commands cannot contain escaped quotes or empty arguments
468addUser = /usr/sbin/useradd -c "Multicraft Server {ID}" -d "{DIR}" -g "{GROUP}" -s /bin/false "{USER}"
469addGroup = /usr/sbin/groupadd "{GROUP}"
470delUser = /usr/sbin/userdel "{USER}"
471delGroup = /usr/sbin/groupdel "{GROUP}"
472
473## Enable or disable Linux quota support
474## default: false
475#enableQuota = false
476
477## The command to set the Linux user quota
478## The following variables can be used:
479## - Variables from "addUser" comment
480## - {QUOTA} The disk space quota in MB
481## - {QUOTA_BLOCKS} The disk space quota in blocks
482#setUserQuota = /usr/sbin/setquota -u "{USER}" 0 "{QUOTA_BLOCKS}" 0 0 -a
483
484## The script used to fetch quota usage information for the current user
485## (in blocks)
486## default: scripts/getquota.sh
487#quotaCheckScript = scripts/getquota.sh
488
489## The minimum time in seconds between two quota usage checks
490## default: 20
491#quotaCheckDelay = 20
492
493## The kernel block size to use for quota calculation
494## default: 1024
495#quotaBlockSize = 1024
496
497## Regular expression for filtering file names. Any match gets replaced by "_".
498## Warning: Changing this is potentially dangerous
499## default: [\\/<>:|*?"'&;$~%\0]
500#fileFilter = [\\/<>:|*?"'&;$~%\0]
501
502## The command to unpack a zip file. The following variables can be used:
503## - {FILE} The name of the zip archive to restore
504## - {MULTICRAFT_DIR} The daemon base directory
505unpackCmd = /usr/bin/unzip -quo "{FILE}"
506## The same setting for Windows systems
507unpackCmdWin = "{MULTICRAFT_DIR}\bin\unzip.exe" -quo "{FILE}"
508
509## The command to pack a zip file. The following variables can be used:
510## - {FILE} The name of the zip archive to create
511## - {MULTICRAFT_DIR} The daemon base directory
512packCmd = /usr/bin/zip -qr "{FILE}" .
513## The same setting for Windows systems
514packCmdWin = "{MULTICRAFT_DIR}\bin\zip.exe" -qr "{FILE}" .
515
516## Settings for Docker support (EXPERIMENTAL)
517[docker]
518## Enable Docker support
519## default: false
520enabled = false
521
522## The name of the user that the container process should belong to. It's
523## recommended to create a new user that is used just for this, for example:
524## # adduser --disabled-login --no-create-home --ingroup users docker
525## default: docker
526#user = docker
527
528## The name of the "docker" group. This group needs to have access to the
529## docker daemon.
530## default: docker
531#group = docker
532
533## The full path to the "docker" executable
534## default: /usr/bin/docker
535#docker = /usr/bin/docker
536
537## The name of the Docker image to use
538## default: java:jre
539#image = java:jre
540
541## Memory in MB to add to server memory value for Docker containers
542## default: 128
543#memoryAdd = 128
544
545## CPU factor for each Docker container. Multiplies default CPU shares by this
546## value.
547## default: 1.0
548#cpuFactor = 1.0
549
550## If this is enabled the daemon will try to always show the external IP in the
551## server console instead of the IP used in the container.
552## default: true
553#maskIp = true
554
555## Format for volume definitions (see mounts below)
556## default: --volume=%s:%s:%s
557#volumeFormat = --volume=%s:%s:%s
558
559## Format for environment variable definitions
560## default: --env=%s=%s
561#envFormat = --env=%s=%s
562
563## Directories to mount inside the container. Uses the "volumeFormat" setting
564## to mount the directories. Format:
565## HOST_DIR[:[CONTAINER_DIR]:[MODE]]
566## If CONTAINER_DIR is omitted it is set to the same value as HOST_DIR.
567## MODE can be "rw" for writable or "ro" for read-only, defaults to "ro".
568#mounts = "{TEMPLATES_DIR}" "{MULTICRAFT_DIR}/scripts" "{DAEMON_JAR_DIR}" "{SERVER_DIR}::rw" "/usr/lib/locale"
569
570## Additional arguments to pass to Docker
571## default: empty
572#arguments =
573
574## The command to start the Docker container. See the [start] section of the
575## default "craftbukkit.jar.conf" for a list of available variables.
576## Additional variables:
577## - {DOCKER_ARGS} The additional arguments from the "arguments" setting
578## - {DOCKER_VOLUMES} The volume arguments generated from the "volumeFormat"
579## and "mounts" settings
580## - {DOCKER_ENVS} The env arguments generated using the "envFormat" setting
581## - {DOCKER_IMAGE} The docker image to use
582## - {DOCKER_MEMORY} The memory limit in MB to use for this container. This is
583## calculated as the server memory limit plus the "memoryAdd" setting
584## - {DOCKER_CPUSHARES} The CPU shares this container can use. This is
585## calculated using the "cpuFactor" setting (1024 * cpuFactor)
586## - {DOCKER_IP} The actual IP setting of the server. When running in a Docker
587## container the {IP} variable is always 0.0.0.0
588#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}
589
590## The command to stop a container when a server did not shut down on its own
591## after a certain period of time
592#stopCommand = stop mc{SERVER_ID}
593
594## The command to kill a container when it does not close after sending the
595## stop command
596#killCommand = kill mc{SERVER_ID}
597
598## The command to determine the PID of the root process of a container
599#pidCommand = inspect -f "{{ .State.Pid }}" mc{SERVER_ID}
600
601## Docker settings can be overridden by conf files of server executables in the
602## [docker] section. This setting is a comma sepparated list of setting types
603## that can be overridden. Valid values:
604## - disable: Allows conf files to run without Docker ("enabled" setting)
605## - image: Allows conf files to change the image name ("image" setting)
606## - settings: Allows conf files to change general settings ("memoryAdd",
607## "cpuFactor", "maskIp" settings)
608## - command: Allows conf files to affect the final docker run command
609## ("mounts", "arguments", "command", "stopCommand", "killCommand")
610## default: image, settings
611#override = image, settings
612
613## Cleanup existing docker containers using the configured cleanup command
614## before trying to run a server.
615## default: false
616#cleanup = false
617
618## The command to cleanup an existing container before starting a server
619#cleanupCommand = rm -f mc{SERVER_ID}