@@ -185,6 +185,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
-[Mealie](https://nightly.mealie.io/), a self-hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in NuxtJS for a pleasant user experience for the whole family. Available as [services.mealie](#opt-services.mealie.enable)
-[Sunshine](https://app.lizardbyte.dev/Sunshine), a self-hosted game stream host for Moonlight. Available as [services.sunshine](#opt-services.sunshine.enable).
-[Uni-Sync](https://github.com/EightB1ts/uni-sync), a synchronization tool for Lian Li Uni Controllers. Available as [hardware.uni-sync](#opt-hardware.uni-sync.enable)
-[prometheus-nats-exporter](https://github.com/nats-io/prometheus-nats-exporter), a Prometheus exporter for NATS. Available as [services.prometheus.exporters.nats](#opt-services.prometheus.exporters.nats.enable).
enable=mkEnableOption"Sunshine, a self-hosted game stream host for Moonlight";
package=mkPackageOptionpkgs"sunshine"{};
openFirewall=mkOption{
type=bool;
default=false;
description=''
Whether to automatically open ports in the firewall.
'';
};
capSysAdmin=mkOption{
type=bool;
default=false;
description=''
Whether to give the Sunshine binary CAP_SYS_ADMIN, required for DRM/KMS screen capture.
'';
};
settings=mkOption{
default={};
description=''
Settings to be rendered into the configuration file. If this is set, no configuration is possible from the web UI.
See https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/advanced_usage.html#configuration for syntax.
'';
example=''
{
sunshine_name = "nixos";
}
'';
type=submodule(settings:{
freeformType=settingsFormat.type;
options.port=mkOption{
type=port;
default=defaultPort;
description=''
Base port -- others used are offset from this one, see https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/advanced_usage.html#port for details.
'';
};
});
};
applications=mkOption{
default={};
description=''
Configuration for applications to be exposed to Moonlight. If this is set, no configuration is possible from the web UI, and must be by the `settings` option.
'';
example=''
{
env = {
PATH = "$(PATH):$(HOME)/.local/bin";
};
apps = [
{
name = "1440p Desktop";
prep-cmd = [
{
do = "''${pkgs.kdePackages.libkscreen}/bin/kscreen-doctor output.DP-4.mode.2560x1440@144";