{"id":25400556,"url":"https://github.com/k4rian/docker-killingfloor","last_synced_at":"2026-05-09T03:37:02.871Z","repository":{"id":277697634,"uuid":"931781826","full_name":"K4rian/docker-killingfloor","owner":"K4rian","description":"A Docker image for the Killing Floor Dedicated Server, packaged with the custom launcher KFDSL.","archived":false,"fork":false,"pushed_at":"2025-02-15T21:33:01.000Z","size":23,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-19T08:22:16.823Z","etag":null,"topics":["docker","docker-compose","docker-image","dockerfile","gameserver","killing-floor","killingfloor","multiplayer"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","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/K4rian.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}},"created_at":"2025-02-12T21:04:23.000Z","updated_at":"2025-02-17T07:53:04.000Z","dependencies_parsed_at":"2025-04-12T00:49:17.935Z","dependency_job_id":"1bf0cde1-1a5e-4b61-83e2-53a0afc760a5","html_url":"https://github.com/K4rian/docker-killingfloor","commit_stats":null,"previous_names":["k4rian/docker-killingfloor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/K4rian/docker-killingfloor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K4rian%2Fdocker-killingfloor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K4rian%2Fdocker-killingfloor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K4rian%2Fdocker-killingfloor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K4rian%2Fdocker-killingfloor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/K4rian","download_url":"https://codeload.github.com/K4rian/docker-killingfloor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K4rian%2Fdocker-killingfloor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272279801,"owners_count":24906000,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"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-compose","docker-image","dockerfile","gameserver","killing-floor","killingfloor","multiplayer"],"created_at":"2025-02-16T00:18:25.794Z","updated_at":"2026-05-09T03:37:02.810Z","avatar_url":"https://github.com/K4rian.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n \u003cimg alt=\"docker-killingfloor logo\" src=\"https://raw.githubusercontent.com/K4rian/docker-killingfloor/refs/heads/assets/icons/logo-docker-killingfloor.svg\" width=\"25%\" align=\"center\"\u003e\n\u003c/p\u003e\n\nA Docker image for the __Killing Floor Dedicated Server__, packaged with the custom launcher **[KFDSL][1]** and based on [Debian][2] (bookworm-slim).\u003cbr\u003e\nThis image allows you to deploy a KF server with minimal configuration - no manual file editing required.\n\n---\n\u003cdiv align=\"center\"\u003e\n\nDocker Tag  | Version | Platform  | Description\n---         | ---     | ---       | ---\n[latest][3] | 1.0     | amd64     | Latest release\n[1.0][3]    | 1.0     | amd64     | v1.0\n\u003c/div\u003e\n\n---\n\u003cp align=\"center\"\u003e\u003ca href=\"#environment-variables\"\u003eEnvironment variables\u003c/a\u003e \u0026bull; \u003ca href=\"#steam-authentication\"\u003eSteam Authentication\u003c/a\u003e \u0026bull; \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e \u0026bull; \u003ca href=\"#using-compose\"\u003eUsing Compose\u003c/a\u003e \u0026bull; \u003ca href=\"#manual-build\"\u003eManual build\u003c/a\u003e \u0026bull; \u003ca href=\"#see-also\"\u003eSee also\u003c/a\u003e \u0026bull; \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/p\u003e\n\n---\n## Environment variables\nEnvironment variables can be provided when creating a container to configure Steam, the server, and the launcher:\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand\u003c/summary\u003e\n\n### Steam\nVariable               | Default Value                   | Description\n---                    | ---                             | ---\nSTEAMACC_USERNAME      | `anonymous`                     | **(Required)** Steam account username. \nSTEAMACC_PASSWORD      |                                 | **(Required)** Steam account password *(⚠️ **NOT** recommended, see the section below)*. \n\n### Server/Launcher\nVariable               | Default Value                   | Description\n---                    | ---                             | ---\nKF_CONFIG              | `KillingFloor.ini`              | Server configuration file. \nKF_SERVERNAME          | `KF Server`                     | Name of the server. \nKF_SHORTNAME           | `KFS`                           | Short name (alias) for the server. \nKF_PORT                | `7707`                          | Game server port. \nKF_WEBADMINPORT        | `8075`                          | Web admin panel port. \nKF_GAMESPYPORT         | `7717`                          | GameSpy query port. \nKF_GAMEMODE            | `survival`                      | Game mode (`survival, objective, toymaster`). \nKF_MAP                 | `KF-BioticsLab`                 | Map to start the server on. \nKF_DIFFICULTY          | `hard`                          | Game difficulty level (`easy, normal, hard, suicidal, hell`). \nKF_LENGTH              | `medium`                        | Game length (`short, medium, long`). \nKF_FRIENDLYFIRE        | `0.0`                           | Friendly fire multiplier (`0.0` = off, `1.0` = full damage). \nKF_MAXPLAYERS          | `6`                             | Maximum number of players. \nKF_MAXSPECTATORS       | `6`                             | Maximum number of spectators. \nKF_PASSWORD            |                                 | Server Password (`empty` = no password). \nKF_REGION              | `1`                             | Server region. \nKF_ADMINNAME           |                                 | Administrator name. \nKF_ADMINMAIL           |                                 | Administrator email address. \nKF_ADMINPASSWORD       |                                 | Administrator password. \nKF_MOTD                |                                 | Message of the day. \nKF_SPECIMENTYPE        | `default`                       | ZEDs type (`default, summer, halloween, christmas`). \nKF_MUTATORS            |                                 | Command-line mutators list. \nKF_SERVERMUTATORS      |                                 | Server-side mutators list (`ServerActors`). \nKF_REDIRECTURL         |                                 | URL for fast download redirection. \nKF_MAPLIST             | `all`                           | List of available maps for the current game (`all` = all available maps). \nKF_WEBADMIN            | `false`                         | Enable or disable the web admin panel. \nKF_MAPVOTE             | `false`                         | Enable or disable map voting. \nKF_MAPVOTE_REPEATLIMIT | `1`                             | Number of maps to be played before a repeat. \nKF_ADMINPAUSE          | `false`                         | Allow administrators to pause the game. \nKF_NOWEAPONTHROW       | `false`                         | Prevent weapons from being thrown on the ground. \nKF_NOWEAPONSHAKE       | `false`                         | Disable weapon shake effect. \nKF_THIRDPERSON         | `false`                         | Enable third-person view (F4). \nKF_LOWGORE             | `false`                         | Disable gore system (no dismemberment). \nKF_UNCAP               | `false`                         | Uncap the framerate (requires client-side tweaks too). \nKF_UNSECURE            | `false`                         | Start the server without Valve Anti-Cheat (VAC). \nKF_NOSTEAM             | `false`                         | Bypass SteamCMD and start the server immediately. \nKF_NOVALIDATE          | `false`                         | Skip server files integrity check. \nKF_AUTORESTART         | `false`                         | Automatically restart the server if it crashes. \nKF_MUTLOADER           | `false`                         | Enable MutLoader (inline mutator). \nKF_KFPATCHER           | `false`                         | Enable KFPatcher (server mutator). \nKF_HIDEPERKS           | `false`                         | KFPatcher: Hide perks. \nKF_NOZEDTIME           | `false`                         | KFPatcher: Disable ZED Time (slow-motion). \nKF_BUYEVERYWHERE       | `false`                         | KFPatcher: Allow buying weapons anywhere. \nKF_ALLTRADERS          | `false`                         | KFPatcher: Keep all traders open. \nKF_ALLTRADERS_MESSAGE  | `\"^wAll traders are ^ropen^w!\"` | KFPatcher: Message displayed when all traders are open. \nKF_LOG_TO_FILE         | `false`                         | Enable logging to a file. \nKF_LOG_LEVEL           | `info`                          | Logging level (`info, debug, warn, error`). \nKF_LOG_FILE            | `./kfdsl.log`                   | Path to the log file. \nKF_LOG_FILE_FORMAT     | `text`                          | Format of the log file (`text, json`). \nKF_LOG_MAX_SIZE        | `10`                            | Maximum log file size in MB. \nKF_LOG_MAX_BACKUPS     | `5`                             | Maximum number of old log files to retain. \nKF_LOG_MAX_AGE         | `28`                            | Maximum log file age in days. \nKF_EXTRAARGS           |                                 | Extra arguments passed to the server. \n\n\u003c/details\u003e\n\n## Steam Authentication\nTo download and update the server files, it is required to provide both a valid Steam username and password.  \nIt is **strongly recommended** to create a secondary Steam account **without Steam Guard** specifically for the server.  \nUsing your **main Steam account is NOT recommended**.\n\n### Providing Steam Credentials\nSteam credentials can be provided by using:\n\n1. **Environment Variables** (⚠️ **NOT Recommended**)  \n  - `STEAMACC_USERNAME`: Your Steam login username.  \n  - `STEAMACC_PASSWORD`: Your Steam login password.  \n  - **Credentials stored as environment variables may be exposed in logs or container metadata.**\n\n2. **Docker Secrets** (✅ **Recommended**)  \n  - Using Docker secrets ensures that your credentials are securely stored and not exposed in environment variables.  \n  - To use Docker secrets, create a secret file and pass it to the container. \n  - Your username secret must be named `steamacc_username` and your password `steamacc_password`.\n  - Example command to create a Docker secret for the password:  \n```bash\necho \"\u003cYOUR_STEAM_PASSWORD\u003e\" | docker secret create steamacc_password -\n```\n\n3. **Docker Compose Secrets** (✅ **Recommended**)  \n  - If using **Docker Compose**, you can mount secrets from a file to keep credentials secure.\n  - Create a `steam_username.txt` file containing only the account username.\n  - Create a `steam_password.txt` file containing only the account password.\n  - See the \u003ca href=\"#using-compose\"\u003eCompose section\u003c/a\u003e.\n\n## Usage\n\u003e *In all examples, the Steam `username` is set using an `environment variable`, while the `password` is stored in the `steam_password.txt` file located in the current working directory.*\n\n__Example 1:__\u003cbr\u003e\nRun a public `Survival` server with custom `names`, set to `Suicidal` difficulty on a `long-length` game, and starting on `KF-WestLondon`: \n```bash\ndocker run -d \\\n  --name kfserver \\\n  -p 7707:7707/udp \\\n  -p 7708:7708/udp \\\n  -p 28852:28852/udp \\\n  -p 28852:28852/tcp \\\n  -p 20560:20560/tcp \\\n  -p 20560:20560/udp \\\n  -e STEAMACC_USERNAME=\"\u003cSTEAM_USERNAME\u003e\" \\\n  -e KF_SERVERNAME=\"KF Server [Suidical] [Long]\" \\\n  -e KF_SHORTNAME=\"KFS\" \\\n  -e KF_MAP=\"KF-WestLondon\" \\\n  -e KF_DIFFICULTY=\"suicidal\" \\\n  -e KF_LENGTH=\"long\" \\\n  -v $(pwd)/steam_password.txt:/run/secrets/steamacc_password \\\n  -i k4rian/killingfloor\n```\n\n__Example 2:__\u003cbr\u003e\nRun a password-protected server in `Objective` mode, with `map voting` enabled, set to `Hard` difficulty on a `medium-length` game, and starting on `KFO-Steamland`:\n```bash\ndocker run -d \\\n  --name kfserver-objective \\\n  -p 7707:7707/udp \\\n  -p 7708:7708/udp \\\n  -p 28852:28852/udp \\\n  -p 28852:28852/tcp \\\n  -p 20560:20560/tcp \\\n  -p 20560:20560/udp \\\n  -e STEAMACC_USERNAME=\"\u003cSTEAM_USERNAME\u003e\" \\\n  -e KF_SERVERNAME=\"KF Server [Objective] [Hard] [Medium]\" \\\n  -e KF_SHORTNAME=\"OKFS\" \\\n  -e KF_GAMEMODE=\"objective\" \\\n  -e KF_MAP=\"KFO-Steamland\" \\\n  -e KF_DIFFICULTY=\"hard\" \\\n  -e KF_LENGTH=\"medium\" \\\n  -e KF_PASSWORD=\"\u003c16_CHARACTERS_MAX_PASSWORD\u003e\" \\\n  -e KF_MAPVOTE=\"true\" \\\n  -v $(pwd)/steam_password.txt:/run/secrets/steamacc_password \\\n  -i k4rian/killingfloor\n```\n\n__Example 3:__\u003cbr /\u003e\nRun a public `Toy Master` server using a custom `configuration file`, `map voting` and `web admin panel` enabled, set to `Hell on Earth` difficulty on a `short-length` game:\n```bash\ndocker run -d \\\n  --name kfserver-toymaster \\\n  -p 7707:7707/udp \\\n  -p 7708:7708/udp \\\n  -p 28852:28852/udp \\\n  -p 28852:28852/tcp \\\n  -p 8075:8075/tcp \\\n  -p 20560:20560/tcp \\\n  -p 20560:20560/udp \\\n  -e STEAMACC_USERNAME=\"\u003cSTEAM_USERNAME\u003e\" \\\n  -e KF_CONFIG=\"ToyGame.ini\" \\\n  -e KF_SERVERNAME=\"KF Server [Toy Master] [HoE] [Short]\" \\\n  -e KF_SHORTNAME=\"TMKFS\" \\\n  -e KF_GAMEMODE=\"toymaster\" \\\n  -e KF_MAP=\"TOY-DevilsDollhouse\" \\\n  -e KF_DIFFICULTY=\"hell\" \\\n  -e KF_LENGTH=\"short\" \\\n  -e KF_ADMINPASSWORD=\"\u003c16_CHARACTERS_MAX_PASSWORD\u003e\" \\\n  -e KF_WEBADMIN=\"true\" \\\n  -e KF_MAPVOTE=\"true\" \\\n  -v $(pwd)/steam_password.txt:/run/secrets/steamacc_password \\\n  -i k4rian/killingfloor\n```\n\n## Using Compose\nSee [compose/README.md][4]\n\n## Manual build\n__Requirements__:\u003cbr\u003e\n— Docker \u003e= __18.09.0__\u003cbr\u003e\n— Git *(optional)*\n\nLike any Docker image the building process is pretty straightforward: \n\n- Clone (or download) the GitHub repository to an empty folder on your local machine:\n```bash\ngit clone --depth 1 https://github.com/K4rian/docker-killingfloor.git .\n```\n\n- Then run the following command inside the newly created folder:\n```bash\ndocker build --no-cache -t k4rian/killingfloor .\n```\n\n## See also\n- **[docker-steamcmd][5]**: The base image used by this project.\n- **[kfdsl][1]**: A custom launcher for the KF Dedicated Server, written in Go.\n- **[kfrs][6]**: A secure HTTP redirect server for the KF Dedicated Server, written in Go.\n\n## License\n[MIT][7]\n\n[1]: https://github.com/K4rian/kfdsl \"Killing Floor Dedicated Server Launcher (KFDSL)\"\n[2]: https://hub.docker.com/_/debian \"Debian Docker Image on Docker Hub\"\n[3]: https://github.com/K4rian/docker-killingfloor/blob/main/Dockerfile \"Latest Dockerfile\"\n[4]: https://github.com/K4rian/docker-killingfloor/tree/main/compose \"Compose Files\"\n[5]: https://github.com/K4rian/docker-steamcmd \"SteamCMD Docker Image\"\n[6]: https://github.com/K4rian/kfrs \"Killing Floor Redirect Server (KFRS)\"\n[7]: https://github.com/K4rian/docker-killingfloor/blob/main/LICENSE","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk4rian%2Fdocker-killingfloor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fk4rian%2Fdocker-killingfloor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk4rian%2Fdocker-killingfloor/lists"}