Git Product home page Git Product logo

call-of-duty-2-docker-server's Introduction

image build Docker Pulls

Call of Duty 2 server meets docker

Launch a minimal & lightweight containarized Call of Duty 2 multiplayer game server, including libcod.

๐Ÿ“ฆ Supported tags and respective Dockerfile links

This repository use a multi-build setup to provide images for all server binaries located in the /bin folder. All image tags can be found on the Docker Hub registry.

The following convention is applied:

  • bgauduch/cod2server:latest - Dockerfile
    • uses latest available cracked server binary and libcod library, build from master branch.
  • bgauduch/cod2server:3.0 - Dockerfile - equivalent to latest on release tag.
  • bgauduch/cod2server:X_Y_zzzzzz
    • X_Y is the server binary and libcod library version in [1_0, 1_2, 1_3];
    • zzzzzz is the server binary declination. Report to the readme in the /bin folder for explanations.

Please report to the releases section for the changelogs. Any other image tag is not supported.

๐Ÿ”ง What's inside

Full credits goes to them for their awesome work !

๐Ÿ“ Requirements

  • The orginal game, as it's content is used by the dedicated server;
  • A host machine of your choice with x86_64 architecture;
  • Docker and Docker Compose installed and configured on your host machine. Minimal knowledge in using both is recommended.

๐Ÿš€ Usage

Setup the server

  1. Clone or download this repository on your host machine;
  2. Copy required data from the main folder of your original game (install directory or retail DVD) to the server:
    1. Copy all the iw_XX.iwd from 00 to 15 to the cod2server/main folder;
    2. Copy all the localizations localized_english_iwXX.iwd to the cod2server/main (it might be another language).
  3. Edit the config file located in cod2server/main/server_mp.cfg to suits your needs:
    1. [MANDATORY] Set the RCON password to something strong and private!
    2. Tweak the rest as you see fit, don't forget to updated the placeholders (server name, admin, etc).
  4. [Optional] If you need Punkbuster:
  5. Activate it by changing sv_punkbuster from 0 to 1 in the command arguments of the docker-compose.yamlfile;
  6. Edit the cod2server/main/punkbuster.cfg configuration to suits your needs.
  7. [Optional] Edit the bgauduch/cod2server image tag in docker-compose.yaml to choose a different server version;
  8. Depending on your setup, you might have some port-forwarding and firewalling to do in order to make your server publicly available (see required open ports in the EXPOSE section of the Dockerfile).

Launch the server

From the project root:

docker-compose up -d

Server interactions

From the project root, you can:

  • Restart the server (to pick up config change for instance):
    docker-compose restart
  • Tail the server logs:
    # cod2_server refer to the name of the service in the compose file
    docker-compose logs -f cod2_server
  • Attach a shell to the server to run commands, see available commands in /doc/readme.md:
    docker container attach call-of-duty-2-docker-server_cod2_server_1
    # exemple commands
    status
    map_rotate
    # Use the escape sequence to detach: `CTRL+P`, `CTRL+Q`
  • Completely stop the server:
    docker-compose down

๐Ÿ’ป Development guidelines

If you wish to contribute to and improve this project, you can do so by cloning it and then follow theses guidelines :

Start / restart the server locally

./scripts/dev-up.sh

Note that you will need the game files in the main folder, as specified in the "Requirements" section.

Show server logs

./scripts/dev-logs.sh

Execute server commands

Attach a shell to the running server process to run a command, see available commands in /doc/readme.md:

./scripts/dev-attach.sh
# Exemple commands
status
map_rotate
# Use the escape sequence to detach: `CTRL+P`, `CTRL+Q`

Run a shell in the server container

You can debug directly inside the server container (show file structure, tail logs, etc):

./scripts/dev-exec.sh

Cleanup

Remove everything once your tests are over:

./scripts/dev-down.sh

๐Ÿ—‚๏ธ Notes & resources

  • This setup was tested on an ubuntu server 18.04.3 LTS x86_64 and should work on any platform with the same architecture.
  • Threads on setting up a cod2 server are availables on Killtube:
  • There is a similar repository on github proposing a Call of Duty 2 server based on CentOS: hberntsen/docker-cod2
  • Original and cracked server binaries can be found in the bin folder, have a look at the readme
  • If you need to use iptables in conjonction with Docker, please follow the official documentation tips

๐Ÿšง Roadmap

Project roadmap & issues can be tracked on the project page.

๐Ÿ™ Contribution

Any contribution to this project is welcome ! Feel free to open an issue to ask for help or a new feature, and it will be discussed there.

If you wish to contribute to the code, start by reading the development guidelines and then feel free to open a pull-request.

๐Ÿ“– License

This project is under the MIT License.

call-of-duty-2-docker-server's People

Contributors

bgauduch avatar renovate[bot] avatar

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.