69 lines
5.6 KiB
Markdown
69 lines
5.6 KiB
Markdown
# 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.
|