Files
upload-test/jedi-academy/README.md

2.5 KiB

Jedi Academy Dedicated Server (Docker)

Runs a Jedi Academy dedicated server for Jedi Academy inside a Docker container using Wine.

Requirements

Directory Structure

jka-server/
|── config/
    |── snvos.cfg        # Main server config (ForceMod III server configuration used by default)
├── Dockerfile
├── docker-compose.yml
├── entrypoint.sh
└── server/
    ├── base/            # Jedi Academy base game files (assets*.pk3, etc.)
    ├── ForceMod_III/    # ForceMod III pk3s and and .dll for the dedicated server
    └── jampded.exe      # Jedi Academy dedicated server binary

Configuration

Server behaviour is controlled via environment variables and bind mounts. Defaults are defined in the Dockerfile and can be overridden in docker-compose.yml or with docker run -e.

Variable Default Description
FS_GAME ForceMod_III The mod directory to load (fs_game)

To override, edit the environment section in docker-compose.yml:

The config for the server is passed via a bind mount. Adjust this to point to your .cfg file.

volumes:
  # Mount config externally so you can edit without rebuilding
  - ./config/snvos.cfg:/home/jamp/server/base/server.cfg:ro
environment:
  - FS_GAME=ForceMod_III

Usage

Build and start

First build the image, adjust the version in the docker compose file, and then run it using docker compose.

docker build -t jamp-server:<version> .
touch ./forcemod.log
docker compose up -d

View logs

docker compose logs -f

Stop the server

docker compose down

Ports

The following port must be open on your firewall/router:

Port Protocol Description
29070 UDP Jedi Academy game traffic

The port mapping can be changed in docker-compose.yml:

ports:
  - "29070:29070/udp"

How It Works

  1. The container is based on debian:bookworm-slim with Wine installed.
  2. On first run, entrypoint.sh initialises the Wine prefix if it doesn't exist yet.
  3. jampded.exe is launched via Wine with the configured fs_game and the mounted config file.
  4. The server registers itself with the Jedi Academy master server (+set dedicated 2).