beardedio / terraria

Docker images to run a Terraria Server. Images with TShock Server or Vanilla Server are available.
MIT License
116 stars 55 forks source link

terraria

Docker images to run a Terraria Server. Images with TShock Server or Vanilla Server are available.

Auto Build Docker Image Size (tag) [Docker Pulls]() [Docker Stars]()

Usage

docker create --rm -it \
  --name=terraria \
  -v <path to data>:/config \
  -e world=<world_file_name> \
  -p 7777:7777 \
  ghcr.io/beardedio/terraria:latest

Docker Images are avaiable on ghcr.io and Docker Hub

Supported tags and respective Dockerfile links

Quick reference

What is Terraria Server?

A Terraria server provides a platform for players to connect over the internet or other network for multiplayer games of Terraria.

How to use

Generating a new world

To run with out user intervention Terraria Server needs to be configure to use an already generated world. This means you can use one that you have already generated or you can generate one via docker by running this command:

sudo docker run --rm -it -p 7777:7777 \
    -v $HOME/terraria/config:/config \
    --name=terraria \
    ghcr.io/beardedio/terraria:latest

You can then follow the prompts to create a new world.

Starting your server with a preexisting world

The world file needs to exist in the config folder. To start a server using an already generated world, use this command:

sudo docker run --rm -dit \
  --name=terraria \
  -v $HOME/terraria/config:/config \
  -e world=<world_file_name> \
  -p 7777:7777 \
  ghcr.io/beardedio/terraria:latest

If you get an error from docker saying the container name already exists, it means you need to remove your old docker container process. sudo docker rm terraria

If you want to reattach to any running containers: sudo docker attach terraria Now you can execute any commands to the terraria server. Ctrl-p Ctrl-q will detatch you from the process.

Example Docker Compose file

Here is an example docker-compose file that enables to the use of the vanilla server

version: '3'

services:
  terraria:
    image: ghcr.io/beardedio/terraria:latest
    ports:
      - '7777:7777'
    restart: unless-stopped
    environment:
      - world=<world_file_name>
    volumes:
      - $HOME/terraria/config:/config
    tty: true
    stdin_open: true

beardedio/terraria:tshock-latest

TShock is a server modification for Terraria, written in C#, and based upon the Terraria Server API. It uses JSON for configuration management, and offers several features not present in the Terraria Server normally.

beardedio/terraria:tshock-dev-latest

TShock dev are unreleased development builds of TShock. These builds may be unstable but they are updated faster then the released versions so they support new versions of Terraria faster.

beardedio/terraria:vanilla-latest

Vanilla Terraria server is the server software provided by the developers of Terraria. This version has only basic features but it is updated along with the main game so it should always be up to date.

If a docker image isn't available of the latest versions please contact us about the new release so we can update this repo.

FAQ

Notes

License

The MIT License (MIT) Copyright (c) 2024 Henry Skrtich