mirror of
https://github.com/aviallon/nixos-lib.git
synced 2026-04-05 17:27:50 +00:00
[Services] Added modular service configuration + opt-in jupyterhub server
This commit is contained in:
parent
771d557a83
commit
cab07f3d14
3 changed files with 70 additions and 0 deletions
12
services.nix
12
services.nix
|
|
@ -22,6 +22,11 @@ let
|
|||
settings)
|
||||
);
|
||||
in {
|
||||
|
||||
imports = [
|
||||
./services
|
||||
];
|
||||
|
||||
options.aviallon.services = {
|
||||
enable = mkOption {
|
||||
default = true;
|
||||
|
|
@ -119,5 +124,12 @@ in {
|
|||
services.avahi.nssmdns = true; # .lan/.local resolution
|
||||
services.avahi.publish.enable = true;
|
||||
services.avahi.publish.hinfo = true; # Whether to register a mDNS HINFO record which contains information about the local operating system and CPU.
|
||||
|
||||
|
||||
services.nginx = {
|
||||
recommendedProxySettings = true;
|
||||
recommendedGzipSettings = true;
|
||||
recommendedOptimisation = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
6
services/default.nix
Normal file
6
services/default.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ config, pkgs, ...}:
|
||||
{
|
||||
imports = [
|
||||
./jupyterhub.nix
|
||||
];
|
||||
}
|
||||
52
services/jupyterhub.nix
Normal file
52
services/jupyterhub.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{config, pkgs, lib, ...}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.aviallon.services.jupyterhub;
|
||||
in
|
||||
{
|
||||
options.aviallon.services.jupyterhub = {
|
||||
enable = mkEnableOption "Jupyterhub server with Python 3 kernel";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.jupyterhub = {
|
||||
enable = true;
|
||||
kernels.python3 = let
|
||||
env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
|
||||
ipykernel
|
||||
pandas
|
||||
scikit-learn
|
||||
pyspark
|
||||
matplotlib
|
||||
numpy
|
||||
pip
|
||||
]));
|
||||
in {
|
||||
displayName = "Python 3 for machine learning";
|
||||
argv = [
|
||||
"${env.interpreter}"
|
||||
"-m"
|
||||
"ipykernel_launcher"
|
||||
"-f"
|
||||
"{connection_file}"
|
||||
];
|
||||
language = "python";
|
||||
logo32 = "${env}/${env.sitePackages}/ipykernel/resources/logo-32x32.png";
|
||||
logo64 = "${env}/${env.sitePackages}/ipykernel/resources/logo-64x64.png";
|
||||
};
|
||||
};
|
||||
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
};
|
||||
services.nginx.virtualHosts = {
|
||||
"jupyterhub.localhost" = {
|
||||
listen = [ { addr = "0.0.0.0"; port = 80; } ];
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:${toString config.services.jupyterhub.port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue