Skip to content

Commit 0592b98

Browse files
authored
feat(luanti): add Luanti server support (#5101)
Adds Luanti (formerly Minetest) as luantiserver, with installation, engine updates, details, session monitoring and graceful shutdown. Fresh installs include Minetest Game and a separate instance config; engine updates preserve games, mods, worlds and instance settings. Uses the portable headless builds from rollerozxa/luantiserver, as recommended by the official Luanti Linux server documentation, selecting x86_64 or aarch64 assets and verifying SHA256 checksums. Adds dependency entries and the upstream game icon, with its attribution in a new Third-party assets section of LICENSE.md. Fixes #2303
1 parent 1e40374 commit 0592b98

35 files changed

Lines changed: 450 additions & 2 deletions

‎LICENSE.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,9 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1919
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2020
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2121
SOFTWARE.
22+
23+
## Third-party assets
24+
25+
The following files are not covered by the MIT License above and remain under their own licenses.
26+
27+
- `lgsm/data/gameicons/luanti-icon.png`: Luanti icon by erle, licensed under [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/). Copied without modification from [Luanti 5.17.0](https://github.com/luanti-org/luanti/blob/5.17.0/misc/luanti-icon-24x24.png); see the [upstream license and attribution](https://github.com/luanti-org/luanti/blob/5.17.0/LICENSE.txt).
Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
##################################
2+
######## Default Settings ########
3+
##################################
4+
# DO NOT EDIT, ANY CHANGES WILL BE OVERWRITTEN!
5+
# Copy settings from here and use them in either:
6+
# common.cfg - applies settings to every instance.
7+
# [instance].cfg - applies settings to a specific instance.
8+
9+
#### Game Server Settings ####
10+
11+
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
12+
ip="0.0.0.0"
13+
port="30000"
14+
gameid="minetest"
15+
worldname="world"
16+
17+
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
18+
startparameters="--config ${servercfgfullpath} --world ${serverfiles}/worlds/${worldname} --gameid ${gameid} --port ${port} --logfile ${gamelogdir}/${selfname}-game.log --terminal"
19+
20+
## Extra Parameters | https://docs.linuxgsm.com/configuration/start-parameters#extra-parameters
21+
# Added to the end of startparameters.
22+
extraparams=""
23+
24+
#### LinuxGSM Settings ####
25+
26+
## LinuxGSM Stats
27+
# Send useful stats to LinuxGSM developers.
28+
# https://docs.linuxgsm.com/configuration/linuxgsm-stats
29+
# (on|off)
30+
stats="off"
31+
32+
## Notification Alerts
33+
# (on|off)
34+
35+
# Display IP | https://docs.linuxgsm.com/alerts#display-ip
36+
displayip=""
37+
38+
# More info | https://docs.linuxgsm.com/alerts#more-info
39+
postalert="off"
40+
41+
# Alert on Start/Stop/Restart
42+
statusalert="off"
43+
44+
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
45+
discordalert="off"
46+
discordwebhook="webhook"
47+
48+
# Email Alerts | https://docs.linuxgsm.com/alerts/email
49+
emailalert="off"
50+
email="email@example.com"
51+
emailfrom=""
52+
53+
# Gotify Alerts | https://docs.linuxgsm.com/alerts/gotify
54+
gotifyalert="off"
55+
gotifytoken="token"
56+
gotifywebhook="webhook"
57+
58+
# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
59+
iftttalert="off"
60+
ifttttoken="accesstoken"
61+
iftttevent="linuxgsm_alert"
62+
63+
# ntfy Alerts | https://docs.linuxgsm.com/alerts/ntfy
64+
ntfyalert="off"
65+
ntfytopic="LinuxGSM"
66+
ntfyserver="https://ntfy.sh"
67+
ntfytoken=""
68+
ntfyusername=""
69+
ntfypassword=""
70+
ntfypriority=""
71+
ntfytags=""
72+
73+
# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
74+
matrixalert="off"
75+
matrixhomeserver="matrix.org"
76+
matrixtoken="accesstoken"
77+
matrixroom=""
78+
79+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
80+
pushbulletalert="off"
81+
pushbullettoken="accesstoken"
82+
channeltag=""
83+
84+
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
85+
pushoveralert="off"
86+
pushovertoken="accesstoken"
87+
pushoveruserkey="userkey"
88+
89+
# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
90+
rocketchatalert="off"
91+
rocketchatwebhook="webhook"
92+
93+
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
94+
slackalert="off"
95+
slackwebhook="webhook"
96+
97+
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
98+
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
99+
# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
100+
telegramapi="api.telegram.org"
101+
telegramalert="off"
102+
telegramtoken="accesstoken"
103+
telegramchatid=""
104+
telegramthreadid=""
105+
telegramsilentnotification="false"
106+
curlcustomstring=""
107+
108+
## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
109+
stoponlyifnoplayers="off"
110+
stoponlyifnoplayersallcommands="on"
111+
112+
## Player Warnings | https://docs.linuxgsm.com/features/player-warnings
113+
# Minutes to warn players in-game before a stop, restart or update. 0 to disable.
114+
# e.g. 15 warns at 15, 10, 5, 3 and 1 minutes.
115+
warnplayerstimer="0"
116+
117+
## Updating | https://docs.linuxgsm.com/commands/update
118+
updateonstart="off"
119+
120+
## Backup | https://docs.linuxgsm.com/commands/backup
121+
maxbackups="4"
122+
maxbackupdays="30"
123+
stoponbackup="on"
124+
125+
## Logging | https://docs.linuxgsm.com/features/logging
126+
consolelogging="on"
127+
logdays="7"
128+
129+
## Monitor | https://docs.linuxgsm.com/commands/monitor
130+
# Query delay time
131+
querydelay="1"
132+
133+
## ANSI Colors | https://docs.linuxgsm.com/features/ansi-colors
134+
ansi="on"
135+
136+
#### Advanced Settings ####
137+
138+
## Message Display Time | https://docs.linuxgsm.com/features/message-display-time
139+
sleeptime="0.5"
140+
141+
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
142+
# 1: tmux kill
143+
# 2: CTRL+c
144+
# 3: quit
145+
# 4: quit 120s
146+
# 5: stop
147+
# 6: q
148+
# 7: exit
149+
# 8: 7 Days to Die
150+
# 9: GoldSrc
151+
# 10: Avorion
152+
# 11: end
153+
stopmode="2"
154+
155+
## Query mode
156+
# 1: session only
157+
# 2: gamedig (gsquery fallback)
158+
# 3: gamedig
159+
# 4: gsquery
160+
# 5: tcp
161+
querymode="1"
162+
querytype=""
163+
164+
## Console type
165+
consoleverbose="yes"
166+
consoleinteract="yes"
167+
168+
## Game Server Details
169+
# Do not edit
170+
gamename="Luanti"
171+
engine="luanti"
172+
glibc="2.31"
173+
174+
#### Directories ####
175+
# Edit with care
176+
177+
## Game Server Directories
178+
systemdir="${serverfiles}"
179+
executabledir="${serverfiles}/bin"
180+
executable="./luantiserver"
181+
servercfgdir="${systemdir}"
182+
servercfg="${selfname}.cfg"
183+
servercfgdefault="minetest.conf.example"
184+
servercfgfullpath="${servercfgdir}/${servercfg}"
185+
186+
## Backup Directory
187+
backupdir="${lgsmdir}/backup"
188+
189+
## Logging Directories
190+
[ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || logdir="${rootdir}/log"
191+
gamelogdir="${logdir}/server"
192+
lgsmlogdir="${logdir}/script"
193+
consolelogdir="${logdir}/console"
194+
lgsmlog="${lgsmlogdir}/${selfname}-script.log"
195+
consolelog="${consolelogdir}/${selfname}-console.log"
196+
alertlog="${lgsmlogdir}/${selfname}-alert.log"
197+
postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"
198+
199+
## Logs Naming
200+
lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
201+
consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
202+
203+
## Log Parameters
204+
logtimestamp="off"
205+
logtimestampformat="%Y-%m-%d %H:%M:%S"

‎lgsm/data/almalinux-8.csv‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ kf
7171
kf2
7272
l4d
7373
l4d2
74+
luanti,libcurl,libstdc++,libzstd,ncurses-libs,sqlite-libs,zlib
7475
mc,java-21-openjdk
7576
mcb,libnsl
7677
mcv

‎lgsm/data/almalinux-9.csv‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ kf
7171
kf2
7272
l4d
7373
l4d2
74+
luanti,libcurl,libstdc++,libzstd,ncurses-libs,sqlite-libs,zlib
7475
mc,java-25-openjdk
7576
mcb,libnsl
7677
mcv

‎lgsm/data/centos-7.csv‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ kf
7171
kf2
7272
l4d
7373
l4d2
74+
luanti,libcurl,libstdc++,libzstd,ncurses-libs,sqlite-libs,zlib
7475
mc,java-21-openjdk
7576
mcb,libnsl
7677
mcv

‎lgsm/data/centos-8.csv‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ kf
7171
kf2
7272
l4d
7373
l4d2
74+
luanti,libcurl,libstdc++,libzstd,ncurses-libs,sqlite-libs,zlib
7475
mc,java-21-openjdk
7576
mcb,libnsl
7677
mcv

‎lgsm/data/centos-9.csv‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ kf
7171
kf2
7272
l4d
7373
l4d2
74+
luanti,libcurl,libstdc++,libzstd,ncurses-libs,sqlite-libs,zlib
7475
mc,java-25-openjdk
7576
mcb,libnsl
7677
mcv

‎lgsm/data/debian-10.csv‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ kf
7070
kf2
7171
l4d
7272
l4d2
73+
luanti,libcurl4,libncursesw6,libsqlite3-0,libstdc++6,libzstd1,zlib1g
7374
mc,openjdk-11-jre
7475
mcb
7576
mcv

‎lgsm/data/debian-11.csv‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ kf
7171
kf2
7272
l4d
7373
l4d2
74+
luanti,libcurl4,libncursesw6,libsqlite3-0,libstdc++6,libzstd1,zlib1g
7475
mc,openjdk-17-jre
7576
mcb
7677
mcv

‎lgsm/data/debian-12.csv‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ kf
7171
kf2
7272
l4d
7373
l4d2
74+
luanti,libcurl4,libncursesw6,libsqlite3-0,libstdc++6,libzstd1,zlib1g
7475
mc,openjdk-17-jre
7576
mcb
7677
mcv

0 commit comments

Comments
 (0)