{"id":15127777,"url":"https://github.com/max-pfeiffer/rust-game-server-docker","last_synced_at":"2026-02-22T12:56:28.984Z","repository":{"id":241966520,"uuid":"808307057","full_name":"max-pfeiffer/rust-game-server-docker","owner":"max-pfeiffer","description":"Docker container providing a Rust dedicated game server. Helm chart for running a Rust dedicated server on Kubernetes.","archived":false,"fork":false,"pushed_at":"2026-02-16T20:52:19.000Z","size":743,"stargazers_count":28,"open_issues_count":3,"forks_count":8,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-17T02:58:39.021Z","etag":null,"topics":["dedicated","dedicated-game-server","dedicated-server","docker","docker-compose","docker-container","docker-image","game","helm-chart","kubernetes","rust"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/pfeiffermax/rust-game-server","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/max-pfeiffer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-05-30T19:48:51.000Z","updated_at":"2026-02-11T18:04:55.000Z","dependencies_parsed_at":"2024-10-31T10:43:50.534Z","dependency_job_id":"c2ea21fd-e5f1-470d-a5ee-d0afe69cea50","html_url":"https://github.com/max-pfeiffer/rust-game-server-docker","commit_stats":null,"previous_names":["max-pfeiffer/rust-game-server-docker"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/max-pfeiffer/rust-game-server-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/max-pfeiffer%2Frust-game-server-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/max-pfeiffer%2Frust-game-server-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/max-pfeiffer%2Frust-game-server-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/max-pfeiffer%2Frust-game-server-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/max-pfeiffer","download_url":"https://codeload.github.com/max-pfeiffer/rust-game-server-docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/max-pfeiffer%2Frust-game-server-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29596186,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T20:59:56.587Z","status":"ssl_error","status_checked_at":"2026-02-18T20:58:41.434Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["dedicated","dedicated-game-server","dedicated-server","docker","docker-compose","docker-container","docker-image","game","helm-chart","kubernetes","rust"],"created_at":"2024-09-26T02:05:25.890Z","updated_at":"2026-02-18T21:10:45.844Z","avatar_url":"https://github.com/max-pfeiffer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![codecov](https://codecov.io/gh/max-pfeiffer/rust-game-server-docker/graph/badge.svg?token=RfzYdxhvCd)](https://codecov.io/gh/max-pfeiffer/rust-game-server-docker)\n[![Code Quality](https://github.com/max-pfeiffer/rust-game-server-docker/actions/workflows/code-quality.yaml/badge.svg)](https://github.com/max-pfeiffer/rust-game-server-docker/actions/workflows/code-quality.yaml)\n[![Test Image Build](https://github.com/max-pfeiffer/rust-game-server-docker/actions/workflows/test-image-build.yaml/badge.svg)](https://github.com/max-pfeiffer/rust-game-server-docker/actions/workflows/test-image-build.yaml)\n![publish workflow](https://github.com/max-pfeiffer/rust-game-server-docker/actions/workflows/publish.yaml/badge.svg)\n![helm-release workflow](https://github.com/max-pfeiffer/rust-game-server-docker/actions/workflows/helm-release.yaml/badge.svg)\n![Docker Image Size (latest semver)](https://img.shields.io/docker/image-size/pfeiffermax/rust-game-server?sort=semver)\n![Docker Pulls](https://img.shields.io/docker/pulls/pfeiffermax/rust-game-server)\n\n# Rust Dedicated Game Server - Docker Image and Helm chart\nThis Docker image provides a [Rust](https://rust.facepunch.com/) dedicated game server. You will find here also a\n[Helm Chart](https://helm.sh/) for running a Rust dedicated server on [Kubernetes container orchestration system](https://kubernetes.io/). \n\n[Facepunch](https://facepunch.com/) releases an [update](https://rust.facepunch.com/changes) for Rust monthly every\nfirst Thursday. Also, there are irregular updates every now and then. Each update requires players and servers to\nupdate their versions of the game.\n\nTherefore, an automation checks the [Rust release branch](https://steamdb.info/app/258550/depots/?branch=release) every\nnight. If a new release was published by [Facepunch](https://facepunch.com/), a new Docker image will be built with this\nnew version. Just use the `latest` tag and you will always have an up-to-date Docker image.\n\nKudus to:\n* [@jonakoudijs](https://github.com/jonakoudijs) for providing the [Steamcmd Docker image](https://github.com/steamcmd/docker) which is used here\n* [@detiam](https://github.com/detiam) for maintaining a working fork for the [Steam websocket client](https://github.com/detiam/steam_websocket) \n\n**Docker Hub:** https://hub.docker.com/r/pfeiffermax/rust-game-server\n\n**GitHub Repository:** https://github.com/max-pfeiffer/rust-game-server-docker\n\n## IMPORTANT CHANGES SINCE V2.0.0 (18.2.2026)\nSince image version V2.0.0 the application is run with an unprivileged user and not with root user anymore. This was\ndone to improve the security of this image.\nIf you were persisting server identity with a Volume and start the Rust dedicated server using the new image (like\nin the docker compose examples), you will encounter problems starting your server. This happens because root user still\nowns the files in that Volume and the new unprivileged user doesn't have permissions to access these files.\n\nIf you are using Docker please adjust the file ownership with this command:\n```shell\ndocker exec -it -u root rust-server chown -R rust:rust /srv/rust\n```\nPlease restart the Docker container afterwards. Your server should start up just fine.\n`rust-server` is the name of your container.\n\n## Oxide\nSince v1.1.0 I provide an [Oxide](https://umod.org/games/rust) variant of this image. The automation checks for\n[a new Oxide release on GitHub](https://github.com/OxideMod/Oxide.Rust/releases) every night and builds a new image\nbased on the latest version of my Rust Docker image.\n\nThe tag of these images is prefixed with `oxide-build`. So look out for these\n[tags on Docker Hub](https://hub.docker.com/r/pfeiffermax/rust-game-server/tags) if you want to run Rust with Oxide.\nThere is also a `latest-oxide` tag, so you can use this to always run an up-to-date Docker image with Oxide.\n\nThis image aims to be a solid base to run any plugin. So please drop me a line if you are missing any Debian package\nfor a plugin.\n\n## Rust Websocket Rcon\nIf you want to connect to [Rust](https://rust.facepunch.com/) server console or want to check on the server statistics,\ncheck out my [Rust Websocket Rcon client](https://github.com/max-pfeiffer/rust-web-rcon) companion project.\nI provide a Docker container with [Facepunch's websocket Rcon client](https://github.com/Facepunch/webrcon).\nThis is already integrated in the docker compose examples.\n\n## Usage\n### Configuration\nYou can append all [server configuration options](https://www.corrosionhour.com/rust-admin-commands/) as commands\nwhen running `RustDedicated` binary. Use the regular syntax like `+server.ip 0.0.0.0` or `-logfile`.\n\nAs the Rust server is running in the Docker container as a stateless application, you want to have all stateful server\ndata (map, config, blueprints, etc.) stored in a [Docker volume](https://docs.docker.com/storage/volumes/)\nwhich is persisted outside of the container. This can be configured with `+server.identity`: you can specify the\ndirectory where this data is stored. You need to make sure that this directory is mounted on\na [Docker Volume](https://docs.docker.com/storage/volumes/).\n\nThis is especially important because you need to update the Rust server Docker image every month when Facepunch\nreleases a new software update. When you use a [Docker volume](https://docs.docker.com/storage/volumes/) to store\nthe `+server.identity`, all the data is still intact.\n\nCheck out the [docker compose](examples/docker-compose/README.md) and the\n[docker compose production](examples/docker-compose-production/README.md) examples to learn about\nthe details. \n\n### Docker Run\nFor testing purposes, you can fire up a Docker container like this:\n```shell\ndocker run -it --publish 28015:28015/udp --publish 28016:28016/tcp pfeiffermax/rust-game-server:latest +server.ip 0.0.0.0 +server.port 28015 +rcon.ip 0.0.0.0 +rcon.port 28016\n```\n\n### Docker Compose\nWith docker compose you have your own [Rust](https://rust.facepunch.com/) server up and running in no-time. For this,\njust clone this repo (or just copy and paste the [compose.yaml](examples/docker-compose/compose.yaml) file to your\nmachine) and run the server with Docker compose like this:\n```shell\ngit clone https://github.com/max-pfeiffer/rust-game-server-docker.git\ncd rust-game-server-docker/examples/docker-compose\ndocker compose up\n```\nYou can also run the [Rust](https://rust.facepunch.com/) server in the background with option `-d`:\n```shell\ndocker compose up -d\n```\nAnd show the logs, option `-f` follows the logs:\n```shell\ndocker compose logs -f\n```\n\n#### Rust Websocket Rcon\nWhen spinning up the containers with Docker compose, an instance of the\n[Rust Websocket RCon client](https://github.com/max-pfeiffer/rust-web-rcon) is started as well.\n\nIf you want to connect to [Rust](https://rust.facepunch.com/) server console or want to check on the server statistics,\npoint your web browser to: http://localhost\n\nThen enter the address of your server and the Rcon password in the web interface. \n\n### Production Deployment\nIf you want to deploy to a production (Linux) server, have a look at the\n[docker compose production example documentation](examples/docker-compose-production/README.md).\n\n## Helm chart\nIf you would like to run the Rust server in your [Kubernetes](https://kubernetes.io/) cluster, I provide a\n[Helm chart](https://helm.sh/) you could use: [https://max-pfeiffer.github.io/rust-game-server-docker](https://max-pfeiffer.github.io/rust-game-server-docker)\n\nThere is also [documentation available](charts/rust/README.md) for that Helm chart.\n\nIf you want to run your Rust server on bare metal Kubernetes, check out\n[my blog article](https://max-pfeiffer.github.io/blog/hosting-game-servers-on-bare-metal-kubernetes-with-kube-vip.html)\non how to do that using [kube-vip](https://kube-vip.io/).\n\n## Additional Information Sources\n* [SteamDB](https://steamdb.info/app/258550/info/)\n* [Official Rust Wiki](https://wiki.facepunch.com/rust/)\n* [Valve Wiki](https://developer.valvesoftware.com/wiki/Rust_Dedicated_Server)\n* [Admin commands list](https://www.corrosionhour.com/rust-admin-commands/)\n\n## Other Game Server Projects\n* [Valheim dedicated server](https://github.com/max-pfeiffer/valheim-dedicated-server-docker-helm)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmax-pfeiffer%2Frust-game-server-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmax-pfeiffer%2Frust-game-server-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmax-pfeiffer%2Frust-game-server-docker/lists"}