Files
terraria-server-manager/CHANGELOG.md
T
2026-09-30 15:06:48 +00:00

5.6 KiB

Changelog

0.0.11 - 2026-09-30

  • The servers now log to their own journal (systemd log namespace terraria), which members of the terraria group can read. attach and cmd therefore show output to terraria group members without sudo or the systemd-journal group, and without access to the rest of the system's logs. Read it directly with journalctl --namespace=terraria -u terraria@<name>.
  • New /etc/systemd/journald@terraria.conf for the servers' journal size and retention (default: up to 256 MB).
  • New internal terractl journal-access, run as root before each server start: creates the servers' journal folder (never /var/log/journal itself) and gives the terraria group read access, repairing existing journal files too.
  • The note shown by attach and cmd when output can't be read now distinguishes "not in the terraria group" from "in it, but the journal isn't set up yet".
  • Upgrading: running servers keep logging to the system journal until restarted; the package lists the ones to restart.

0.0.10 - 2026-09-30

  • cmd now prints the server's reply to the command, instead of only saying where to find it. It waits until the server has been quiet for a second, up to 5 seconds.
  • attach and cmd now explain when you can send commands but not see the server's output. That happens for members of the terraria group who aren't root or in systemd-journal. Previously attach showed nothing, without saying why.
  • Replaced a ${var:+...} expansion with an explicit if in import's summary message (ShellCheck SC2016). The output is unchanged.

0.0.9 - 2026-09-28

  • New export command: terractl export <name> [file.tar.gz] [--with-server] archives an instance's instance.conf, serverconfig.txt and data/ (worlds, mods, mod configs). If the server is running under systemd, it is asked to save first. Archives are created readable only by their owner, since serverconfig.txt can contain the server password. --with-server also includes the unpacked server software (and tModLoader's .NET), for hosts without internet access.
  • New import command: terractl import <name> <file.tar.gz> creates an instance from an export, a delete backup, or an archive of an old /opt/terraria instance. Archives are checked before extracting (no paths outside the instance folder, no links or special files). Paths in serverconfig.txt are updated, a port already used by another instance is replaced with a free one, the server version the world was exported with is pinned, and ownership is set to the terraria user.
  • One server per instance: run holds a lock (<instance>/.lock) for the server's whole lifetime, released automatically when it exits or crashes. A second run, or starting the service while a copy started by hand is running, is refused.
  • prepare and reinstall --clean refuse to run while the instance's server is running, so server/ and .NET are never replaced or deleted under it.
  • delete refuses to continue if the server is still running outside systemd.
  • list shows servers started by hand as running (outside systemd).
  • stop typed by hand now explains to use systemctl stop instead of silently doing nothing.
  • Fixed relative paths given on the command line (e.g. terractl mods <name> add tmod-export) being looked up from / instead of the current directory.
  • Bash completion for export and import.

0.0.8 - 2026-09-28

  • Bash completion for terractl: commands, instance names, new types, console commands for cmd, reinstall/delete options, and mods actions and mod names. Installed to share/bash-completion/completions/terractl by both make install and the package.

0.0.7 - 2026-09-28

  • Fixed ShellCheck warnings that made make check (and therefore make deb) fail when ShellCheck is installed: simplified the development-copy check in --version (SC2140), and marked the intentional unquoted unit list in prerm (SC2086).

0.0.6 - 2026-09-28

  • Renamed the command from terraria-instance to terractl, and the package from terraria-instance to terraria-server-manager. The new package replaces the old one automatically; see "Upgrading from the terraria-instance package" in the guide.
  • Settings file moved from /etc/default/terraria-instance to /etc/default/terractl.
  • New terractl --version.
  • New Makefile: make check, make deb, make install, make uninstall.
  • Restructured the source into a git repository layout.

0.0.5 - 2026-09-28

  • Fixed attach: detaching with Ctrl-D printed "jpid: unbound variable" and left a journalctl process running.

0.0.4 - 2026-09-28

  • The .NET runtime that tModLoader downloads on first start (and its logs) is now kept when an instance is upgraded or re-unpacked.
  • New reinstall --clean to discard .NET as well and download it again.

0.0.3 - 2026-09-28

  • New mods command: list, add, enable, disable, remove. Accepts the Windows export folder directly and sets file ownership.
  • new and prepare now create data/Mods for tModLoader instances.

0.0.2 - 2026-09-28

  • Fixed prepare failing for tModLoader zips when run as root from a directory the terraria user can't enter (e.g. /root).

0.0.1 - 2026-09-28

  • First Debian package. Uses /var/lib/terraria instead of /opt/terraria and /terraria, creates the terraria user and directories with sysusers.d and tmpfiles.d, and stops instances cleanly when removed.
  • prepare and run switch to the terraria user when started as root, so no files end up owned by root.
  • New delete command, with an automatic backup.
  • list no longer aborts when an instance's config can't be read.