2024-04-07 22:28:42 +00:00
|
|
|
# dragnpkgs
|
|
|
|
|
|
|
|
this is my personal nixos modules and packages repository. while it was designed for my own use,
|
|
|
|
it's also intended to be flexible and reusable enough for general purpose usage. i might consider
|
|
|
|
upstreaming into nixpkgs if there is sufficient interest
|
|
|
|
|
|
|
|
## usage
|
|
|
|
|
|
|
|
dragnpkgs provides a set of nixos modules and a nixpkgs overlay containing custom packages
|
|
|
|
(automatically applied). to use, import the top-level module into your system configuration, eg
|
|
|
|
|
|
|
|
```nix
|
|
|
|
{config, lib, pkgs, ...}:
|
|
|
|
{
|
|
|
|
imports = [
|
|
|
|
path/to/dragnpkgs
|
|
|
|
];
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2024-04-10 16:29:18 +00:00
|
|
|
## options documentation
|
2024-04-09 20:51:38 +00:00
|
|
|
|
|
|
|
documentation for options provided by dragnpkgs
|
|
|
|
|
|
|
|
|
|
|
|
### [`services.ghidra-server`](./modules/ghidra-server)
|
|
|
|
the shared project server for [ghidra](https://ghidra-sre.org)
|
|
|
|
|
|
|
|
example usage:
|
|
|
|
```nix
|
|
|
|
services.ghidra-server = {
|
|
|
|
enable = true;
|
|
|
|
host = "your.domain.or.ip";
|
|
|
|
};
|
|
|
|
```
|
|
|
|
|
|
|
|
#### services.ghidra-server.enable
|
|
|
|
|
|
|
|
enables the ghidra server service
|
|
|
|
|
|
|
|
#### services.ghidra-server.enableAdminCli
|
|
|
|
|
|
|
|
adds a system package for the CLI tool `ghidra-svrAdmin`, which allows anyone in the `ghidra` group
|
|
|
|
to administer the server (this corresponds to the `server/svrAdmin` tool in the stock ghidra
|
|
|
|
distribution)
|
|
|
|
|
2024-04-10 16:29:18 +00:00
|
|
|
#### services.ghidra-server.{package, jdkPackage} (`ghidra_headless`, `openjdk17_headless`)
|
2024-04-09 20:51:38 +00:00
|
|
|
|
|
|
|
allows overriding the ghidra package and jdk package used for the server
|
|
|
|
|
|
|
|
#### services.ghidra-server.host
|
|
|
|
|
|
|
|
the server hostname or IP; this is typically required (by java RMI) for correct operation
|
|
|
|
|
|
|
|
#### services.ghidra-server.basePort (`13100`)
|
|
|
|
|
|
|
|
the server will use 3 consecutive TCP ports starting from this port
|
|
|
|
|
|
|
|
#### services.ghidra-server.directory (`/var/lib/ghidra-server`)
|
|
|
|
|
|
|
|
the root directory for server files
|
|
|
|
|
|
|
|
#### services.ghidra-server.{user,group} (`ghidra`)
|
|
|
|
|
|
|
|
the service user and group
|
|
|
|
|
|
|
|
|
|
|
|
### more coming soon(tm)
|
|
|
|
|
2024-04-10 16:29:18 +00:00
|
|
|
## packages documentation
|
|
|
|
|
|
|
|
### `ghidra_headless`
|
|
|
|
|
|
|
|
a variant of ghidra built with a headless openjdk, intended to reduce closure size for server
|
|
|
|
operation
|
2024-04-07 22:28:42 +00:00
|
|
|
|
2024-04-15 19:57:00 +00:00
|
|
|
## lib documentation
|
|
|
|
|
|
|
|
### `fetchFromSteam`
|
|
|
|
|
|
|
|
a fetcher that downloads binaries from [Steam](https://store.steampowered.com/) using
|
|
|
|
[DepotDownloader](https://github.com/SteamRE/DepotDownloader). this is intended for game servers
|
|
|
|
that are distributed via Steam. use [SteamDB](https://steamdb.info) to get the needed IDs.
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
```nix
|
|
|
|
pkgs.fetchFromSteam {
|
|
|
|
name = "..."; # optional
|
|
|
|
appId = "...";
|
|
|
|
depot = {
|
|
|
|
depotId = "...";
|
|
|
|
manifestId = "...";
|
|
|
|
beta = "..."; # optional
|
|
|
|
};
|
|
|
|
|
|
|
|
additionalDepots = [
|
|
|
|
# same format as the main `depot`
|
|
|
|
# use this to include eg the steamworks redistributable depot
|
|
|
|
];
|
|
|
|
|
|
|
|
hash = pkgs.lib.fakeHash;
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2024-04-07 22:28:42 +00:00
|
|
|
## licensing
|
|
|
|
|
|
|
|
this repository is NOT licensed under a "standard" FOSS license. instead, it uses
|
|
|
|
[CC-BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en). this means, in
|
|
|
|
particular that commercial use is forbidden. if you are, for whatever reason, interested in using
|
|
|
|
this code commercially, please contact me
|