diff --git a/setup_apps_miniforge.sh b/setup_apps_miniforge.sh new file mode 100644 index 0000000..8c21f8b --- /dev/null +++ b/setup_apps_miniforge.sh @@ -0,0 +1,139 @@ +#!/bin/bash + +#variant to use conda insted of pip, tested + +#Src: https://medium.com/swlh/how-to-install-jupyterhub-using-conda-without-runing-as-root-and-make-it-a-service-59b843fead12 +# https://jupyterhub.readthedocs.io/en/1.2.1/installation-guide-hard.html + +set -e + +if [ "$EUID" -ne 0 ] + then echo "Please run as root" + exit +fi + +CERTIFICATE_HOSTNAME=$1 + +if [ -z "$CERTIFICATE_HOSTNAME" ] +then + echo "Please specify hostname for the certificate generation" + exit +fi + + +#apt-get install -y --no-install-recommends libnvinfer7=7.1.3-1+cuda11.0 \ +# libnvinfer-dev=7.1.3-1+cuda11.0 \ +# libnvinfer-plugin7=7.1.3-1+cuda11.0 + +#add public ssh keys +#if [ ! -s "~/.ssh/authorized_keys" ]; then +# cat id_*.pub >> ~/.ssh/authorized_keys +#fi + +#echo "" +#echo "Install supermicro system tools..." +#apt-get update +#apt-get install -y ipmitool && modprobe ipmi_devintf + +apt-get update +apt-get install -y language-pack-de python3.10-venv + +echo "Install a recent notejs for jupyterhub from nodesource..." +#src: https://github.com/nodesource/distributions/blob/master/README.md +curl -fsSL https://deb.nodesource.com/setup_current.x | bash - +apt-get install -y nodejs + +echo "create virtualenv and install JupyterHub..." +python3 -m venv /opt/jupyterhub/ +/opt/jupyterhub/bin/python3 -m pip install wheel +/opt/jupyterhub/bin/python3 -m pip install jupyterhub jupyterlab +/opt/jupyterhub/bin/python3 -m pip install ipywidgets jupyterlab-git jupyter-server-proxy +npm install -g configurable-http-proxy + +echo "setup jupyterhub config..." +mkdir -p /opt/jupyterhub/etc/jupyterhub/ +cp jupyterhub_config_https.py /opt/jupyterhub/etc/jupyterhub/jupyterhub_config.py + +echo "setup systemd service..." +mkdir -p /opt/jupyterhub/etc/systemd +cp jupyterhub_conda.service /opt/jupyterhub/etc/systemd/jupyterhub.service +ln -s /opt/jupyterhub/etc/systemd/jupyterhub.service /etc/systemd/system/jupyterhub.service +systemctl daemon-reload +systemctl enable jupyterhub.service + +echo "Generate self signed certificate..." +mkdir -p /opt/jupyterhub/etc/jupyterhub/ssl-certs +openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \ + -keyout /opt/jupyterhub/etc/jupyterhub/ssl-certs/jhubssl.key \ + -out /opt/jupyterhub/etc/jupyterhub/ssl-certs/jhubssl.crt \ + -subj "/C=DE/ST=NRW/L=na/O=na Systems/OU=Self_Signed/CN=$CERTIFICATE_HOSTNAME" \ + -addext "subjectAltName=DNS:$CERTIFICATE_HOSTNAME" + +#echo "jupyterhub.service status: (opens vim)" +#systemctl status jupyterhub.service + +echo "Install conda..." +CONDA_DIR=/opt/conda +wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" +bash Miniforge3-$(uname)-$(uname -m).sh -b -p $CONDA_DIR + +#symlinking the conda shell setup script to the profile ‘drop in’ folder so that it gets run on login: +ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh + +mkdir -p /opt/conda/envs/ + +/opt/conda/bin/conda create --prefix /opt/conda/envs/default_python python=3.7 ipykernel --yes +/opt/conda/envs/default_python/bin/python -m ipykernel install --prefix /usr/local/ --name 'default_python' --display-name "Python (default)" + + +#install ofen used python packages for default environment +/opt/conda/bin/conda install h5py tqdm pandas pillow matplotlib ipympl matplotlib pandas numpy --yes -n default_python +/opt/conda/bin/conda install cantera --channel cantera --yes -n default_python + +#remove ipykernel for base enviroment: +#jupyter kernelspec remove python3 + + +#users have to setup there kernel like this: +#create conder enviroment: +#conda create ipykernel --name mypersonal_enviroment +#python -m ipykernel install --user --name mypersonal_enviroment --display-name "Python My Env" + + +#conda install --yes jupyterhub jupyterlab notebook configurable-http-proxy jupyterlab-git jupyter-server-proxy +#jupyter labextension install jupyter-matplotlib + +#echo "Install Tensorflow..." +#conda install --yes tensorflow-gpu -c conda-forge + +#echo "Install common Python libs..." +#conda install --yes h5py tqdm pandas ipywidgets pillow matplotlib ipympl opencv-python + +#Other tools: + +#System monitoring +#echo "Install netdata..." +#wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh +#echo "nvidia_smi: yes" >> /usr/lib/netdata/conf.d/python.d.conf +#service netdata restart +#on http://0.0.0.0:19999 + +#echo "Install gpuview..." +#/opt/jupyterhub/bin/python3 -m pip install gpuview +#/opt/jupyterhub/bin/python3 -m gpuview service --host 127.0.0.1 --port 9988 <-- fails + +#echo "Disable services that delays startup by wating for network connectivity..." +#systemctl disable cloud-config +#systemctl disable cloud-final.service +#systemctl disable iscsid.service +#systemctl disable open-iscsi.service + +echo "Start JupyterHub..." +systemctl start jupyterhub.service +#sudo systemctl restart jupyterhub + +echo "" +echo "Setup successfully finished" + + +