Compare commits
13 Commits
813c824758
...
4d186c69bc
Author | SHA1 | Date |
---|---|---|
David Crompton | 4d186c69bc | |
David Crompton | fca8aacba7 | |
David Crompton | af5774ba66 | |
David Crompton | 9fd4f2c67c | |
David Crompton | fb5ebf1be0 | |
David Crompton | 9e7069e2d9 | |
David Crompton | f5d3abb2b3 | |
David Crompton | 6b290b11b4 | |
David Crompton | 9adfae87ee | |
David Crompton | 22e4f6b232 | |
David Crompton | 3e488d7da0 | |
David Crompton | cd6c4635b3 | |
David Crompton | fe1b1adf8c |
|
@ -39,16 +39,16 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1704290814,
|
||||
"narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=",
|
||||
"lastModified": 1705331948,
|
||||
"narHash": "sha256-qjQXfvrAT1/RKDFAMdl8Hw3m4tLVvMCc8fMqzJv0pP4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421",
|
||||
"rev": "b8dd8be3c790215716e7c12b247f45ca525867e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-23.05",
|
||||
"ref": "nixos-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs = {
|
||||
url = "github:NixOS/nixpkgs/nixos-23.05";
|
||||
url = "github:NixOS/nixpkgs/nixos-23.11";
|
||||
};
|
||||
nixpkgs-unstable = {
|
||||
url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
./nosleep.nix
|
||||
];
|
||||
|
||||
sops.age.keyFile = "/root/.config/sops/age/keys.txt";
|
||||
sops.defaultSopsFile = ./secrets/system.yaml;
|
||||
|
||||
# Support NTFS(3g)
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.initrd.services.swraid.enable = true;
|
||||
boot.swraid.enable = true;
|
||||
|
||||
# Cache and Thin Provisioning Support
|
||||
services.lvm.boot.thin.enable = true;
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{ config, lib, pkgs, ...}: {
|
||||
config = {
|
||||
# Make sure opengl is enabled
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
|
@ -21,7 +20,8 @@
|
|||
|
||||
# Use the open source version of the kernel module
|
||||
# Only available on driver 515.43.04+
|
||||
open = true;
|
||||
# Seems to cause some issues with Tensorflow/CUDA/PyTorch
|
||||
open = false;
|
||||
|
||||
# Enable the nvidia settings menu
|
||||
nvidiaSettings = true;
|
||||
|
@ -32,15 +32,15 @@
|
|||
|
||||
# Allow Unfree, Nvidia, CUDA, and derived packages.
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nixpkgs.config.cudaSupport = true;
|
||||
|
||||
# Use Prebuilt Cached Versions of CUDA Packages
|
||||
nix.settings = {
|
||||
trusted-substituters = [
|
||||
substituters = [
|
||||
"https://cuda-maintainers.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,57 +1,150 @@
|
|||
{ config, lib, pkgs, nix-matlab, ... }: let
|
||||
license-manager = pkgs.stdenv.mkDerivation rec {
|
||||
pname = "matlab-license-server";
|
||||
version = "R2023b";
|
||||
# The matlab installation is held in the MATLAB_INSTALL_DIR MATLAB
|
||||
# updates and toolboxes can primarily be handled with the matlab_mpm
|
||||
# tool defined below. This file, alongside the matlab_install.txt
|
||||
# describe the current version of MATLAB available on the
|
||||
# system. Nix *can* fetch MATLAB and all its toolboxes, however not
|
||||
# all MATLAB toolboxes can be installed via commands, some *must* be
|
||||
# installed graphically, and otherwise are unsupported. So, for now,
|
||||
# we try to make installation as documented and reproducible as
|
||||
# possible.
|
||||
|
||||
MATLAB_INSTALL_DIR = "/opt/MATLAB";
|
||||
|
||||
# MATLAB Package Manager: MPM
|
||||
#
|
||||
# This tool is used to guarantee (nearly)
|
||||
# reproducible installations of MATLAB, and to easily allow for
|
||||
# controlling what version of MATLAB is currently installed
|
||||
|
||||
matlab-mpm = pkgs.stdenv.mkDerivation rec {
|
||||
pname = "matlab-package-manager";
|
||||
version = "2023.12.1";
|
||||
|
||||
src = pkgs.fetchurl {
|
||||
url = "https://ssd.mathworks.com/supportfiles/downloads/${version}/license_manager/${version}/daemons/glnxa64/mathworks_network_license_manager_glnxa64.zip";
|
||||
hash = "sha256-Btl3ETzTtAV+cjqwXf4AE4QJCtssN1s6dmmcpR1EQxY=";
|
||||
url = "https://ssd.mathworks.com/supportfiles/downloads/mpm/${version}/glnxa64/mpm";
|
||||
hash = "sha256-NlfPLDnpRIaKLLuIZAudnFHBKL04gzmypzp98QOa6+g=";
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
pkgs.autoPatchelfHook
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
autoPatchelfHook
|
||||
];
|
||||
unpackPhase = ''
|
||||
${pkgs.unzip}/bin/unzip $src
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
gawk
|
||||
gnugrep
|
||||
unzip
|
||||
|
||||
linux-pam
|
||||
libz
|
||||
];
|
||||
|
||||
unpackPhase = "cp $src ./mpm";
|
||||
|
||||
buildPhase = ''
|
||||
tail -n +$(head -n20 ./mpm | grep "tail -n" | awk '{print $3}' | grep -o -E "[0-9]+") ./mpm > ./mpm.zip
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
cp -r * $out/
|
||||
addAutoPatchelfSearchPath $out/*
|
||||
unzip -d $out ./mpm.zip
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
executable = "bin/glnxa64/mpm";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
# Environment with the dependencies needed to run matlab (and
|
||||
# matlab's installers)
|
||||
matlab-env = pkgs.buildFHSUserEnv {
|
||||
name = "matlab-env";
|
||||
targetPkgs = (ps: nix-matlab.targetPkgs ps);
|
||||
};
|
||||
|
||||
# Script used to get the most up to date version of the desired MATLAB
|
||||
matlab-update-script = pkgs.writeScriptBin "matlab_update_installation.sh" ''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
|
||||
if [ "''${EUID:-$(id -u)}" -ne 0 ]; then
|
||||
echo "Please make sure to run this script as root"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
if [ ! -d "${MATLAB_INSTALL_DIR}" ]; then
|
||||
echo "Make sure that '${MATLAB_INSTALL_DIR}' exists"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
cd ${MATLAB_INSTALL_DIR}
|
||||
cp ${./matlab/install_file.txt} ./install_file.txt
|
||||
sed -e "s#@MATLAB_INSTALL_DIR@#${MATLAB_INSTALL_DIR}#" -i ./install_file.txt
|
||||
|
||||
${matlab-env}/bin/${matlab-env.name} -c '${matlab-mpm}/${matlab-mpm.executable} install --inputfile ./install_file.txt'
|
||||
'';
|
||||
|
||||
desktopItem = pkgs.makeDesktopItem {
|
||||
desktopName = "Matlab";
|
||||
name = "matlab";
|
||||
# We use substituteInPlace after we run `install`
|
||||
# -desktop is needed, see:
|
||||
# https://www.mathworks.com/matlabcentral/answers/20-how-do-i-make-a-desktop-launcher-for-matlab-in-linux#answer_25
|
||||
exec = "@out@/bin/matlab -desktop %F";
|
||||
icon = "matlab";
|
||||
# Most of the following are copied from octave's desktop launcher
|
||||
categories = [
|
||||
"Utility"
|
||||
"TextEditor"
|
||||
"Development"
|
||||
"IDE"
|
||||
];
|
||||
mimeTypes = [
|
||||
"text/x-octave"
|
||||
"text/x-matlab"
|
||||
];
|
||||
keywords = [
|
||||
"science"
|
||||
"math"
|
||||
"matrix"
|
||||
"numerical computation"
|
||||
"plotting"
|
||||
];
|
||||
};
|
||||
|
||||
# Produce acessible executables to "f", e.g. "matlab" or "mex"
|
||||
matlab-run = f: pkgs.buildFHSUserEnv {
|
||||
name = f;
|
||||
targetPkgs = nix-matlab.targetPkgs;
|
||||
# If making MATLAB available, create Application Icon etc.
|
||||
extraInstallCommands = pkgs.lib.strings.optionalString (f == "matlab") ''
|
||||
install -Dm644 ${desktopItem}/share/applications/matlab.desktop $out/share/applications/matlab.desktop
|
||||
substituteInPlace $out/share/applications/matlab.desktop \
|
||||
--replace "@out@" ${placeholder "out"}
|
||||
install -Dm644 ${nix-matlab}/icons/hicolor/256x256/matlab.png $out/share/icons/hicolor/256x256/matlab.png
|
||||
install -Dm644 ${nix-matlab}/icons/hicolor/512x512/matlab.png $out/share/icons/hicolor/512x512/matlab.png
|
||||
install -Dm644 ${nix-matlab}/icons/hicolor/64x64/matlab.png $out/share/icons/hicolor/64x64/matlab.png
|
||||
'';
|
||||
runScript = pkgs.writeScript "matlab-run-${f}-script" ''
|
||||
export QT_QPA_PLATFORM=xcb
|
||||
${MATLAB_INSTALL_DIR}/bin/${f} "$@"
|
||||
'';
|
||||
};
|
||||
matlab-server = pkgs.buildFHSUserEnv {
|
||||
name = "matlab-server";
|
||||
|
||||
targetPkgs = (ps: nix-matlab.targetPkgs ps ++ [
|
||||
license-manager
|
||||
]);
|
||||
|
||||
runScript = pkgs.writeScript "matlab-server" (nix-matlab.shellHooksCommon + ''
|
||||
exec $MATLAB_INSTALL_DIR/bin/matlab "$@"
|
||||
'');
|
||||
};
|
||||
matlab-server-shell = pkgs.buildFHSUserEnv {
|
||||
name = "matlab-server-shell";
|
||||
|
||||
targetPkgs = (ps: nix-matlab.targetPkgs ps ++ [
|
||||
license-manager
|
||||
]);
|
||||
|
||||
runScript = pkgs.writeScript "matlab-server-shell" (nix-matlab.shellHooksCommon + ''
|
||||
echo license-server is in:
|
||||
echo ${license-manager}
|
||||
echo Make sure it is installed (matlab-server user)
|
||||
exec bash
|
||||
'');
|
||||
};
|
||||
in {
|
||||
environment.systemPackages = (with nix-matlab.packages.x86_64-linux; [
|
||||
environment.sessionVariables = {
|
||||
inherit MATLAB_INSTALL_DIR;
|
||||
};
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
inherit matlab-update-script;
|
||||
matlab = (matlab-run "matlab");
|
||||
matlab-mex = (matlab-run "mex");
|
||||
})
|
||||
];
|
||||
environment.systemPackages =(with pkgs; [
|
||||
matlab-update-script
|
||||
matlab
|
||||
matlab-shell
|
||||
matlab-server
|
||||
matlab-server-shell
|
||||
matlab-mlint
|
||||
matlab-mex
|
||||
]) ++ (with pkgs; [
|
||||
octaveFull
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,387 @@
|
|||
########################################################################
|
||||
## Configuration File for Installing R2023b MathWorks Products
|
||||
########################################################################
|
||||
##
|
||||
## Use this file to configure an installation of MathWorks products
|
||||
## and support packages from the command line using the
|
||||
## MATLAB Package Manager (mpm). For example, you can set the
|
||||
## products and support packages you want to install and the
|
||||
## folder where you want to install them.
|
||||
##
|
||||
## To configure your MATLAB installation:
|
||||
##
|
||||
## 1. Set configuration parameters by uncommenting lines that
|
||||
## start with a single '#' and updating the values. The
|
||||
## comments above each parameter describe the valid values.
|
||||
##
|
||||
## 2. Run mpm from the command line, using the --inputfile option
|
||||
## to specify the full path to this configuration file.
|
||||
##
|
||||
## mpm install --inputfile <full_path_to_this_file>
|
||||
##
|
||||
## You can download template input files for all supported releases from
|
||||
## https://github.com/mathworks-ref-arch/matlab-dockerfile/blob/main/MPM.md
|
||||
##
|
||||
########################################################################
|
||||
|
||||
|
||||
########################################################################
|
||||
## RELEASE
|
||||
########################################################################
|
||||
##
|
||||
## By default, mpm installs the latest versions of R2023b
|
||||
## MathWorks products and support packages.
|
||||
##
|
||||
## To install a specific update for R2023b, set the desired update
|
||||
## number (for example, 1, 2, 3, and so on) and uncomment the
|
||||
## following line. An updateLevel of 0 installs the general release.
|
||||
|
||||
# Needs to be fixed value to allow for consistent hash output
|
||||
# Check https://www.mathworks.com/content/dam/mathworks/mathworks-dot-com/support/updates/r2023b/r2023b-updates-release-notes.pdf
|
||||
# or relevant page to matlab version for existing update numbers
|
||||
updateLevel=6
|
||||
|
||||
|
||||
########################################################################
|
||||
## SPECIFY DESTINATION FOLDER
|
||||
########################################################################
|
||||
##
|
||||
## Specify the full path to the folder where you want to install MATLAB.
|
||||
## If you are adding products or support packages to an existing MATLAB
|
||||
## installation, specify the full path to the folder where MATLAB is installed.
|
||||
##
|
||||
## Example:
|
||||
## (Windows) destinationFolder=C:\Program Files\MATLAB\RXXXX
|
||||
## (Linux) destinationFolder=/usr/local/RXXXX
|
||||
## (macOS) destinationFolder=/Applications
|
||||
##
|
||||
## Set the desired value for destinationFolder and
|
||||
## uncomment the following line.
|
||||
|
||||
# This will be substited with the output path of the nix derivation:
|
||||
# https://nixos.org/manual/nixpkgs/stable/#fun-substitute
|
||||
destinationFolder=@MATLAB_INSTALL_DIR@
|
||||
|
||||
########################################################################
|
||||
## INSTALL PRODUCTS
|
||||
########################################################################
|
||||
##
|
||||
## Uncomment the lines for the products you want to install.
|
||||
|
||||
product.5G_Toolbox
|
||||
product.AUTOSAR_Blockset
|
||||
product.Aerospace_Blockset
|
||||
product.Aerospace_Toolbox
|
||||
product.Antenna_Toolbox
|
||||
product.Audio_Toolbox
|
||||
product.Automated_Driving_Toolbox
|
||||
product.Bioinformatics_Toolbox
|
||||
product.Bluetooth_Toolbox
|
||||
#product.C2000_Microcontroller_Blockset
|
||||
#product.Communications_Toolbox
|
||||
#product.Computer_Vision_Toolbox
|
||||
#product.Control_System_Toolbox
|
||||
product.Curve_Fitting_Toolbox
|
||||
product.DDS_Blockset
|
||||
product.DSP_HDL_Toolbox
|
||||
product.DSP_System_Toolbox
|
||||
#product.Data_Acquisition_Toolbox
|
||||
product.Database_Toolbox
|
||||
product.Datafeed_Toolbox
|
||||
product.Deep_Learning_HDL_Toolbox
|
||||
product.Deep_Learning_Toolbox
|
||||
product.Econometrics_Toolbox
|
||||
#product.Embedded_Coder
|
||||
product.Filter_Design_HDL_Coder
|
||||
#product.Financial_Instruments_Toolbox
|
||||
product.Financial_Toolbox
|
||||
product.Fixed-Point_Designer
|
||||
product.Fuzzy_Logic_Toolbox
|
||||
product.GPU_Coder
|
||||
#product.Global_Optimization_Toolbox
|
||||
#product.HDL_Coder
|
||||
#product.HDL_Verifier
|
||||
product.Image_Acquisition_Toolbox
|
||||
#product.Image_Processing_Toolbox
|
||||
#product.Industrial_Communication_Toolbox
|
||||
#product.Instrument_Control_Toolbox
|
||||
#product.LTE_Toolbox
|
||||
#product.Lidar_Toolbox
|
||||
product.MATLAB
|
||||
product.MATLAB_Coder
|
||||
product.MATLAB_Compiler
|
||||
product.MATLAB_Compiler_SDK
|
||||
#product.MATLAB_Parallel_Server
|
||||
#product.MATLAB_Production_Server
|
||||
product.MATLAB_Report_Generator
|
||||
product.MATLAB_Test
|
||||
product.MATLAB_Web_App_Server
|
||||
product.Mapping_Toolbox
|
||||
product.Medical_Imaging_Toolbox
|
||||
#product.Mixed-Signal_Blockset
|
||||
#product.Model_Predictive_Control_Toolbox
|
||||
#product.Model-Based_Calibration_Toolbox
|
||||
#product.Motor_Control_Blockset
|
||||
product.Navigation_Toolbox
|
||||
product.Optimization_Toolbox
|
||||
product.Parallel_Computing_Toolbox
|
||||
product.Partial_Differential_Equation_Toolbox
|
||||
product.Phased_Array_System_Toolbox
|
||||
#product.Polyspace_Bug_Finder
|
||||
#product.Polyspace_Bug_Finder_Server
|
||||
#product.Polyspace_Code_Prover
|
||||
#product.Polyspace_Code_Prover_Server
|
||||
#product.Polyspace_Test
|
||||
#product.Powertrain_Blockset
|
||||
#product.Predictive_Maintenance_Toolbox
|
||||
#product.RF_Blockset
|
||||
#product.RF_PCB_Toolbox
|
||||
#product.RF_Toolbox
|
||||
#product.ROS_Toolbox
|
||||
#product.Radar_Toolbox
|
||||
#product.Reinforcement_Learning_Toolbox
|
||||
#product.Requirements_Toolbox
|
||||
product.Risk_Management_Toolbox
|
||||
product.Robotics_System_Toolbox
|
||||
#product.Robust_Control_Toolbox
|
||||
#product.Satellite_Communications_Toolbox
|
||||
product.Sensor_Fusion_and_Tracking_Toolbox
|
||||
product.SerDes_Toolbox
|
||||
product.Signal_Integrity_Toolbox
|
||||
#product.Signal_Processing_Toolbox
|
||||
product.SimBiology
|
||||
product.SimEvents
|
||||
product.Simscape
|
||||
product.Simscape_Battery
|
||||
#product.Simscape_Driveline
|
||||
#product.Simscape_Electrical
|
||||
#product.Simscape_Fluids
|
||||
#product.Simscape_Multibody
|
||||
product.Simulink
|
||||
#product.Simulink_3D_Animation
|
||||
#product.Simulink_Check
|
||||
#product.Simulink_Coder
|
||||
product.Simulink_Compiler
|
||||
product.Simulink_Control_Design
|
||||
product.Simulink_Coverage
|
||||
product.Simulink_Design_Optimization
|
||||
product.Simulink_Design_Verifier
|
||||
#product.Simulink_Desktop_Real-Time
|
||||
product.Simulink_Fault_Analyzer
|
||||
product.Simulink_PLC_Coder
|
||||
#product.Simulink_Real-Time
|
||||
product.Simulink_Report_Generator
|
||||
product.Simulink_Test
|
||||
product.SoC_Blockset
|
||||
#product.Spreadsheet_Link
|
||||
product.Stateflow
|
||||
product.Statistics_and_Machine_Learning_Toolbox
|
||||
product.Symbolic_Math_Toolbox
|
||||
product.System_Composer
|
||||
#product.System_Identification_Toolbox
|
||||
product.Text_Analytics_Toolbox
|
||||
#product.UAV_Toolbox
|
||||
#product.Vehicle_Dynamics_Blockset
|
||||
#product.Vehicle_Network_Toolbox
|
||||
product.Vision_HDL_Toolbox
|
||||
#product.WLAN_Toolbox
|
||||
#product.Wavelet_Toolbox
|
||||
#product.Wireless_HDL_Toolbox
|
||||
#product.Wireless_Testbench
|
||||
|
||||
|
||||
########################################################################
|
||||
## INSTALL SUPPORT PACKAGES
|
||||
########################################################################
|
||||
##
|
||||
## Uncomment the lines for the support packages you want to install.
|
||||
|
||||
#product._Automated_Driving_Toolbox_Model_for_Lidar_Lane_Detection
|
||||
#product.ASIC_Testbench_for_HDL_Verifier
|
||||
#product.Aerospace_Blockset_Interface_for_Unreal_Engine_Projects
|
||||
#product.Automated_Driving_Toolbox_Importer_for_Zenrin_Japan_Map_API_3.0_(Itsumo_NAVI_API_3.0)_Service
|
||||
#product.Automated_Driving_Toolbox_Interface_for_Unreal_Engine_4_Projects
|
||||
#product.CI/CD_Automation_for_Simulink_Check
|
||||
#product.Communications_Toolbox_Support_Package_for_Analog_Devices_ADALM-Pluto_Radio
|
||||
#product.Communications_Toolbox_Support_Package_for_RTL-SDR_Radio
|
||||
#product.Communications_Toolbox_Support_Package_for_USRP_Embedded_Series_Radio
|
||||
#product.Communications_Toolbox_Support_Package_for_USRP_Radio
|
||||
#product.Communications_Toolbox_Support_Package_for_Xilinx_Zynq-Based_Radio
|
||||
#product.Communications_Toolbox_Wireless_Network_Simulation_Library
|
||||
#product.Component_Deployment_Guideline_for_Embedded_Coder
|
||||
#product.Computer_Vision_Toolbox_Automated_Visual_Inspection_Library
|
||||
#product.Computer_Vision_Toolbox_Interface_for_OpenCV_in_MATLAB
|
||||
#product.Computer_Vision_Toolbox_Interface_for_OpenCV_in_Simulink
|
||||
#product.Computer_Vision_Toolbox_Model_for_Inflated-3D_Video_Classification
|
||||
#product.Computer_Vision_Toolbox_Model_for_Mask_R-CNN_Instance_Segmentation
|
||||
#product.Computer_Vision_Toolbox_Model_for_Object_Keypoint_Detection
|
||||
#product.Computer_Vision_Toolbox_Model_for_R(2+1)D_Video_Classification
|
||||
#product.Computer_Vision_Toolbox_Model_for_SOLOv2_Instance_Segmentation
|
||||
#product.Computer_Vision_Toolbox_Model_for_SlowFast_Video_Classification
|
||||
#product.Computer_Vision_Toolbox_Model_for_Text_Detection
|
||||
#product.Computer_Vision_Toolbox_Model_for_Vision_Transformer_Network
|
||||
#product.Computer_Vision_Toolbox_Model_for_YOLO_v2_Object_Detection
|
||||
#product.Computer_Vision_Toolbox_Model_for_YOLO_v3_Object_Detection
|
||||
#product.Computer_Vision_Toolbox_Model_for_YOLO_v4_Object_Detection
|
||||
#product.Computer_Vision_Toolbox_OCR_Language_Data
|
||||
#product.Data_Acquisition_Toolbox_Support_Package_for_Analog_Devices_ADALM1000_Hardware
|
||||
#product.Data_Acquisition_Toolbox_Support_Package_for_Digilent_Analog_Discovery_Hardware
|
||||
#product.Data_Acquisition_Toolbox_Support_Package_for_Measurement_Computing_Hardware
|
||||
#product.Data_Acquisition_Toolbox_Support_Package_for_National_Instruments_NI-DAQmx_Devices
|
||||
#product.Data_Acquisition_Toolbox_Support_Package_for_Windows_Sound_Cards
|
||||
#product.Database_Toolbox_Interface_for_Neo4j_Bolt_Protocol
|
||||
#product.Deep_Learning_HDL_Toolbox_Support_Package_for_Intel_FPGA_and_SoC_Devices
|
||||
#product.Deep_Learning_HDL_Toolbox_Support_Package_for_Xilinx_FPGA_and_SoC_Devices
|
||||
#product.Deep_Learning_Toolbox_Converter_for_ONNX_Model_Format
|
||||
#product.Deep_Learning_Toolbox_Converter_for_PyTorch_Model_Format
|
||||
#product.Deep_Learning_Toolbox_Converter_for_TensorFlow_models
|
||||
#product.Deep_Learning_Toolbox_Importer_for_Caffe_Models
|
||||
#product.Deep_Learning_Toolbox_Interface_for_TensorFlow_Lite
|
||||
#product.Deep_Learning_Toolbox_Model_Quantization_Library
|
||||
#product.Deep_Learning_Toolbox_Model_for_AlexNet_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_DarkNet-19_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_DarkNet-53_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_DenseNet-201_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_EfficientNet-b0_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_GoogLeNet_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_Inception-ResNet-v2_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_Inception-v3_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_MobileNet-v2_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_NASNet-Large_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_NASNet-Mobile_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_Places365-GoogLeNet_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_ResNet-101_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_ResNet-18_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_ResNet-50_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_ShuffleNet_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_VGG-16_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_VGG-19_Network
|
||||
#product.Deep_Learning_Toolbox_Model_for_Xception_Network
|
||||
#product.Deep_Learning_Toolbox_Verification_Library
|
||||
#product.Embedded_Coder_Interface_to_QEMU_Emulator
|
||||
#product.Embedded_Coder_Support_Package_For_Linux_Applications
|
||||
#product.Embedded_Coder_Support_Package_for_ARM_Cortex-A_Processors
|
||||
#product.Embedded_Coder_Support_Package_for_ARM_Cortex-M_Processors
|
||||
#product.Embedded_Coder_Support_Package_for_ARM_Cortex-R_Processors
|
||||
#product.Embedded_Coder_Support_Package_for_BeagleBone_Black_Hardware
|
||||
#product.Embedded_Coder_Support_Package_for_Infineon_AURIX_TC4x_Microcontrollers
|
||||
#product.Embedded_Coder_Support_Package_for_Intel_SoC_Devices
|
||||
#product.Embedded_Coder_Support_Package_for_STMicroelectronics_STM32_Processors
|
||||
#product.Embedded_Coder_Support_Package_for_Xilinx_Zynq_Platform
|
||||
#product.Ephemeris_Data_for_Aerospace_Toolbox
|
||||
#product.Extended_Tire_Features_for_Vehicle_Dynamics_Blockset
|
||||
#product.FMU_Builder_For_Simulink
|
||||
#product.GPU_Coder_Interface_for_Deep_Learning_Libraries
|
||||
#product.GUIDE_to_App_Designer_Migration_Tool_for_MATLAB
|
||||
#product.Geoid_Data_for_Aerospace_Toolbox
|
||||
#product.HDL_Coder_Support_Package_for_Intel_FPGA_Boards
|
||||
#product.HDL_Coder_Support_Package_for_Intel_SoC_Devices
|
||||
#product.HDL_Coder_Support_Package_for_Microchip_FPGA_and_SoC_Devices
|
||||
#product.HDL_Coder_Support_Package_for_Xilinx_FPGA_Boards
|
||||
#product.HDL_Coder_Support_Package_for_Xilinx_RFSoC_Devices
|
||||
#product.HDL_Coder_Support_Package_for_Xilinx_Zynq_Platform
|
||||
#product.HDL_Verifier_Support_Package_for_Intel_FPGA_Boards
|
||||
#product.HDL_Verifier_Support_Package_for_Microsemi_FPGA_Boards
|
||||
#product.HDL_Verifier_Support_Package_for_Xilinx_FPGA_Boards
|
||||
#product.Image_Acquisition_Toolbox_Support_Package_for_DCAM_Hardware
|
||||
#product.Image_Acquisition_Toolbox_Support_Package_for_Kinect_for_Windows_Sensor
|
||||
#product.Image_Acquisition_Toolbox_Support_Package_for_Matrox_Hardware
|
||||
#product.Image_Acquisition_Toolbox_Support_Package_for_National_Instruments_Frame_Grabbers
|
||||
#product.Image_Acquisition_Toolbox_Support_Package_for_OS_Generic_Video_Interface
|
||||
#product.Image_Acquisition_Toolbox_Support_Package_for_Point_Grey_Hardware
|
||||
#product.Image_Acquisition_Toolbox_Support_Package_for_Teledyne_DALSA_Sapera_Hardware
|
||||
#product.Image_Processing_Toolbox_Hyperspectral_Imaging_Library
|
||||
#product.Image_Processing_Toolbox_Image_Data
|
||||
#product.Instrument_Control_Toolbox_Support_Package_for_IVI_and_VXIplug&play_Drivers
|
||||
#product.Instrument_Control_Toolbox_Support_Package_for_Keysight_(Agilent)_IO_Libraries_and_VISA_Interface
|
||||
#product.Instrument_Control_Toolbox_Support_Package_for_National_Instruments_NI-845x_I2C/SPI_Interface
|
||||
#product.Instrument_Control_Toolbox_Support_Package_for_National_Instruments_NI-DCPower_Power_Supplies
|
||||
#product.Instrument_Control_Toolbox_Support_Package_for_National_Instruments_NI-DMM_Digital_Multimeters
|
||||
#product.Instrument_Control_Toolbox_Support_Package_for_National_Instruments_NI-FGEN_Function_Generators
|
||||
#product.Instrument_Control_Toolbox_Support_Package_for_National_Instruments_NI-SCOPE_Oscilloscopes
|
||||
#product.Instrument_Control_Toolbox_Support_Package_for_National_Instruments_NI-SWITCH_Hardware
|
||||
#product.Instrument_Control_Toolbox_Support_Package_for_National_Instruments_VISA_and_ICP_Interfaces
|
||||
#product.Instrument_Control_Toolbox_Support_Package_for_Rohde_Schwarz_VISA_Interface
|
||||
#product.Instrument_Control_Toolbox_Support_Package_for_Total_Phase_Aardvark_I2C/SPI_Interface
|
||||
#product.Integro-Differential_Modeling_Framework_for_MATLAB
|
||||
#product.Lidar_Toolbox_Support_Package_for_Ouster_Lidar_Sensors
|
||||
#product.Lidar_Toolbox_Support_Package_for_Velodyne_LiDAR_Sensors
|
||||
#product.MATLAB_Basemap_Data_-_bluegreen
|
||||
#product.MATLAB_Basemap_Data_-_colorterrain
|
||||
#product.MATLAB_Basemap_Data_-_grayland
|
||||
#product.MATLAB_Basemap_Data_-_grayterrain
|
||||
#product.MATLAB_Basemap_Data_-_landcover
|
||||
#product.MATLAB_Client_for_MATLAB_Production_Server
|
||||
#product.MATLAB_Coder_Interface_for_Deep_Learning_Libraries
|
||||
#product.MATLAB_Coder_Interface_for_Visual_Studio_Code_Debugging
|
||||
#product.MATLAB_Coder_Support_Package_for_NVIDIA_Jetson_and_NVIDIA_DRIVE_Platforms
|
||||
#product.MATLAB_Support_Package_for_Android_Sensors
|
||||
#product.MATLAB_Support_Package_for_Apple_iOS_Sensors
|
||||
#product.MATLAB_Support_Package_for_Arduino_Hardware
|
||||
#product.MATLAB_Support_Package_for_BeagleBone_Black_Hardware
|
||||
#product.MATLAB_Support_Package_for_LEGO_MINDSTORMS_EV3_Hardware
|
||||
#product.MATLAB_Support_Package_for_Quantum_Computing
|
||||
#product.MATLAB_Support_Package_for_Raspberry_Pi_Hardware
|
||||
#product.MATLAB_Support_Package_for_USB_Webcams
|
||||
#product.MATLAB_Support_for_MinGW-w64_C/C++_Compiler
|
||||
#product.Medical_Imaging_Toolbox_Interface_for_Cellpose_
|
||||
#product.Mixed-Signal_Blockset_Models
|
||||
#product.Modelscape_for_MATLAB
|
||||
#product.Powertrain_Blockset_Drive_Cycle_Data
|
||||
#product.RF_Blockset_Models_for_Analog_Devices_RF_Transceivers
|
||||
#product.ROS_Toolbox_Support_Package_for_TurtleBot-Based_Robots
|
||||
#product.Radar_Toolbox_Support_Package_for_Texas_Instruments_mmWave_Radar_Sensors
|
||||
#product.Robotics_System_Toolbox_Robot_Library_Data
|
||||
#product.Robotics_System_Toolbox_Support_Package_for_KINOVA_Gen3_Manipulators
|
||||
#product.Robotics_System_Toolbox_Support_Package_for_Universal_Robots_UR_Series_Manipulators
|
||||
#product.Scenario_Builder_for_Automated_Driving_Toolbox
|
||||
#product.Scenario_Variant_Generator_for_Automated_Driving_Toolbox
|
||||
#product.Signal_Processing_Toolbox_Support_Package_for_Linux_IIO_Devices
|
||||
#product.Simulink_Coder_Support_Package_for_ARM_Cortex-based_VEX_Microcontroller
|
||||
#product.Simulink_Coder_Support_Package_for_BeagleBone_Blue_Hardware
|
||||
#product.Simulink_Coder_Support_Package_for_NXP_FRDM-K64F_Board
|
||||
#product.Simulink_Coder_Support_Package_for_NXP_FRDM-KL25Z_Board
|
||||
#product.Simulink_Coder_Support_Package_for_STMicroelectronics_Nucleo_Boards
|
||||
#product.Simulink_Coder_Support_Package_for_VEX_EDR_V5_Robot_Brain
|
||||
#product.Simulink_Interface_for_Siemens_MF-Tyre/MF-Swift_Tire_Model
|
||||
#product.Simulink_Real-Time_XIL_Support_Package
|
||||
#product.Simulink_Support_Package_for_Android_Devices
|
||||
#product.Simulink_Support_Package_for_Arduino_Hardware
|
||||
#product.Simulink_Support_Package_for_LEGO_MINDSTORMS_EV3_Hardware
|
||||
#product.Simulink_Support_Package_for_Parrot_Minidrones
|
||||
#product.Simulink_Support_Package_for_Raspberry_Pi_Hardware
|
||||
#product.Simulink_Test_Support_Package_for_ASAM_XIL
|
||||
#product.SoC_Blockset_Support_Package_for_AMD-Xilinx_Versal_ACAP_Devices
|
||||
#product.SoC_Blockset_Support_Package_for_Embedded_Linux_Devices
|
||||
#product.SoC_Blockset_Support_Package_for_Infineon_AURIX_Microcontrollers
|
||||
#product.SoC_Blockset_Support_Package_for_Intel_Devices
|
||||
#product.SoC_Blockset_Support_Package_for_Xilinx_Devices
|
||||
#product.Source_control_integration_with_Microsoft(R)_Source-Code_Control_Interface_(MSSCCI)_for_MATLAB_and_Simulink
|
||||
#product.Streaming_Data_Framework_for_MATLAB_Production_Server
|
||||
#product.Text_Analytics_Toolbox_Model_for_BERT-Base_Multilingual_Cased_Network
|
||||
#product.Text_Analytics_Toolbox_Model_for_BERT-Base_Network
|
||||
#product.Text_Analytics_Toolbox_Model_for_BERT-Large_Network
|
||||
#product.Text_Analytics_Toolbox_Model_for_BERT-Mini_Network
|
||||
#product.Text_Analytics_Toolbox_Model_for_BERT-Small_Network
|
||||
#product.Text_Analytics_Toolbox_Model_for_BERT-Tiny_Network
|
||||
#product.Text_Analytics_Toolbox_Model_for_fastText_English_16_Billion_Token_Word_Embedding
|
||||
#product.Text_Analytics_Toolbox_Model_from_UDify_Data
|
||||
#product.UAV_Toolbox_Interface_for_Unreal_Engine_Projects
|
||||
#product.UAV_Toolbox_Support_Package_for_PX4_Autopilots
|
||||
#product.Variant_Manager_for_Simulink
|
||||
#product.Vehicle_Dynamics_Blockset_Interface_for_Unreal_Engine_4_Projects
|
||||
#product.Vehicle_Dynamics_Blockset_Maneuver_Data
|
||||
#product.Vision_HDL_Toolbox_Support_Package_for_Xilinx_Zynq-Based_Hardware
|
||||
#product.WINNER_II_Channel_Model_for_Communications_Toolbox
|
||||
#product.Wireless_Testbench_Support_Package_for_NI_USRP_Radios
|
||||
|
||||
|
||||
########################################################################
|
||||
## CHECKSUM
|
||||
########################################################################
|
||||
##
|
||||
## NOTE: DO NOT edit this field. MathWorks uses this field to
|
||||
## check the integrity of the input file. Changing the value
|
||||
## of the checksum field invalidates this input file.
|
||||
|
||||
?checksum=UjIwMjNi
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"data": "ENC[AES256_GCM,data:JrTc6ZePtcii5ygWjkFatJUJNiEUa6eFzsWVJWdPwDche9O68oD+rDpHe5CTjWzsXQB9,iv:+LkH3EAi8aUzABBLQ/FJwFPtEvgUb+MN2LFvehN+2/M=,tag:C2M9ChEdpKehzMaM5Gd3bA==,type:str]",
|
||||
"sops": {
|
||||
"kms": null,
|
||||
"gcp_kms": null,
|
||||
"azure_kv": null,
|
||||
"hc_vault": null,
|
||||
"age": [
|
||||
{
|
||||
"recipient": "age1cvmffz227lhsvy4ufh0gnkfsvs5f27hv5l90m0lf4558uphteefsj2t74j",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvb0FWYmUwN2QvdWdWbTNS\nSll1VWVRQVRJb1FVT2YyeWVEV1A0dVljS2pZCndRTnNUYk82dytNMjdIQWZ1b3pu\nRjBQZXIwVVlza01lMlNtVlhtRm9JTTQKLS0tIHZZdEtRL1I0djhOL2dkSkhleW83\nWHM4cUZKY1M0QnpCRTMzMDRIWHJTbFEKI85Z0wTXVkUE3KtTjfyzSYCDT2EQmZWf\nSq8FZuUlzGfVfh+R+gUZ1g8V76gNwzHI55MM+CEBh6EuVSyotY0AEA==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2024-02-07T16:50:53Z",
|
||||
"mac": "ENC[AES256_GCM,data:wzjlt/EoF1KJ3oDw/bqkPAxTO+hGS4eWtHERD6HT0FkseHVoXVo+n53SDAkj7z8vnsx3au8QhP8FL8JWoyDVf0SrHHk7W8cqV203eUnVapJsV9IanOvCfvcENrQ2eLV8R97t3nUfyfcABUK45fL6ku6jZ3sKsS2U1eS7/atENmU=,iv:fUWBcvAcckCnEKfYQeSebYQS+0jzzvlXtBen2VL+Lqc=,tag:Fap2p5nRewKbVXa0eEUUbg==,type:str]",
|
||||
"pgp": null,
|
||||
"unencrypted_suffix": "_unencrypted",
|
||||
"version": "3.8.1"
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -10,5 +10,7 @@
|
|||
./servers/overleaf.nix
|
||||
# Basic remote editting in jupyer notebooks
|
||||
./servers/jupyterhub.nix
|
||||
# MATLAB License Server
|
||||
./servers/matlab-license-server.nix
|
||||
];
|
||||
}
|
||||
|
|
|
@ -43,9 +43,8 @@ in {
|
|||
port = 5432;
|
||||
ensureUsers = [{
|
||||
name = "gitea";
|
||||
ensurePermissions = {
|
||||
"DATABASE \"gitea\"" = "ALL PRIVILEGES";
|
||||
};
|
||||
# Ensures gitea user owns a db called gitea
|
||||
ensureDBOwnership = true;
|
||||
ensureClauses = {
|
||||
createdb = true;
|
||||
};
|
||||
|
|
|
@ -1,9 +1,4 @@
|
|||
{ config, lib, pkgs, nixpkgs-unstable, ... }: {
|
||||
imports = [
|
||||
"${nixpkgs-unstable}/nixos/modules/services/web-apps/guacamole-server.nix"
|
||||
"${nixpkgs-unstable}/nixos/modules/services/web-apps/guacamole-client.nix"
|
||||
];
|
||||
|
||||
services.guacamole-server.enable = true;
|
||||
services.guacamole-server.package = pkgs.unstable.guacamole-server;
|
||||
services.guacamole-server.port = 4822;
|
||||
|
@ -58,9 +53,8 @@
|
|||
];
|
||||
ensureUsers = [{
|
||||
name = "guacamole";
|
||||
ensurePermissions = {
|
||||
"DATABASE \"guacamole\"" = "ALL PRIVILEGES";
|
||||
};
|
||||
# Ensures guacamole user owns a db called guacamole
|
||||
ensureDBOwnership = true;
|
||||
ensureClauses = {
|
||||
createdb = true;
|
||||
};
|
||||
|
|
|
@ -1,55 +1,255 @@
|
|||
{ config, pkgs, lib, ... }: {
|
||||
{ config, pkgs, lib, ... }: let
|
||||
aiomcache = pkgs.python3.pkgs.buildPythonPackage rec {
|
||||
pname = "aio-memcache";
|
||||
version = "0.8.1";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "aio-libs";
|
||||
repo = "aiomcache";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-oRMN1seEjFSsq4wjkIXHM7Osq8y/5WFExGCEr6eM9vc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pkgs.python3.pkgs; [
|
||||
python-memcached
|
||||
];
|
||||
|
||||
# Networking required
|
||||
doCheck = false;
|
||||
};
|
||||
aiohttp-session = pkgs.python3.pkgs.buildPythonPackage rec {
|
||||
pname = "aiohttp-session";
|
||||
version = "2.12.0";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "aio-libs";
|
||||
repo = "aiohttp-session";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-7MNah4OIQnoxLoZkLOdeu5uCwSyPMhc6Wsht8dFconc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pkgs.python3.pkgs; [
|
||||
aiohttp
|
||||
aiomcache
|
||||
cryptography
|
||||
multidict
|
||||
pynacl
|
||||
redis
|
||||
yarl
|
||||
];
|
||||
|
||||
# Checks require networking
|
||||
doCheck = false;
|
||||
};
|
||||
matlab-proxy = pkgs.python3.pkgs.buildPythonPackage rec {
|
||||
pname = "matlab_proxy";
|
||||
version = "0.12.1";
|
||||
format = "wheel";
|
||||
src = pkgs.python3.pkgs.fetchPypi {
|
||||
inherit pname version format;
|
||||
dist = "py3";
|
||||
python = "py3";
|
||||
hash = "sha256-TDZUJEXJYF5Vh2BG5o13H3wdh/WdVdoESXqL89ckc6I=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pkgs.python3.pkgs; [
|
||||
aiohttp
|
||||
aiohttp-session
|
||||
psutil
|
||||
|
||||
# For Xvfb, for plots and graphics
|
||||
pkgs.xorg.xorgserver
|
||||
];
|
||||
};
|
||||
simpervisor = pkgs.python3.pkgs.buildPythonPackage rec {
|
||||
pname = "simpervisor";
|
||||
version = "1.0.0";
|
||||
format = "pyproject";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "jupyterhub";
|
||||
repo = "simpervisor";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-73vkiQtOT0M9Vww1nYZ76JR2koWt/NPIav46k1fHOzc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with pkgs.python3.pkgs; [
|
||||
hatchling
|
||||
];
|
||||
};
|
||||
jupyter-server-proxy = pkgs.python3.pkgs.buildPythonPackage rec {
|
||||
pname = "jupyter_server_proxy";
|
||||
version = "4.1.0";
|
||||
format = "pyproject";
|
||||
|
||||
src = pkgs.python3.pkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-LPrDtCMv5xROjmApa0+GFwi08TspJgos8ol2v45hf3A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with pkgs.python3.pkgs; [
|
||||
hatchling
|
||||
hatch-jupyter-builder
|
||||
hatch-nodejs-version
|
||||
jupyterlab
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with pkgs.python3.pkgs; [
|
||||
notebook
|
||||
simpervisor
|
||||
aiohttp
|
||||
];
|
||||
|
||||
# tests require network
|
||||
doCheck = false;
|
||||
};
|
||||
|
||||
jupyter-matlab-proxy = pkgs.python3.pkgs.buildPythonPackage rec {
|
||||
pname = "jupyter_matlab_proxy";
|
||||
version = "0.11.0";
|
||||
format = "wheel";
|
||||
|
||||
src = pkgs.python3.pkgs.fetchPypi {
|
||||
inherit pname version format;
|
||||
python = "py3";
|
||||
dist = "py3";
|
||||
hash = "sha256-KzQgs1zXGPjONCnLvCNQkQBkkkn9J29YFi8BHbh+D1I=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pkgs.python3.pkgs; [
|
||||
jupyter-server-proxy
|
||||
simpervisor
|
||||
matlab-proxy
|
||||
psutil
|
||||
requests
|
||||
ipykernel
|
||||
];
|
||||
};
|
||||
in {
|
||||
services.jupyterhub = {
|
||||
enable = true;
|
||||
port = 6501;
|
||||
# https://github.com/jupyterhub/systemdspawner
|
||||
# Configuration options defined ^
|
||||
# mem_limit must be higher to allow for MATLAB
|
||||
extraConfig = ''
|
||||
c.SystemdSpawner.mem_limit = '2G'
|
||||
c.SystemdSpawner.cpu_limit = 1.0
|
||||
'';
|
||||
kernels = {
|
||||
python = {
|
||||
python3 = let
|
||||
env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
|
||||
# Necessary for use as a kernel
|
||||
ipykernel
|
||||
|
||||
# Common Python Libraries
|
||||
numpy
|
||||
scipy
|
||||
scikit-learn
|
||||
pandas
|
||||
matplotlib
|
||||
seaborn
|
||||
|
||||
# Neural Data Processing Libraries
|
||||
mne-python
|
||||
nibabel
|
||||
neo
|
||||
|
||||
# Neurosimulators
|
||||
neuronpy
|
||||
nest
|
||||
brian2
|
||||
]));
|
||||
in {
|
||||
displayName = "Python 3 for Computational Neuroscience";
|
||||
argv = [
|
||||
"${env.interpreter}"
|
||||
"-m"
|
||||
"ipykernel_launcher"
|
||||
"-f"
|
||||
"{connection_file}"
|
||||
c.SystemdSpawner.mem_limit = '8G'
|
||||
c.SystemdSpawner.cpu_limit = 2.0
|
||||
c.SystemdSpawner.isolate_devices = False
|
||||
c.SystemdSpawner.extra_paths = [
|
||||
'${pkgs.buildEnv {
|
||||
name = "jupyterhub-system-spawner-env";
|
||||
paths = with pkgs; [
|
||||
gcc
|
||||
# For MATLAB Kernel
|
||||
matlab
|
||||
# For matlab-proxy-app
|
||||
(pkgs.python3.withPackages (p: with p; [
|
||||
# For pkg_resources
|
||||
setuptools
|
||||
matlab-proxy
|
||||
jupyter-matlab-proxy
|
||||
]))
|
||||
];
|
||||
language = "python";
|
||||
logo32 = "${env}/${env.sitePackages}/ipykernel/resources/logo-32x32.png";
|
||||
logo64 = "${env}/${env.sitePackages}/ipykernel/resources/logo-64x64.png";
|
||||
};
|
||||
}}/bin']
|
||||
c.SystemdSpawner.environment["MATLAB_INSTALL_DIR"] = "${config.environment.sessionVariables.MATLAB_INSTALL_DIR}"
|
||||
c.SystemdSpawner.environment["LM_LICENSE_FILE"] = "${config.environment.sessionVariables.LM_LICENSE_FILE}"
|
||||
c.SystemdSpawner.environment["MLM_LICENSE_FILE"] = "${config.environment.sessionVariables.MLM_LICENSE_FILE}"
|
||||
# c.SystemdSpawner.environment["MWI_JUPYTER_LOG_LEVEL"] = "DEBUG"
|
||||
'';
|
||||
# Extra Paths used to add gcc et al for packages like Brian2
|
||||
# https://github.com/jupyterhub/systemdspawner#extra_paths
|
||||
|
||||
jupyterlabEnv = pkgs.python3.withPackages (p: with p; [
|
||||
jupyterhub
|
||||
jupyterlab
|
||||
# Extensions:
|
||||
jupyter-collaboration
|
||||
jupyter-server-mathjax
|
||||
jupyter-console
|
||||
jupyterlab-lsp
|
||||
python-lsp-server
|
||||
# MATLAB Proxy Needs to be here in order to modify and add the "launch matlab" etc.
|
||||
jupyter-matlab-proxy # <-- This in effect adds the kernel
|
||||
]);
|
||||
|
||||
kernels = {
|
||||
python3 = let
|
||||
env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
|
||||
# Necessary for use as a kernel
|
||||
ipykernel
|
||||
ipdb
|
||||
# Interactive widgets
|
||||
ipywidgets
|
||||
# Show images/media
|
||||
mediapy
|
||||
# Progress bars etc. for in Jupyter/IPython
|
||||
halo
|
||||
|
||||
# Common Python Libraries
|
||||
numpy
|
||||
scipy
|
||||
scikit-learn
|
||||
pandas
|
||||
# Tables displayed in Jupyter: like Pandas Dataframes
|
||||
ipytablewidgets
|
||||
matplotlib
|
||||
ipympl
|
||||
matplotlib-inline
|
||||
seaborn
|
||||
|
||||
# Neural Data Processing Libraries
|
||||
# Temporarily broken?: https://github.com/NixOS/nixpkgs/issues/259812
|
||||
# mne-python
|
||||
nibabel
|
||||
# View niftis!
|
||||
ipyniivue
|
||||
neo
|
||||
|
||||
# Neurosimulators
|
||||
neuronpy
|
||||
# nest with MPI is incompatible with Jupyter:
|
||||
# https://www.nest-simulator.org/pynest-api/_modules/nest.html
|
||||
# see pynestkernel comments about their workaround
|
||||
(nest.override {
|
||||
withMpi = false;
|
||||
})
|
||||
brian2
|
||||
|
||||
# Machine learning toolkits:
|
||||
tensorflow
|
||||
tensorboard
|
||||
keras
|
||||
edward
|
||||
transformers
|
||||
tflearn
|
||||
torch
|
||||
torchvision
|
||||
torchsde
|
||||
torchmetrics
|
||||
torchio
|
||||
torchdiffeq
|
||||
botorch
|
||||
lion-pytorch
|
||||
])).override (args: { ignoreCollisions = true; });
|
||||
# Odd collision between tensorboard of torch & tensorflow
|
||||
# need to resolve later
|
||||
in {
|
||||
displayName = "Python 3 for Computational Neuroscience";
|
||||
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.caddy.virtualHosts = {
|
||||
"jupyter.ws.kcnhub.com" = {
|
||||
extraConfig = ''
|
||||
|
@ -57,5 +257,4 @@
|
|||
'';
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
{ config, lib, pkgs, ... }: let
|
||||
# Make sure that the license manager version matches the currently
|
||||
# issued license to KCNHUB in the License Centre.
|
||||
license-manager = pkgs.stdenv.mkDerivation rec {
|
||||
pname = "matlab-license-server";
|
||||
version = "R2023b";
|
||||
src = pkgs.fetchurl {
|
||||
url = "https://ssd.mathworks.com/supportfiles/downloads/${version}/license_manager/${version}/daemons/glnxa64/mathworks_network_license_manager_glnxa64.zip";
|
||||
hash = "sha256-Btl3ETzTtAV+cjqwXf4AE4QJCtssN1s6dmmcpR1EQxY=";
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
pkgs.autoPatchelfHook
|
||||
];
|
||||
unpackPhase = ''
|
||||
${pkgs.unzip}/bin/unzip $src
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
cp -r * $out/
|
||||
addAutoPatchelfSearchPath $out/*
|
||||
'';
|
||||
};
|
||||
matlab-server-user = "matlab-server";
|
||||
homedir = "/var/lib/${matlab-server-user}";
|
||||
|
||||
# Make sure this is up to date with the latest license file
|
||||
# by editting secrets/matlab-network.lic
|
||||
NETWORK_LICENSE = config.sops.secrets.matlab-network-license.path;
|
||||
|
||||
PORT = 27000;
|
||||
in {
|
||||
users.users.${matlab-server-user} = {
|
||||
isSystemUser = true;
|
||||
home = homedir;
|
||||
useDefaultShell = true;
|
||||
group = matlab-server-user;
|
||||
};
|
||||
users.groups.${matlab-server-user} = {};
|
||||
|
||||
sops.secrets.matlab-license = {
|
||||
sopsFile = ../secrets/matlab.lic;
|
||||
format = "binary";
|
||||
|
||||
owner = matlab-server-user;
|
||||
restartUnits = [ "matlab-license-server.service" ];
|
||||
};
|
||||
sops.secrets.matlab-network-license = {
|
||||
sopsFile = ../secrets/matlab-network.lic;
|
||||
format = "binary";
|
||||
|
||||
owner = matlab-server-user;
|
||||
mode = "0444";
|
||||
restartUnits = [ "matlab-license-server.service" ];
|
||||
};
|
||||
|
||||
systemd.services.matlab-license-server = {
|
||||
# Start on boot
|
||||
enable = true;
|
||||
# When multi user login is loaded, matlab-server user can be used
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
# The license server has to be after networking is available
|
||||
after = [ "network.target" ];
|
||||
description = "MATLAB License Server";
|
||||
serviceConfig = {
|
||||
Type = "forking";
|
||||
User = matlab-server-user;
|
||||
Group = matlab-server-user;
|
||||
RuntimeDirectory = matlab-server-user;
|
||||
WorkingDirectory = homedir;
|
||||
ExecStartPre = pkgs.writeScript "matlab-license-serverify" ''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
head -n1 ${NETWORK_LICENSE} > ${homedir}/license.lic
|
||||
echo 'DAEMON MLM DAEMON MLM ${license-manager}/etc/glnxa64/MLM' >> ${homedir}/license.lic
|
||||
cat ${config.sops.secrets.matlab-license.path} >> ${homedir}/license.lic
|
||||
'';
|
||||
ExecStart = "${license-manager}/etc/glnxa64/lmgrd -c ${homedir}/license.lic";
|
||||
};
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
LM_LICENSE_FILE = NETWORK_LICENSE;
|
||||
MLM_LICENSE_FILE = NETWORK_LICENSE;
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
PORT
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
PORT
|
||||
];
|
||||
}
|
|
@ -5,7 +5,6 @@
|
|||
./users/carol.nix
|
||||
./users/alan.nix
|
||||
./users/spandan.nix
|
||||
./users/matlab-server.nix
|
||||
./users/frances.nix
|
||||
./users/srikar.nix
|
||||
./users/zhenyangsun.nix
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
{ pkgs, ... }: {
|
||||
users.users.matlab-server = {
|
||||
isNormalUser = true;
|
||||
homeSize = "15g";
|
||||
homeProjectId = 105;
|
||||
packages = with pkgs; [
|
||||
|
||||
];
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue