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

94 lines
2.5 KiB
Markdown

# Jedi Academy Dedicated Server (Docker)
Runs a Jedi Academy dedicated server for Jedi Academy inside a Docker container using Wine.
## Requirements
- [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/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.
```yaml
volumes:
# Mount config externally so you can edit without rebuilding
- ./config/snvos.cfg:/home/jamp/server/base/server.cfg:ro
```
```yaml
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.
```bash
docker build -t jamp-server:<version> .
touch ./forcemod.log
docker compose up -d
```
### View logs
```bash
docker compose logs -f
```
### Stop the server
```bash
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`:
```yaml
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`).