FastDL
When joining a server, players of CS 1.6, CS:S, CS 2 and other GoldSrc and Source games download the maps, models and sounds they're missing. The game server itself hands them out very slowly. FastDL serves these files over HTTP straight from the node, and the game downloads them in seconds (sv_downloadurl).
The agent on each node does the serving; the settings live in the panel: Modules → FastDL → Settings. The module is on by default.
How it works
- Each node listens on the FastDL HTTP port (27080 by default) and serves server files at
http://<node IP>:27080/fastdl/<server ID>/<path>. - Every new container gets a
FASTDL_URLvariable — the address of its server's files. - The game image decides what to do with it. The starter set's CS 1.6 image sets
sv_downloadurlandsv_allowdownload 1. Ifserver.cfgalready has an address of your own (a CDN, say), it's left alone. Images that don't need FastDL simply ignore the variable.
Existing servers get the address only once their container is recreated. Any action that recreates the container will do, such as Reapply for the plan or changing the server's settings.
What you need to do
Open the FastDL port in each node's firewall:
ufw allow 27080/tcp
That's all: with the default settings serving turns on on every node by itself.
Settings
Serving — shared settings for all nodes:
- Port — 27080 by default.
- Client caching, seconds — the
Cache-Control: max-ageheader, 0 to 604800, 300 by default. - File extensions — what's served. By default these are maps, models, sounds, textures and compressed
.bz2files:.bsp .nav .ain .wad .res .mdl .spr .vtx .vvd .phy .wav .mp3 .ogg .tga .bmp .vtf .vmt .pcf .bz2. Restore the default set brings this list back.
Configs, plugins, scripts and keys (.cfg, .ini, .txt, .json, .amxx, .smx, .so, .dll, .sh, .db, .key and so on) are never served, even if added to the list: they may hold RCON passwords and code. Directory listings and hidden folders aren't served either.
Nodes — the serving state on each node and its exceptions:
- turn FastDL off on that node;
- its own Port;
- Public address — if the node is behind NAT, a reverse proxy or a CDN, give the address players reach it at, e.g.
https://dl.example.com. Empty —http://<node IP>:<port>.
Nodes get new settings within a few seconds of saving.
Node states
- Serving — all good; the public address is shown next to it.
- Disabled — FastDL is off on the node by an exception, or the module is off.
- Error — the agent couldn't start serving, e.g. the port is taken by another process. The error text is shown in the node's row.
- Agent outdated — update the agent on the node, see Updates.
- Node offline, Pending — the node isn't in touch or hasn't been polled yet.
Turn FastDL off
Modules → FastDL → Disable — the nodes stop serving files, and players download maps slowly, through the game server itself. The settings are kept and the module can be turned back on at any time.
If players download slowly
- Check the node's state on the FastDL page: it should be Serving.
- Open
http://<node IP>:27080/fastdl/<server ID>/cstrike/maps/<map>.bspin a browser. If it doesn't load, the port is closed in the node's or the provider's firewall. - The server was created before FastDL was on — recreate its container (see above).
- The file type isn't in File extensions — add it.