Tilted Online
  • Overview
  • Guides
    • Getting Started
    • Client setup
      • Initial setup
        • Removing the old setup
        • Installing the game
        • Launching the game
      • Overview
      • Using ModOrganizer2 (MO2)
        • Installing ModOrganizer2
          • Installating the MO2 mod manager
          • Initial MO2 setup
          • Creating a MO2 profile
          • Creating a separator in MO2
        • Disabling the included Creation Club content
        • Utilities
          • Address Library for SKSE
        • Skyrim Together Reborn
          • Downloading Skyrim Together Reborn
          • Installing Skyrim Together Reborn
          • Locating Skyrim Together Reborn through MO2
          • Making a custom launch option in MO2
          • Launching SkyrimTogether through MO2
        • Playing Skyrim Together Reborn
          • Before we begin
          • First time launch
          • Connecting to a server
      • Using Vortex Mod Manager (VMM)
        • Installing Vortex Mod Manager
          • Installing the Vortex Mod Manager
          • Initial VMM setup
          • Creating a profile in VMM
        • Disabling the included Creation Club content
        • Utilities
          • Address Library for SKSE
        • Skyrim Together Reborn
          • Download Skyrim Together Reborn
          • Making a custom launch option in VMM
          • Launching SkyrimTogether through VMM
        • Playing Skyrim Together Reborn
          • Before we begin
          • First time launch
          • Connecting to a server
    • Server setup
      • ReadMe first
      • Terminology
      • Overview
      • Windows setup
        • Regular setup
          • Locating the STServer.ini
          • Editing STServer.ini
          • Explaining bEnableModcheck
          • Locating IP addresses
          • Port forwarding
          • Launching your server
        • ZeroTier setup
          • Locating the STServer.ini
          • Editing STServer.ini
          • Explaining bEnableModcheck
          • Initial ZeroTier setup
          • Configuring ZeroTier network
          • Authorizing users in ZeroTier network
          • Connecting to your server
        • Local setup
          • Locating the STServer.ini
          • Editing STServer.ini
      • Linux setup
        • Docker setup
        • Locating your IP address
        • Locating the STServer.ini
        • Editing STServer.ini
        • Explaining bEnableModcheck
        • Port forwarding
      • Pterodactyl
      • Server configuration parameters
    • Troubleshooting
      • Address Library error
      • Closing the SkyrimTogether UI (STR UI) makes it reopen
      • Disabling the included Creation Club content
        • Using ModOrganizer2
        • Using Vortex Mod Manager
      • During server setup, my firewall didn't ask for network permission!
      • Hostile NPCs only target my friends, not me
      • How do I uninstall the mod?
        • Using ModOrganizer2
        • Using Vortex Mod Manager
      • I need help updating the Skyrim Together Reborn mod
      • I selected the wrong .exe, when first launching SkyrimTogether
      • I want to install Skyrim Script Extender (SKSE)
        • Using ModOrganizer2
        • Using Vortex Mod Manager
      • My game crashes when I open it or connect to a server
      • My game runs with very low FPS
        • Using ModOrganizer2
        • Using Vortex Mod Manager (VMM)
      • Naked NPCs / players
      • The STR UI doesn't appear when I press RIGHT CTRL or F2
      • The server list is not appearing
      • My game opens to a black screen for 2-10 seconds and then closes
      • STR UI shows my filesystem
      • Resource folder does not exist
    • Scripting
      • Core Math functions
      • Player functions
      • GameServer
      • Components
      • Services
      • World
      • Event Handlers
  • General information
    • Features
    • Playguide
    • FAQ
    • Supported games
    • Helpful Links
    • Admin
    • Commands
      • Server Console
      • In-Game Chat
    • Command line arguments
  • Technical documentation
    • Build guide
      • Build Docker server image
      • Troubleshooting
    • Overview
    • Contributing to translations
Powered by GitBook
On this page
  • Gathering Requirements for Building Server Container
  • Building the Multiarch Builder with Buildx
  • Building the Multiarch Server Container with Buildx

Was this helpful?

  1. Technical documentation
  2. Build guide

Build Docker server image

PreviousBuild guideNextTroubleshooting

Last updated 2 years ago

Was this helpful?

This is an advanced guide. If you have not worked with docker before, it is best that you to pull the official docker image from the tiltedphoques repository on Docker Hub.

This guide is primarily for those who want to build a dev branch of the server for use with Docker/Linux or for using docker buildx to build the server for different architectures/platforms. If you have not yet setup Docker, follow the instructions.

In order to follow these instructions, you will need to have an account on and you will need to be logged into that account using docker login. Instructions for such can be found .

Below, we will be referring to your docker hub repository as username/image_name when we push images. Please note that anywhere you see username it needs to be your Docker Hub username.

Gathering Requirements for Building Server Container

We only require Dockerfile and Dockerfile.builder to build the image, but we are going to clone the full repository. It does include files unecessary for this process, but it makes sure everything is up to date. Once this is done once, you can pull updates with git fetch && git pull.

  1. Run the following command to clone the repository into ~/str: git clone --recursive https://github.com/tiltedphoques/TiltedEvolution.git ~/str

    • If you encounter an error about login status, install gh sudo apt install gh and login gh auth login to your github account.

  2. Change directory ~/str: cd ~/str

Building the Multiarch Builder with Buildx

This builder image is based off of Ubuntu 22.04 and installs the necessary requirements to build the server docker image later. This step is only required once, since any time you build the server image afterwards your multiarch-builder image can be pulled from Docker Hub.

  1. First we are going to set up the multi-architecture builder with docker buildx: docker buildx create --name str-multiarch --use

  2. And verify that it is loaded: docker buildx inspect --bootstrap

  3. For some reason, buildx can occasionally have a bug where it won't build emulated architectures, but we can get around that with the command: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

    • Remember this command: if you have a build error in the future, try running this command and then attempt the build again. I have had it fix issues on more than one occasion.

  4. Now we will create the multi-architecture builder for both linux/amd64 and linux/arm64 architectures. This will create the builder image for use on PCs with AMD/Intel CPU and also for RaspberryPi/equivalent running x64 Linux: docker buildx build --platform linux/amd64,linux/arm64 -f Dockerfile.builder -t username/multiarch-builder:latest --push .

Building the Multiarch Server Container with Buildx

Everything above this header need only be done once. This step is where we actually build the server image, and should be done any time you wish to update your server image.

  1. Since you're following these instructions, I assume you want to pull the multiarch-builder we just built from your Docker Hub repository. If that is the case, edit the first line of Dockerfile to read: FROM username/multiarch-builder:latest as builder

  2. Now we'll use our multiarch-builder to create the server docker container: docker buildx build --platform linux/amd64,linux/arm64 -f Dockerfile -t username/st-reborn-server:latest --push .

    • If you want to build a specific repository/branch, you can pass REPO or BRANCH as a --build-arg, like so: docker buildx build --build-arg BRANCH=master --build-arg REPO=http://github.com/tiltedphoques/TiltedEvolution.git --platform linux/amd64,linux/arm64 -f Dockerfile -t username/st-reborn-server:latest --push .

This will create a manifest with two containers, one for linux/amd64 (Intel/AMD PCs) and one for linux/arm64 (RaspberryPi/equivalent), and push them to your docker hub. If you want to build only the server for your architecture, you can omit the other one. Alternatively, you could simply docker build . to build the server without buildx, but it will only build for your current architecture. As of writing, docker build . will only work with linux/amd64 and linux/aarch64 architectures.

follow the Docker setup guide
Docker Hub
here
Installing Docker