GithubHelp home page GithubHelp logo

jedi-academy-server's Introduction

Docker Pulls Gitter

The purpose of the project is to provide the JA community the means to set up scalable and solid servers, easily and quickly.

Table of Contents

  1. Usage
  2. Stackfile Example
  3. Development

Usage

Pull the image

docker pull bsencan/jedi-academy-server

Then run it

docker run \
  bsencan/jedi-academy-server \
  -v "PATH_TO_GAME_FILES":"/jedi-academy" \
  -e NET_PORT=YOUR_SERVER_PORT \
  -e FS_GAME=MOD_NAME \
  -e SERVER_CFG=CFG_FILE \
  -e RTVRTM_CFG=RTVRTM_CFG_FILE

All environment variables are optional. If not defined, NET_PORT defaults to 29070, FS_GAME defaults to base, and SERVER_CFG defaults to server.cfg, and RTVRTM_CFG defaults to blank (which means rtvrtm won't be initialized).

All your game and configuration files (e.g. server.cfg, rtvrtm.cfg, maps.txt, base and other folders with pk3 files in them) must be in the path you'll replace PATH_TO_GAME_FILES with.

Stackfile Example

You can set up multiple servers in the blink of an eye on Docker Cloud using a Stackfile like the following.

ffa:
  image: bsencan/jedi-academy-server:latest
  restart: on-failure
  ports:
    - "29070:29070/udp"
  volumes:
    - PATH_TO_GAME_FILES:/jedi-academy
duels:
  image: bsencan/jedi-academy-server:latest
  restart: on-failure
  ports:
    - "29071:29070/udp"
  volumes:
    - PATH_TO_GAME_FILES:/jedi-academy
  environment:
    - SERVER_CFG=duel_server.cfg
mb2_duels:
  image: bsencan/jedi-academy-server:latest
  restart: on-failure
  ports:
    - "29072:29070/udp"
  volumes:
    - PATH_TO_GAME_FILES:/jedi-academy
  environment:
    - FS_GAME=MBII
    - SERVER_CFG=mb2_duel_server.cfg
    - RTVRTM_CFG=duel_rtvrtm.cfg

Development

If you cloned this repository and made changes to it, you can build a docker image by running make, and test it with start-local-osx.sh. You'll probably need to edit that script at the moment, but I'll make it more configurable later on.

jedi-academy-server's People

Contributors

isair avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

jedi-academy-server's Issues

Unable to Read .PK3 Files From a Bind Mount

Hi There,

I know this repo hasn't been updated in a few years,but I was wondering if you're seeing the same issue I am.

I was trying to make my own docker image for Jedi Academy as a little practice project, but no matter what I do I can't seem to get the application to read the assets*.pk3 files if they're coming from a bind mount. The file system can see them, the application can even read and write other files if their directories are mounted (logs, etc.) but it just refuses to see any .pk3 files if they're coming in from a bind mount. I've tried with the original dedicated Linux server binaries (as you do in this repo) and with OpenJK and it's the same either way. If I mount some other directory and copy the assets into a different folder within the container while it's running everything works fine.

This issue was driving me crazy and I was trying to see if anyone else had solved it when I came across your repo and gave it a try. The only change I made was to specify a particular version of centos (7), as otherwise the line "RUN yum install -y glibc.i686" failed for some reason. But once I got that going with your repo... I was STILL seeing the same issue!!!

The output looks like this:

`JAmp: v1.0.1.1 linux-i386 Nov 10 2003
----- FS_Startup -----
Current search path:
/root/.ja/base
/jedi-academy/base
/opt/ja-server/linuxjampded/base

0 files in pk3 files

Running in restricted demo mode.`

I am beyond confused. I'm assuming that your repo works for you, or at least used to? Is anyone able to confirm that bind mounting the base directory works with Jedi Academy in this docker image now? Am I doing something consistently wrong here?

Also, am I correct to assume that your mount volume "jedi-academy" should be the GameData directory (which contains the "base" directory with the .pk3's within it?). That's what I'm assuming from that output.

Any help or even confirmation that this is working for others would be greatly appreciated. Thanks!

Add standard cfg files

Should add a number of standard .cfg files for various mods and game modes that will be available for use without any further setup (e.g. SERVER_CFG=standard_base_duel.cfg).

These configurations should be generated, or copied and modified, during server launch with a random rcon password which will then be echoed to the server's console.

Refactor RTVRTM

The script works but the code quality is bad. It's very hard to work with. Depending on the time I can spare I'll either refactor the script or write a library for controlling JA servers, then build some tooling on top of that and one of those tools will work exactly like RTVRTM.

Provide server.cfg file examples

I'm trying to run this but can't find a relevant server.cfg.

I found one online which seemed to work but gave the error:

Sys_Error: Sys_LoadDll(jampgame) failed dlopen() completely!

Looking online, this error can be resolved with

 set vm_game 2
 set vm_cgame 2
 set vm_ui 2

Which I've done but that gives:

Sys_Error: VM_Create on game failed

Can you provide a sample server.cfg that works with this image?

Support RTV

Being new to the Jedi Academy server scene, I just learned of its existence.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.