CHIM Linux Setup Guide

This page is the Linux version of the old community DwemerDistro setup guide. The idea is simple: unpack the DwemerDistro archive, import the bundled image into Docker, expose the needed ports, then point CHIM at the Linux machine over your local network.

Linux Setup Guide

Prepare The Archive

  • Unpack the DwemerDistro archive first.
  • On the Linux machine, create a build folder such as /home/$(whoami)/docker_build.
  • Copy DwemerAI4Skyrim3.tar into that folder.
mkdir -p /home/$(whoami)/docker_build

The old guide used that tar file as the source for the Docker image and for the initial persisted data folders.

NVIDIA Runtime Note

If the Linux machine is going to run GPU-backed services like XTTS, install the NVIDIA container runtime first.

  • NVIDIA docs: Container Toolkit Install Guide
  • Arch note from the old guide: install libnvidia-container and nvidia-container-toolkit from the extra repository.
  • Ubuntu and other distros: follow the NVIDIA docs for your distro.

If you do not have NVIDIA GPU support available, the container can still be created and used in CPU mode.

Import The DwemerDistro Image

The old Linux guide imported the tar file into Docker as skyrimai:latest.

linux_user="$(whoami)"
wsl_tar_image_path="/home/${linux_user}/docker_build/DwemerAI4Skyrim3.tar"

sudo docker image import "${wsl_tar_image_path}" skyrimai:latest

If you already imported it earlier, Docker will already have the image and you can skip re-importing it.

Prepare Persistent Folders

The old guide persisted the main DwemerDistro folders outside the container so the database, web files, and Dwemer home directory survive container recreation.

mkdir -p /home/${linux_user}/docker_env/skyrimai_postgres
mkdir -p /home/${linux_user}/docker_env/skyrimai_tmp
mkdir -p /home/${linux_user}/docker_env/skyrimai_dwemerhome
mkdir -p /home/${linux_user}/docker_env/skyrimai_www

chmod 777 /home/${linux_user}/docker_env/skyrimai_tmp

The original script then unpacked the needed PostgreSQL, web, and Dwemer home paths from the tar file into those folders before starting the container.

Create The Container

The old guide created a Docker container named skyrimaiframework and exposed the service ports directly to the Linux host.

These are the important exposed ports from that guide:

  • 8081 for the CHIM web side
  • 8082 and 8083 for additional web/service endpoints
  • 59125, 9876, 8020, and 8007 for the bundled service stack

A simplified CPU-mode example looks like this:

sudo docker run -d \
  --name=skyrimaiframework \
  -p 8081:8081 \
  -p 8082:8082 \
  -p 8083:8083 \
  -p 59125:59125 \
  -p 9876:9876 \
  -p 8020:8020 \
  -p 8007:8007 \
  -v /home/${linux_user}/docker_env/skyrimai_postgres:/var/lib/postgresql \
  -v /home/${linux_user}/docker_env/skyrimai_tmp:/tmp \
  -v /home/${linux_user}/docker_env/skyrimai_dwemerhome:/home/dwemer \
  -v /home/${linux_user}/docker_env/skyrimai_www:/var/www/html \
  --restart unless-stopped \
  skyrimai:latest

If NVIDIA runtime support is installed and detected, add the runtime and GPU flags before the port mappings.

Confirm It Is Running

sudo docker ps | grep -i skyrimaiframework

If the container shows up in the process list, move on to the in-container install steps.

Finish The Install Inside The Container

The old guide then entered the container, switched to the dwemer user, and ran the same install scripts you would normally trigger from the Windows launcher flow.

container_id=$(sudo docker ps -a | grep "skyrimaiframework" | cut -f1 -d" ")
sudo docker exec -ti ${container_id} /bin/bash
su dwemer

Then run these in order:

  1. /usr/local/bin/update_gws
  2. /home/dwemer/minime-t5/ddistro_install.sh and choose the CPU option if you are not using GPU acceleration
  3. /home/dwemer/mimic3/ddistro_install.sh if you want Mimic
  4. /home/dwemer/xtts-api-server/ddistro_install.sh and choose default or GPU depending on your setup

Point CHIM To The Linux Machine

Once the Linux host is running, use the Linux machine's LAN IP in the plugin config on the Skyrim side. The old wiki example used a gaming PC on 192.168.1.51 and the Linux DwemerDistro machine on 192.168.1.101.

SERVER=192.168.1.101
PORT=8081
PATH=/HerikaServer/comm.php
POLINT=1

With that kind of setup, the web interface should be available at:

http://192.168.1.101:8081