diff --git a/.dockerignore b/.dockerignore index 95520b4..03dafbc 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,24 +1,4 @@ -**/.classpath -**/.dockerignore -**/.env -**/.git -**/.gitignore -**/.project -**/.settings -**/.toolstarget -**/.vs -**/.vscode -**/*.*proj.user -**/*.dbmdl -**/*.jfm -**/bin -**/charts -**/docker-compose* -**/compose* -**/Dockerfile* -**/node_modules -**/npm-debug.log -**/obj -**/secrets.dev.yaml -**/values.dev.yaml +.git +.gitignore +.github README.md diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 4815e84..0000000 --- a/.editorconfig +++ /dev/null @@ -1,26 +0,0 @@ -# EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs. -# http://editorconfig.org/ - -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -trim_trailing_whitespace = true -end_of_line = lf -insert_final_newline = true - -# YAML Files -[*.{yml,yaml}] -indent_size = 2 - -# JSON Files -[*.{json,json5,webmanifest}] -indent_size = 2 - -# BASH Files -[*.{.sh}] -indent_style = tab -indent_size = 4 - diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 33eccef..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: dgibbs64 # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: dgibbs # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with a single custom sponsorship URL \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..91c1174 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,20 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: 'type : bug' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior... + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..0ade038 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: 'type : idea' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index e4f1a3c..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,9 +0,0 @@ -# Set update schedule for GitHub Actions ---- -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - # Check for updates to GitHub Actions every weekday - interval: "weekly" diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml deleted file mode 100644 index 8ce9fac..0000000 --- a/.github/workflows/docker-publish.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: Docker Publish -on: - workflow_dispatch: - push: - branches: "main" - paths: - - Dockerfile* - - entrypoint* - schedule: - - cron: "0 2 * * 6" - -jobs: - build-ubuntu-2404: - name: Build Ubuntu 24.04 - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup QEMU - uses: docker/setup-qemu-action@v3 - - - name: Setup Docker Buildx - uses: docker/setup-buildx-action@v3.6.1 - - - name: Build - run: docker build -t gameservermanagers/linuxgsm:ubuntu-24.04 -f ./Dockerfile.ubuntu-2404 . - - - name: Login to DockerHub - uses: docker/login-action@v3.3.0 - with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3.3.0 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push (Ubuntu 24.04) - uses: docker/build-push-action@v6.7.0 - with: - context: . - file: ./Dockerfile.ubuntu-2404 - platforms: linux/amd64 - push: true - tags: | - gameservermanagers/linuxgsm:latest - gameservermanagers/linuxgsm:ubuntu - gameservermanagers/linuxgsm:ubuntu-24.04 - ghcr.io/gameservermanagers/linuxgsm:latest - ghcr.io/gameservermanagers/linuxgsm:ubuntu - ghcr.io/gameservermanagers/linuxgsm:ubuntu-24.04 - - build-ubuntu-2204: - name: Build Ubuntu 22.04 - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup QEMU - uses: docker/setup-qemu-action@v3 - - - name: Setup Docker Buildx - uses: docker/setup-buildx-action@v3.6.1 - - - name: Build - run: docker build -t gameservermanagers/linuxgsm:ubuntu-22.04 -f ./Dockerfile.ubuntu-2204 . - - - name: Login to DockerHub - uses: docker/login-action@v3.3.0 - with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3.3.0 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push (Ubuntu 22.04) - uses: docker/build-push-action@v6.7.0 - with: - context: . - file: ./Dockerfile.ubuntu-2204 - platforms: linux/amd64 - push: true - tags: | - gameservermanagers/linuxgsm:ubuntu-22.04 - ghcr.io/gameservermanagers/linuxgsm:ubuntu-22.04 - - build-ubuntu-2004: - name: Build Ubuntu 20.04 - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup QEMU - uses: docker/setup-qemu-action@v3 - - - name: Setup Docker Buildx - uses: docker/setup-buildx-action@v3.6.1 - - - name: Build - run: docker build -t gameservermanagers/linuxgsm:ubuntu-20.04 -f ./Dockerfile.ubuntu-2004 . - - - name: Login to DockerHub - uses: docker/login-action@v3.3.0 - with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3.3.0 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push (Ubuntu 20.04) - uses: docker/build-push-action@v6.7.0 - with: - context: . - file: ./Dockerfile.ubuntu-2004 - platforms: linux/amd64 - push: true - tags: | - gameservermanagers/linuxgsm:ubuntu-20.04 - ghcr.io/gameservermanagers/linuxgsm:ubuntu-20.04 - - package-cleanup: - name: Cleanup Old GitHub Packages - needs: [ build-ubuntu-2004, build-ubuntu-2204, build-ubuntu-2404 ] - runs-on: ubuntu-latest - steps: - - name: Delete Package Versions - uses: actions/delete-package-versions@v5 - with: - package-name: linuxgsm - package-type: container - min-versions-to-keep: 1 - delete-only-untagged-versions: true diff --git a/.github/workflows/dockerhub-description.yml b/.github/workflows/dockerhub-description.yml deleted file mode 100644 index bed5c74..0000000 --- a/.github/workflows/dockerhub-description.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Update Docker Hub Description -on: - workflow_dispatch: - push: - branches: main - paths: - - README.md - - .github/workflows/dockerhub-description.yml -jobs: - dockerhub-description: - name: Update Docker Hub Description - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Docker Hub Description - uses: peter-evans/dockerhub-description@v4 - with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - repository: gameservermanagers/linuxgsm - short-description: ${{ github.event.repository.description }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..688e6c2 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,41 @@ +name: Publish DockerHub image +on: + push: + tags: + - 'v*' +jobs: + builder: + name: Builder + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_ACCESS_TOKEN }} + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: d1ceward/docker-linuxgsm + - name: Build and push + uses: docker/build-push-action@v6 + with: + context: . + platforms: linux/amd64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + - name: Docker Hub Description + uses: peter-evans/dockerhub-description@v4 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_ACCESS_TOKEN }} + repository: d1ceward/docker-linuxgsm diff --git a/.github/workflows/update-copyright-years-in-license-file.yml b/.github/workflows/update-copyright-years-in-license-file.yml deleted file mode 100644 index 2d6d3ee..0000000 --- a/.github/workflows/update-copyright-years-in-license-file.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Update copyright year(s) in license file -on: - workflow_dispatch: - schedule: - - cron: "0 3 1 1 *" # 03:00 AM on January 1 - -jobs: - update-license-year: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Action Update License Year - uses: FantasticFiasco/action-update-license-year@v3 - with: - token: ${{ secrets.GITHUB_TOKEN }} - path: LICENSE.md - - name: Merge pull request - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh pr merge --merge --delete-branch diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d63b626..0000000 --- a/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -# Visual Studio Code -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -!.vscode/*.code-snippets -.history/ -*.vsix diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index 02d542d..0000000 --- a/.prettierrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["prettier-plugin-sh"] -} diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 1b191c0..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "recommendations": [ - "editorconfig.editorconfig", - "esbenp.prettier-vscode" - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 862b25a..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "ansible.python.interpreterPath": "/bin/python3" -} diff --git a/.yamllint.yml b/.yamllint.yml deleted file mode 100644 index c630509..0000000 --- a/.yamllint.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -extends: default - -rules: - line-length: disable - comments: disable - -ignore: | - .github diff --git a/Dockerfile.ubuntu-2204 b/Dockerfile similarity index 95% rename from Dockerfile.ubuntu-2204 rename to Dockerfile index da8fc89..5a96474 100644 --- a/Dockerfile.ubuntu-2204 +++ b/Dockerfile @@ -1,12 +1,5 @@ -# -# LinuxGSM Base Dockerfile -# -# https://github.com/GameServerManagers/docker-linuxgsm -# +FROM gameservermanagers/steamcmd:latest -FROM gameservermanagers/steamcmd:ubuntu-22.04 - -LABEL maintainer="LinuxGSM " ENV DEBIAN_FRONTEND noninteractive ENV TERM=xterm ENV LGSM_GITHUBUSER=GameServerManagers diff --git a/Dockerfile.ubuntu-2004 b/Dockerfile.ubuntu-2004 deleted file mode 100644 index 3056fe3..0000000 --- a/Dockerfile.ubuntu-2004 +++ /dev/null @@ -1,143 +0,0 @@ -# -# LinuxGSM Base Dockerfile -# -# https://github.com/GameServerManagers/docker-linuxgsm -# - -FROM gameservermanagers/steamcmd:ubuntu-20.04 - -LABEL maintainer="LinuxGSM " -ENV DEBIAN_FRONTEND noninteractive -ENV TERM=xterm -ENV LGSM_GITHUBUSER=GameServerManagers -ENV LGSM_GITHUBREPO=LinuxGSM -ENV LGSM_GITHUBBRANCH=master -ENV LGSM_LOGDIR=/data/log -ENV LGSM_SERVERFILES=/data/serverfiles -ENV LGSM_DATADIR=/data/data -ENV LGSM_CONFIG=/data/config-lgsm -ENV LGSM_DEV=false -ENV GAMESERVER=jc2server -ENV VALIDATE_ON_START=false -ENV UPDATE_CHECK=60 -ENV USER=linuxgsm -ENV UID=1000 -ENV GID=1000 - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -## Install Base LinuxGSM Requirements -RUN echo "**** Install Base LinuxGSM Requirements ****" \ - && apt-get update \ - && apt-get install -y software-properties-common \ - && add-apt-repository multiverse \ - && add-apt-repository ppa:git-core/ppa \ - && apt-get update \ - && apt-get install -y \ - bc \ - binutils \ - bsdmainutils \ - bzip2 \ - ca-certificates \ - cpio \ - cron \ - curl \ - distro-info \ - file \ - git \ - gosu \ - gzip \ - hostname \ - jq \ - lib32gcc-s1 \ - lib32stdc++6 \ - netcat \ - pigz \ - python3 \ - sudo \ - tar \ - tmux \ - unzip \ - util-linux \ - uuid-runtime \ - wget \ - xz-utils \ - # Docker Extras - iproute2 \ - iputils-ping \ - nano \ - vim \ - && apt-get -y autoremove \ - && apt-get -y clean \ - && rm -rf /var/lib/apt/lists/* \ - && rm -rf /tmp/* \ - && rm -rf /var/tmp/* - -# Install Node.js -RUN echo "**** Install Node.js ****" \ - && set -uex \ - && mkdir -p /etc/apt/keyrings \ - && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ - && NODE_MAJOR=20 \ - && echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" > /etc/apt/sources.list.d/nodesource.list \ - && apt-get update \ - && apt-get install nodejs -y \ - && apt-get -y autoremove \ - && apt-get -y clean \ - && rm -rf /var/lib/apt/lists/* \ - && rm -rf /tmp/* \ - && rm -rf /var/tmp/* \ - && npm install -g npm@latest - -# Install GameDig https://docs.linuxgsm.com/requirements/gamedig -RUN echo "**** Install GameDig ****" \ - && npm install -g gamedig@5 -WORKDIR /app/lgsm \ - wget -N --no-check-certificate "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${LGSM_GITHUBBRANCH}/package.json" \ - && npm install - -WORKDIR /app - -## Add linuxgsm user -RUN echo "**** Add linuxgsm user ****" \ - && mkdir /data \ - # Create the user - && groupadd --gid $GID $USER \ - && useradd --uid $UID --gid $GID -m $USER \ - # - # [Optional] Add sudo support. Omit if you don't need to install software after connecting. - && echo $USER ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USER \ - && chmod 0440 /etc/sudoers.d/$USER \ - && chown $USER:$USER /data - -HEALTHCHECK --interval=1m --timeout=1m --start-period=2m --retries=1 CMD /app/entrypoint-healthcheck.sh || exit 1 - -## Download linuxgsm.sh -RUN echo "**** Download linuxgsm.sh ****" \ - && set -ex \ - && curl -Lo linuxgsm.sh "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${LGSM_GITHUBBRANCH}/linuxgsm.sh" \ - && chmod +x linuxgsm.sh - -RUN echo "**** Get LinuxGSM Modules ****" \ - && git clone --filter=blob:none --no-checkout --sparse https://github.com/GameServerManagers/LinuxGSM.git \ - && cd LinuxGSM \ - && git sparse-checkout set --cone \ - && git sparse-checkout set lgsm/modules \ - && git checkout ${LGSM_GITHUBBRANCH} \ - && mkdir -p /app/lgsm/modules \ - && mv lgsm/modules/* /app/lgsm/modules \ - && chmod +x /app/lgsm/modules/* \ - && cd ../ \ - && rm -rf LinuxGSM \ - && chown -R $USER:$USER /app - -ARG CACHEBUST=1 -RUN echo "$CACHEBUST" - -COPY entrypoint.sh /app/entrypoint.sh -COPY entrypoint-user.sh /app/entrypoint-user.sh -COPY entrypoint-healthcheck.sh /app/entrypoint-healthcheck.sh - -RUN date > /build-time.txt - -ENTRYPOINT ["/bin/bash", "./entrypoint.sh"] diff --git a/Dockerfile.ubuntu-2404 b/Dockerfile.ubuntu-2404 deleted file mode 100644 index 1fe532b..0000000 --- a/Dockerfile.ubuntu-2404 +++ /dev/null @@ -1,141 +0,0 @@ -# -# LinuxGSM Base Dockerfile -# -# https://github.com/GameServerManagers/docker-linuxgsm -# - -FROM gameservermanagers/steamcmd:ubuntu-24.04 - -LABEL maintainer="LinuxGSM " -ENV DEBIAN_FRONTEND noninteractive -ENV TERM=xterm -ENV LGSM_GITHUBUSER=GameServerManagers -ENV LGSM_GITHUBREPO=LinuxGSM -ENV LGSM_GITHUBBRANCH=master -ENV LGSM_LOGDIR=/data/log -ENV LGSM_SERVERFILES=/data/serverfiles -ENV LGSM_DATADIR=/data/data -ENV LGSM_CONFIG=/data/config-lgsm -ENV LGSM_DEV=false -ENV GAMESERVER=jc2server -ENV VALIDATE_ON_START=false -ENV UPDATE_CHECK=60 -ENV USER=linuxgsm -ENV UID=1001 -ENV GID=1001 - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -## Install Base LinuxGSM Requirements -RUN echo "**** Install Base LinuxGSM Requirements ****" \ - && apt-get update \ - && apt-get install -y software-properties-common \ - && add-apt-repository multiverse \ - && add-apt-repository ppa:git-core/ppa \ - && apt-get update \ - && apt-get install -y \ - bc \ - binutils \ - bsdmainutils \ - bzip2 \ - ca-certificates \ - cpio \ - cron \ - curl \ - distro-info \ - file \ - git \ - gnupg \ - gosu \ - gzip \ - hostname \ - jq \ - lib32gcc-s1 \ - lib32stdc++6 \ - netcat-openbsd \ - pigz \ - python3 \ - sudo \ - tar \ - tmux \ - unzip \ - util-linux \ - uuid-runtime \ - wget \ - xz-utils \ - # Docker Extras - iproute2 \ - iputils-ping \ - nano \ - vim \ - && apt-get -y autoremove \ - && apt-get -y clean \ - && rm -rf /var/lib/apt/lists/* \ - && rm -rf /tmp/* \ - && rm -rf /var/tmp/* - -# Install Node.js -RUN echo "**** Install Node.js ****" \ - && set -uex \ - && mkdir -p /etc/apt/keyrings \ - && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ - && NODE_MAJOR=20 \ - && echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" > /etc/apt/sources.list.d/nodesource.list \ - && apt-get update \ - && apt-get install nodejs -y \ - && apt-get -y autoremove \ - && apt-get -y clean \ - && rm -rf /var/lib/apt/lists/* \ - && rm -rf /tmp/* \ - && rm -rf /var/tmp/* \ - && npm install -g npm@latest - -# Install GameDig https://docs.linuxgsm.com/requirements/gamedig -RUN echo "**** Install GameDig ****" \ - && npm install -g gamedig@5 - -WORKDIR /app - -## Add linuxgsm user -RUN echo "**** Add linuxgsm user ****" \ - && mkdir /data \ - # Create the user - && groupadd --gid $GID $USER \ - && useradd --uid $UID --gid $GID -m $USER \ - # - # [Optional] Add sudo support. Omit if you don't need to install software after connecting. - && echo $USER ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USER \ - && chmod 0440 /etc/sudoers.d/$USER \ - && chown $USER:$USER /data - -HEALTHCHECK --interval=1m --timeout=1m --start-period=2m --retries=1 CMD /app/entrypoint-healthcheck.sh || exit 1 - -## Download linuxgsm.sh -RUN echo "**** Download linuxgsm.sh ****" \ - && set -ex \ - && curl -Lo linuxgsm.sh "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${LGSM_GITHUBBRANCH}/linuxgsm.sh" \ - && chmod +x linuxgsm.sh - -RUN echo "**** Get LinuxGSM Modules ****" \ - && git clone --filter=blob:none --no-checkout --sparse https://github.com/GameServerManagers/LinuxGSM.git \ - && cd LinuxGSM \ - && git sparse-checkout set --cone \ - && git sparse-checkout set lgsm/modules \ - && git checkout ${LGSM_GITHUBBRANCH} \ - && mkdir -p /app/lgsm/modules \ - && mv lgsm/modules/* /app/lgsm/modules \ - && chmod +x /app/lgsm/modules/* \ - && cd ../ \ - && rm -rf LinuxGSM \ - && chown -R $USER:$USER /app - -ARG CACHEBUST=1 -RUN echo "$CACHEBUST" - -COPY entrypoint.sh /app/entrypoint.sh -COPY entrypoint-user.sh /app/entrypoint-user.sh -COPY entrypoint-healthcheck.sh /app/entrypoint-healthcheck.sh - -RUN date > /build-time.txt - -ENTRYPOINT ["/bin/bash", "./entrypoint.sh"] diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 2bd2c2f..0000000 --- a/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -# The MIT License (MIT) - -Copyright (c) 2022-2024 Daniel Gibbs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index 1ed95e6..4d94ce5 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,30 @@ -# LinuxGSM Base Docker Image +# ForgeSparks custom LinuxGSM Docker Container -## This is the base LinuxGSM image only. -## Use docker-gameserver for full game servers +A custom implementation of dockerised version of LinuxGSM https://linuxgsm.com -

- LinuxGSM -
-Docker Pulls -GitHub Workflow Status -Codacy grade -SteamCMD -MIT License

+## Usage -## About +### docker-compose -LinuxGSM is a command-line tool for quick, simple deployment and management of Linux dedicated game servers. This container image builds weekly and is available on [Docker Hub](https://hub.docker.com/r/gameservermanagers/linuxgsm) as well as [GitHub Container Registry](https://github.com/GameServerManagers/docker-linuxgsm/pkgs/container/linuxgsm). +Below is an example `docker-compose` for csgoserver. Ports will vary depending upon server. -## Tags - -- `latest`, `ubuntu` - Latest Ubuntu LTS release -- `ubuntu-24.04` - Ubuntu 24.04 LTS 'Noble Numbat' -- `ubuntu-22.04` - Ubuntu 22.04 LTS 'Jammy Jackalope' -- `ubuntu-20.04` - Ubuntu 20.04 LTS 'Focal Fossa' +```docker +services: + csgoserver: + image: d1ceward/docker-linuxgsm:latest + environment: + - GAMESERVER=jc2server + - LGSM_GITHUBUSER=GameServerManagers + - LGSM_GITHUBREPO=LinuxGSM + - LGSM_GITHUBBRANCH=develop + volumes: + - /path/to/serverfiles:/linuxgsm/serverfiles + - /path/to/log:/linuxgsm/log + - /path/to/config-lgsm:/linuxgsm/config-lgsm + ports: + - "27015:27015/tcp" + - "27015:27015/udp" + - "27020:27020/udp" + - "27005:27005/udp" + restart: unless-stopped +``` diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 94b4ed8..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: "3.4" -services: - linuxgsm: - build: - context: . - dockerfile: ./Dockerfile.ubuntu-2204 - container_name: jc2server - environment: - - GAMESERVER=jc2server - - LGSM_GITHUBUSER=GameServerManagers - - LGSM_GITHUBREPO=LinuxGSM - - LGSM_GITHUBBRANCH=develop - volumes: - - /home/linuxgsm/jc2server/serverfiles:/linuxgsm/serverfiles - - /home/linuxgsm/jc2server/log:/linuxgsm/log - - /home/linuxgsm/jc2server/config-lgsm:/linuxgsm/config-lgsm - ports: - - "25565:25565/tcp" - - "25575:25575/udp" - restart: unless-stopped