@ -4,22 +4,22 @@ let
cfg = config . services . unifi ;
stateDir = " / v a r / l i b / u n i f i " ;
cmd = ''
@ $ { pkgs . jr e} /bin/java java \
@ $ { cfg . jrePackag e} /bin/java java \
$ { optionalString ( cfg . initialJavaHeapSize != null ) " - X m s ${ ( toString cfg . initialJavaHeapSize ) } m " } \
$ { optionalString ( cfg . maximumJavaHeapSize != null ) " - X m x ${ ( toString cfg . maximumJavaHeapSize ) } m " } \
- jar $ { stateDir } /lib/ace.jar
'' ;
mountPoints = [
{
what = " ${ pkgs . unifi } / d l " ;
what = " ${ cfg . unifiPackage } / d l " ;
where = " ${ stateDir } / d l " ;
}
{
what = " ${ pkgs . unifi } / l i b " ;
what = " ${ cfg . unifiPackage } / l i b " ;
where = " ${ stateDir } / l i b " ;
}
{
what = " ${ pkgs . mongodb } / b i n " ;
what = " ${ cfg . mongodbPackage } / b i n " ;
where = " ${ stateDir } / b i n " ;
}
{
@ -41,6 +41,33 @@ in
'' ;
} ;
services . unifi . jrePackage = mkOption {
type = types . package ;
default = pkgs . jre8 ;
defaultText = " p k g s . j r e 8 " ;
description = ''
The JRE package to use . Check the release notes to ensure it is supported .
'' ;
} ;
services . unifi . unifiPackage = mkOption {
type = types . package ;
default = pkgs . unifiLTS ;
defaultText = " p k g s . u n i f i L T S " ;
description = ''
The unifi package to use .
'' ;
} ;
services . unifi . mongodbPackage = mkOption {
type = types . package ;
default = pkgs . mongodb ;
defaultText = " p k g s . m o n g o d b " ;
description = ''
The mongodb package to use .
'' ;
} ;
services . unifi . dataDir = mkOption {
type = types . str ;
default = " ${ stateDir } / d a t a " ;
@ -137,7 +164,7 @@ in
rm - rf " ${ stateDir } / w e b a p p s "
mkdir - p " ${ stateDir } / w e b a p p s "
chown unifi " ${ stateDir } / w e b a p p s "
ln - s " ${ pkgs . unifi } / w e b a p p s / R O O T " " ${ stateDir } / w e b a p p s / R O O T "
ln - s " ${ cfg . unifiPackage } / w e b a p p s / R O O T " " ${ stateDir } / w e b a p p s / R O O T "
'' ;
postStop = ''