74 lines
1.9 KiB
Nix
74 lines
1.9 KiB
Nix
{ pkgs ? import <nixpkgs> { inherit system; }
|
|
, system ? builtins.currentSystem
|
|
, stateDir ? "/var"
|
|
, runtimeDir ? "${stateDir}/run"
|
|
, logDir ? "${stateDir}/log"
|
|
, spoolDir ? "${stateDir}/spool"
|
|
, cacheDir ? "${stateDir}/cache"
|
|
, tmpDir ? (if stateDir == "/var" then "/tmp" else "${stateDir}/tmp")
|
|
, forceDisableUserChange ? false
|
|
, processManager
|
|
}:
|
|
|
|
let
|
|
constructors = import ../../services-agnostic/constructors.nix {
|
|
inherit pkgs stateDir runtimeDir logDir tmpDir cacheDir spoolDir forceDisableUserChange processManager;
|
|
};
|
|
|
|
containerProviderConstructors = import ../../service-containers-agnostic/constructors.nix {
|
|
inherit pkgs stateDir runtimeDir logDir tmpDir cacheDir spoolDir forceDisableUserChange processManager;
|
|
};
|
|
in
|
|
rec {
|
|
sshd = {
|
|
pkg = constructors.sshd {
|
|
extraSSHDConfig = ''
|
|
UsePAM yes
|
|
'';
|
|
};
|
|
};
|
|
|
|
dbus-daemon = {
|
|
pkg = constructors.dbus-daemon {
|
|
services = [ disnix-service ];
|
|
};
|
|
};
|
|
|
|
tomcat = containerProviderConstructors.disnixAppservingTomcat {
|
|
webapps = [
|
|
pkgs.tomcat9.webapps # Include the Tomcat example and management applications
|
|
];
|
|
enableAJP = true;
|
|
};
|
|
|
|
apache = {
|
|
pkg = constructors.basicAuthReverseProxyApache {
|
|
dependency = tomcat;
|
|
serverAdmin = "admin@localhost";
|
|
targetProtocol = "ajp";
|
|
portPropertyName = "ajpPort";
|
|
|
|
authName = "DisnixWebService";
|
|
authUserFile = pkgs.stdenv.mkDerivation {
|
|
name = "htpasswd";
|
|
buildInputs = [ pkgs.apacheHttpd ];
|
|
buildCommand = ''
|
|
htpasswd -cb ./htpasswd admin secret
|
|
mv htpasswd $out
|
|
'';
|
|
};
|
|
requireUser = "admin";
|
|
};
|
|
};
|
|
|
|
mysql = containerProviderConstructors.mysql {};
|
|
|
|
disnix-service = {
|
|
pkg = constructors.disnix-service {
|
|
inherit dbus-daemon;
|
|
containerProviders = [ tomcat mysql ];
|
|
authorizedUsers = [ tomcat.name ];
|
|
};
|
|
};
|
|
}
|