xenia 69d374a24f | ||
---|---|---|
lib | ||
modules/ghidra-server | ||
pkgs | ||
support | ||
.gitignore | ||
LICENSE.txt | ||
README.md | ||
TODO.md | ||
default.nix |
README.md
Table of Contents
- dragnpkgs
- usage
- options documentation
- services.ghidra-server
- services.ghidra-server.enable
- services.ghidra-server.enableAdminCli
- services.ghidra-server.{package, jdkPackage} (ghidra_headless, openjdk17_headless)
- services.ghidra-server.host
- services.ghidra-server.basePort (13100)
- services.ghidra-server.directory (ghidra-server)
- services.ghidra-server.{user,group} (ghidra)
- more coming soon(tm)
- packages documentation
- lib documentation
- licensing
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
{config, lib, pkgs, ...}:
{
imports = [
path/to/dragnpkgs
];
}
alternatively, add it as a nix channel
nix-channel --add https://git.lain.faith/haskal/dragnpkgs/archive/main.tar.gz dragnpkgs
then in system config
{config, lib, pkgs, ...}:
{
imports = [
<dragnpkgs>
];
}
for standalone nix on other distros, use ~/.config/nixpkgs/overlays.nix
to enable the dragnpkgs
overlay
(import <dragnpkgs> {}).nixpkgs.overlays
options documentation
documentation for options provided by dragnpkgs
services.ghidra-server
the shared project server for ghidra
example usage:
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)
services.ghidra-server.{package, jdkPackage} (ghidra_headless
, openjdk17_headless
)
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 (ghidra-server
)
the root directory for server files, as a subdirectory of /var/lib
. this is needed because this
option is passed to systemd StateDirectory=
services.ghidra-server.{user,group} (ghidra
)
the service user and group
more coming soon(tm)
packages documentation
ghidra_headless
a variant of ghidra built with a headless openjdk, intended to reduce closure size for server operation
ocamlPackages.xlog
logging for cats, in ocaml: https://git.lain.faith/haskal/xlog
pythonPackages.feedvalidator
or feedvalidator
the W3C atom/RSS feed validator library, https://github.com/w3c/feedvalidator
this package comes with an additional CLI bin, feedvalidator
, which is a simple wrapper around the
library that enables CLI usage
usage
usage: feedvalidator [-h] [-b BASE] file
W3C feedvalidator
positional arguments:
file File to validate
options:
-h, --help show this help message and exit
-b BASE, --base BASE Base URL of document
example
feedvalidator --base "https://my-base-url/atom.xml" path/to/atom.xml
lib documentation
fetchFromSteam
a fetcher that downloads binaries from Steam using DepotDownloader. this is intended for game servers that are distributed via Steam. use SteamDB to get the needed IDs.
Usage:
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;
}
licensing
this repository is NOT licensed under a "standard" FOSS license. instead, it uses CC-BY-NC-SA 4.0. this means, in particular that commercial use is forbidden. if you are, for whatever reason, interested in using this code commercially, please contact me