{"id":50449363,"url":"https://github.com/nephatrine/docker-quake2-yamagi","last_synced_at":"2026-05-31T23:30:45.163Z","repository":{"id":93348497,"uuid":"243899270","full_name":"nephatrine/docker-quake2-yamagi","owner":"nephatrine","description":"[mirror] Container w/ Yamagi Quake II","archived":false,"fork":false,"pushed_at":"2026-05-14T02:18:04.000Z","size":1502,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-14T04:28:21.236Z","etag":null,"topics":["docker","docker-image","quake2"],"latest_commit_sha":null,"homepage":"https://code.nephatrine.net/NephNET/docker-quake2-yamagi","language":"Dockerfile","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nephatrine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-02-29T03:43:16.000Z","updated_at":"2026-05-14T02:18:08.000Z","dependencies_parsed_at":"2024-03-08T23:32:21.969Z","dependency_job_id":"d1c5c929-2b3c-481f-b951-cfc9716ea85b","html_url":"https://github.com/nephatrine/docker-quake2-yamagi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nephatrine/docker-quake2-yamagi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nephatrine%2Fdocker-quake2-yamagi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nephatrine%2Fdocker-quake2-yamagi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nephatrine%2Fdocker-quake2-yamagi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nephatrine%2Fdocker-quake2-yamagi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nephatrine","download_url":"https://codeload.github.com/nephatrine/docker-quake2-yamagi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nephatrine%2Fdocker-quake2-yamagi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33753923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-image","quake2"],"created_at":"2026-05-31T23:30:43.044Z","updated_at":"2026-05-31T23:30:45.158Z","avatar_url":"https://github.com/nephatrine.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nSPDX-FileCopyrightText: 2020-2026 Daniel Wolf \u003cnephatrine@gmail.com\u003e\nSPDX-License-Identifier: ISC\n--\u003e\n\n# Quake II Dedicated Server\n\n[![Git: NephCode](https://img.shields.io/static/v1?label=Git\u0026message=NephCode\u0026color=teal)](https://code.nephatrine.net/NephNET/docker-quake2-yamagi)\n[![Git: GitHub](https://img.shields.io/static/v1?label=Git\u0026message=GitHub\u0026color=teal)](https://github.com/nephatrine/docker-quake2-yamagi)\n[![OCI: NephCode](https://img.shields.io/static/v1?label=OCI\u0026message=NephCode\u0026color=blue)](https://code.nephatrine.net/NephNET/-/packages/container/quake2-yamagi/latest)\n[![OCI: DockerHub](https://img.shields.io/static/v1?label=OCI\u0026message=DockerHub\u0026color=blue)](https://hub.docker.com/repository/docker/nephatrine/quake2-yamagi/general)\n[![unRAID](https://img.shields.io/static/v1?label=unRAID\u0026message=template\u0026color=orange)](https://code.nephatrine.net/nephatrine/unraid-containers)\n[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)\n\nThis is an Alpine-based container hosting a Yamagi Quake II dedicated game\nserver.\n\nTo serve the optional HTTP mirror for game files, you will need a web server,\nsuch as\n[nephatrine/nginx-ssl](https://hub.docker.com/repository/docker/nephatrine/nginx-ssl/general).\n\n## Supported Tags\n\n- `quake2-yamagi:8.60`: Yamagi Quake II 8.60\n\n## Software\n\n- [Alpine Linux](https://alpinelinux.org/)\n- [Skarnet S6](https://skarnet.org/software/s6/)\n- [s6-overlay](https://github.com/just-containers/s6-overlay)\n- [Yamagi Quake II](https://www.yamagi.org/quake2/)\n\n## Configuration\n\nThese are the configuration and data files you will likely need to be aware of\nand potentially customize. `QUAKE2_DATA`, if unspecified, will default to\n`/mnt/config/data/quake2`.\n\n- `${QUAKE2_DATA}/baseq2/server.cfg`\n- `${QUAKE2_DATA}/*`\n\nModifications to some of these may require a service restart to pull in the\nchanges made.\n\n### Container Variables\n\n- `TZ`: Time Zone (i.e. `America/New_York`)\n- `PUID`: Mounted File Owner User ID\n- `PGID`: Mounted File Owner Group ID\n- `QUAKE2_DATA`: Use Quake II Here (i.e. `/mnt/config/data/quake2`)\n- `QUAKE2_INSTALL`: Install Quake II Here (i.e. `/mnt/config/data/quake2`)\n- `QUAKE2_MIRROR`: Create HTTP Mirror Here (i.e. `/mnt/mirror/www/quake2`)\n- `GAME_START`: Extra Game Arguments (i.e. `+exec server.cfg`)\n\n## Testing\n\n### docker-compose\n\n#### Simple Server\n\nThis is just a simple Quake II server.\n\n```yaml\nservices:\n  quake2-yamagi:\n    image: nephatrine/quake2-yamagi:latest\n    container_name: quake2-yamagi\n    environment:\n      TZ: America/New_York\n      PUID: 1000\n      PGID: 1000\n    ports:\n      - 27910:27910/udp\n    volumes:\n      - /mnt/containers/quake2-yamagi:/mnt/config\n```\n\n#### Server w/ HTTP Mirror\n\nThis setup uses a simple NGINX container to serve an HTTP mirror of the maps and\nother game files so that modern Quake II clients can download missing files more\neasily.\n\n```yaml\nservices:\n  quake2-yamagi:\n    image: nephatrine/quake2-yamagi:latest\n    container_name: quake2-yamagi\n    environment:\n      TZ: America/New_York\n      PUID: 1000\n      PGID: 1000\n      QUAKE2_MIRROR: /mnt/mirror/www/default\n    ports:\n      - 27910:27910/udp\n    volumes:\n      - /mnt/containers/quake2-yamagi:/mnt/config\n      - /mnt/containers/quake2-http:/mnt/mirror\n  quake2-http:\n    image: nephatrine/nginx-ssl:latest\n    container_name: quake2-http\n    environment:\n      TZ: America/New_York\n      PUID: 1000\n      PGID: 1000\n      ADMINIP: 127.0.0.1\n      TRUSTSN: 192.168.0.0/16\n      DNSADDR: 8.8.8.8 8.8.4.4\n    ports:\n      - 80:8080/tcp\n    volumes:\n      - /mnt/containers/quake2-http:/mnt/config\n```\n\n#### Multiple Servers\n\nIn some cases you may want to run multiple Quake II servers on a host that all\nshare the same data directory to avoid file duplication. In this case, you can\nset up one of the containers to install the Quake II data to and then point the\nother containers to the first's data directory.\n\n```yaml\nservices:\n  quake2-yamagi-1:\n    image: nephatrine/quake2-yamagi:latest\n    container_name: quake2-yamagi-1\n    environment:\n      TZ: America/New_York\n      PUID: 1000\n      PGID: 1000\n      QUAKE2_INSTALL: /mnt/shared/data/quake2\n      GAME_START: +set port 27910 +exec server.cfg\n    ports:\n      - 27910:27910/udp\n    volumes:\n      - /mnt/containers/quake2-yamagi-1:/mnt/config\n      - /mnt/containers/quake2-data:/mnt/shared\n  quake2-yamagi-2:\n    image: nephatrine/quake2-yamagi:latest\n    container_name: quake2-yamagi-2\n    environment:\n      TZ: America/New_York\n      PUID: 1000\n      PGID: 1000\n      QUAKE2_DATA: /mnt/shared/data/quake2\n      GAME_START: +set port 27911 +game ctf +exec server.cfg\n    ports:\n      - 27911:27911/udp\n    depends_on:\n      - quake2-yamagi-1\n    volumes:\n      - /mnt/containers/quake2-yamagi-2:/mnt/config\n      - /mnt/containers/quake2-data:/mnt/shared\n```\n\nWe specify the `+set port 27911` argument for the secondary server to change the\nactual internal port rather than just setting the composed ports as\n`27911:27910/udp` because the internally set port is also the port advertised on\nmaster servers so needs to match the external port if you plan on showing up\nproperly.\n\n### docker run\n\n```sh\ndocker run --rm -ti code.nephatrine.net/nephnet/quake2-yamagi:latest /bin/bash\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnephatrine%2Fdocker-quake2-yamagi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnephatrine%2Fdocker-quake2-yamagi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnephatrine%2Fdocker-quake2-yamagi/lists"}