aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 5d0f76718ebbf8dddc31f6bd32eaee83f94bc5be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
### /!\ ALART /!\ ALPHA PROOF OF CONCEPT /!\ ALART /!\

Currently the SM/MMS side of things builds exclusively against SDK 2013
Multiplayer. Accordingly, there are some underlying 32-bit assumptions.

srcds-nix
=========

This is a Nix package set and library for Source Engine dedicated servers.
It currently features: 

* fetchers for Steam content: `fetchDepotCache`, `fetchDepotFile`, `mkDepot`
  * Courtesy of a patched DepotDownloader, derivations are fixed-output on the
    contents of deterministic manifests, then on the SHA1 hashes within.
  * This is quite distinct from the usual `steamcmd` approach, but yields a
    far more reproducible server environment. Additionally, the network traffic
    between `lib.fakeHash` and TOFU is measured in kilobytes, not potential
    gigabytes as with [steam-fetcher].
* AMBuild
* MetaMod: Source
* SourceMod
  * a standard extensible package set for plugins and extensions, including:
    * `mkDerivation` analogue: `buildSMPlugin`
    * setup hook for `spcomp` include paths
    * coming soon: development shells to replicate your server setup

Usage
-----

* `default.nix` lets you `callPackage` this repository the old-fashioned way
  to get the top-level package set.
* `overlay.nix` adds it as `srcdsPackages` to the target. `srcdsPackages` is
  considered its canonical place in nixpkgs.
* `flake.nix` exposes:
  * `packages.${system}.default` is the top-level package set.
  * `overlays.default` points to `overlay.nix`.

[steam-fetcher]: https://github.com/nix-community/steam-fetcher