The other day I was trying out Linux Containers (LXC) on my Debian Jessie server and found that Debian's support for controlling it with libvirt is somewhat inconclusive. I already had a basic libvirt setup for controlling a handful of virtual machines so I really wanted it to work also with LXC if possible.
For my Killing Floor 2 server I made a stupid little PHP script that provides cute cat images for the welcome screen banner. It obtains cat images from The Cat API.
Each image is cached for ten minutes before it is replaced with a new one, so that all players (who connect at roughly the same time) see the same image. The source code is available on Github and an in-game screenshot is shown below for demonstration.
Update 2016-04-15: This guide is out of date. KF 2 server now requires Wine 1.9. I'll update this guide when I find the time.
Update 2016-05-19: See Containerized Killing Floor 2 Dedicated Server for an updated guide.
Killing Floor 2 has a dedicated server program, but it is not yet available for Linux. However, the Windows version of the program runs perfectly well in a Wine environment. See its AppDB entry.
As this is a closed-source program which will run an Internet facing network server, it makes a lot of sense to try to contain it somewhat. Ideally, it should run on its own (containerized/virtualized/bare metal) machine. If you intend to run it on your regular PC, as will be covered here, it should at least run under its own user account.
This is mostly based on the guide Installing KF 2 Server on Linux with WINE at the Tripwire forums.