Jedi Academy Dedicated Server (Docker)
Runs a Jedi Academy dedicated server for Jedi Academy inside a Docker container using Wine.
Requirements
- Docker and Docker Compose
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
- The container is based on
debian:bookworm-slimwith Wine installed. - On first run,
entrypoint.shinitialises the Wine prefix if it doesn't exist yet. jampded.exeis launched via Wine with the configuredfs_gameand the mounted config file.- The server registers itself with the Jedi Academy master server (
+set dedicated 2).