Giter VIP home page Giter VIP logo

hlds's Introduction

GitHub Actions Workflow Status Codacy Badge

Half-Life Docker logo

About

Automated builder of Docker images for Half-Life Dedicated Server (HLDS).

DepotsDownloader is used to download HLDS. It has advantages over SteamCMD, has a minimum of dependencies, easy installation, doesn't have the issues that SteamCMD users are experiencing.

The base image is Debian.

Images

Image Tags Pulls Image size
HLDS valve public, steam_legacy Docker Pulls Docker Image Size
HLDS cstrike public, steam_legacy Docker Pulls Docker Image Size
HLDS czero public, steam_legacy Docker Pulls Docker Image Size
HLDS dod public Docker Pulls Docker Image Size
HLDS gearbox public Docker Pulls Docker Image Size
HLDS tfc public Docker Pulls Docker Image Size
HLDS ricochet public Docker Pulls Docker Image Size
HLDS dmc public Docker Pulls Docker Image Size

Tags

Name Description
public Latest depots update
steam_legacy Pre-25th Anniversary Build

How it works

At 00:00 on Sunday using GitHub Actions, all images are automatically rebuilt and published to Docker Hub (https://hub.docker.com/u/hldsdocker).

The description for Docker Hub repositories (of each mod) is dynamically generated using CI from the template.

Technical Definitions

Depots

A depot is a logical grouping of files which are all delivered to a customer as a single group.

Content files URL
Base Goldsrc Shared Content https://steamdb.info/depot/1/
Counter-Strike Base Content https://steamdb.info/depot/11/
Condition Zero Base Content https://steamdb.info/depot/81/

Read more about depots in Steamworks documentation.

Branches

An application can have multiple branches. Other than the "public" branch, there can be other branches. Other branches are often used for storing an older version of the game for people to downgrade to, or for testing new patches/content. These can often be found in the "Betas" tab in the app's properties in the Steam client. Some branches might require a password, and they won't be visible in the drop-down list until the correct password is entered.

A list of possible branches and depots can be found here:

Game Depots link
valve https://steamdb.info/app/70/depots/
cstrike https://steamdb.info/app/10/depots/
сzero https://steamdb.info/app/80/depots/

Read more about branches in Steamworks documentation.

Secrets and Variables for GitHub Actions

Type Key Description
Variable DOCKER_USERNAME DockerHub user account
Secret DOCKER_PASSWORD DockerHub user password

Read more about secrets and variables in GitHub Docs.

hlds's People

Contributors

wopox1337 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

hlds's Issues

add ports

Connectivity
No matter which type of server you are using, your computer must be able to receive unsolicited incoming connections. This is exactly what routers and software firewalls exist to prevent, so if you are using either you will have to reconfigure. Refer to the manufacturer instructions for how to do this.

The ports HLDS officially requires are:

  • 27015 UDP (game transmission, pings)
  • 27015 TCP (RCON)
  • 27020 UDP (HLTV transmission)
  • 26900 UDP (VAC service) -- automatically increments if used in case of additional server processes

HLDS has also been spotted opening connections on 27005 to 27030 UDP/TCP, but some of these may be outbound only.

Tip:
Pinging your own server will fail with some routers and/or ISPs. The most reliable way to test whether your connection is open is either to get a friend to try connecting, or to install the Microsoft Network Monitor (apply the filter Udp.Port == 27015) and watch for requests coming in from random people around the world. Note that the heartbeats you will see being sent to the two master servers do not mean that the connection is open.
Note:
A residential internet connections may not have the upload capacity to support large games.

:x: **Codacy** found a **critical Security** issue: [By not specifying a USER, a program in the container may run as 'root'. This is a security hazard.](https://app.codacy.com/gh/hldsdocker/hlds/pullRequest?prid=13986173)

          :x: **Codacy** found a **critical Security** issue: [By not specifying a USER, a program in the container may run as 'root'. This is a security hazard.](https://app.codacy.com/gh/hldsdocker/hlds/pullRequest?prid=13986173)

The issue identified by the Semgrep linter is that the Docker container is configured to run its processes as the root user by default. This can be a significant security risk, as any exploit that gains access to the container could potentially have root privileges, allowing it to perform unrestricted operations on the container and potentially affect the host system or other containers.

To mitigate this risk, it's best practice to create a non-root user within the Dockerfile and switch to that user before running the application. This can be done with the USER directive after all necessary file permissions and dependencies are set up for the non-root user.

Here's the code suggestion to add a non-root user and switch to it before setting the ENTRYPOINT:

RUN adduser --disabled-password --gecos '' myuser && chown -R myuser:myuser /path/to/required/directories
USER myuser

Please replace /path/to/required/directories with the actual directories that the non-root user needs to have ownership of to run the application. This line should be added right before the ENTRYPOINT directive.


This comment was generated by an experimental AI tool.

Originally posted by @codacy-production[bot] in #7 (comment)

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.