diff --git a/data/GESIS-Notebooks.yaml b/data/GESIS-Notebooks.yaml
index 37b6d74..706bdc6 100644
--- a/data/GESIS-Notebooks.yaml
+++ b/data/GESIS-Notebooks.yaml
@@ -5,17 +5,21 @@ support: notebooks@gesis.org
health_api_url: http://notebooks.gesis.org/binder/health
documentation_url: https://the-turing-way.netlify.app/communication/binder/zero-to-binder.html
target_group_open_for: Open, with a focus on Computational Social Science
+restricted: false
login_process: Open
-deployment_url: https://github.com/gesiscss/orc2
features:
version: JupyterHub 3.0.0-beta.1, BinderHub
- kernels: ["configurable by the user"]
+ programming_languages: ["configurable by the user"]
+ environments: ["configurable by the user"]
extensions: ["configurable by the user"]
proxy_apps: []
install: true
shared_folder: false
persistent_storage: false
misc: ["Part of the BinderHub Federation"]
+technicals:
+ deployment_url: https://github.com/gesiscss/orc2
+ misc: []
resources:
default_server_user: 1
max_server_user: 250
diff --git a/data/RWTH-NFDI-Jupyter-Service.yaml b/data/RWTH-NFDI-Jupyter-Service.yaml
index 7b75986..09f1fa4 100644
--- a/data/RWTH-NFDI-Jupyter-Service.yaml
+++ b/data/RWTH-NFDI-Jupyter-Service.yaml
@@ -1,14 +1,18 @@
title: RWTH HPC JupyterHub
provider: ITC RWTH Aachen University
service_url: https://jupyterhub.hpc.itc.rwth-aachen.de:9651/
+service_url_requirement: Network address of RWTH, FH Aachen, Bochum, Bonn, Cern, Darmstadt, Duisburg/Essen, Erlangen, Hagen, Desy, Juelich, LRZ Muenchen, Muenster, Siegen, Wien, Wuppertal or Saarland University
support: servicedesk@itc.rwth-aachen.de
health_api_url: https://jupyterhub.hpc.itc.rwth-aachen.de:9651/hub/api/health
documentation_url: https://help.itc.rwth-aachen.de/service/rhr4fjjutttf/article/689934fec5a34c909c54606f6bc2e827/
-target_group_open_for: Researchers, RWTH Students/Employees/Guests, Juelich Members, Users sponsored by other Users, Users upon project application
+target_group_open_for: Researchers, RWTH Students/Employees/Guests, Juelich Members, Users sponsored by other Users, Users upon project application
+restricted: true
login_process: Login with RWTH HPC Account through most NHR or NRW VPNs
features:
version: JupyterHub 3.0+, JupyterLab 3.4.7+
- kernels: ["Python 3.9", "Octave", "R", "C++ 11/14/17", "Matlab 2022b", "Matlab 2020b", "Python: Keras", "Python: Tensorflow", "Python: Tensorboard", "Python: Gurobi", "Python: Pytorch" ]
+ programming_languages: ["Python 3.9", "Octave", "R", "C++ 11/14/17", "Matlab 2020b", "Matlab 2022b"]
+ environments: ["Python: Keras + Tensorflow", "Python: Tensorboard + Keras + Tensorflow", "Python: Pytorch", "Pytorch: Tensorboard", "Python: Gurobi", "Matlab: Gurobi", "Custom"]
+ environments_info: "https://help.itc.rwth-aachen.de/service/rhr4fjjutttf/article/50a810bf34da41c3a37bd315505af92a/"
extensions: ["ipytree",
"jupyterlab-drawio",
"jupyterlab-plotly",
@@ -23,7 +27,11 @@ features:
install: false
shared_folder: true
persistent_storage: true
- misc: ["Available computing time (core-hours) vary based on user affiliation or project. Project application is necesary.", "Runs on HPC Hardware under Slurm.", "Users installs planned, by request only at the moment."]
+ misc: ["Available computing time (core-hours) vary based on user affiliation or project. Project application is necessary.",
+ "Users installs planned, by request only at the moment."]
+technicals:
+ deployment: "Runs on HPC Hardware under Slurm."
+ misc: []
resources:
default_server_user: 1
max_server_user: 5
diff --git a/data/gwdg.yaml b/data/gwdg.yaml
index 6f7ebfb..8d1693e 100644
--- a/data/gwdg.yaml
+++ b/data/gwdg.yaml
@@ -5,16 +5,21 @@ support: support@gwdg.de
health_api_url:
documentation_url: https://docs.gwdg.de/doku.php?id=en:services:application_services:jupyter:start
target_group_open_for: Users having a full GWDG account (which can include people working in partner projects)
+restricted: true
login_process: Login via Shibboleth (AcademicID - academiccloud.de)
features:
version: JupyterLab 3.5 (via JupyterHub)
- kernels: ["Python", "Julia", "R", "Bash"]
+ programming_languages: ["Python", "Julia", "R", "Bash"]
+ environments: []
extensions: ["git","plotly","matplotlib"]
proxy_apps: []
install: true
shared_folder: false
persistent_storage: true
- misc: ["Based on Jupyter Datascience Notebook image, extended with user-requested data science tools"]
+ misc: []
+technicals:
+ deployment: "Based on Jupyter Datascience Notebook image, extended with user-requested data science tools"
+ misc: []
resources:
default_server_user: 1
max_server_user: 1
diff --git a/data/gwdg_hpc.yaml b/data/gwdg_hpc.yaml
index 0bfc553..b9dbf72 100644
--- a/data/gwdg_hpc.yaml
+++ b/data/gwdg_hpc.yaml
@@ -5,21 +5,25 @@ support: hpc-support@gwdg.de
health_api_url: https://jupyter-hpc.gwdg.de/hub/api
documentation_url: https://docs.gwdg.de/doku.php?id=en:services:application_services:jupyter:hpc
target_group_open_for: Users with a full GWDG account (including people working in partner projects).
+restricted: true
login_process: Login via LDAP
features:
version: JupyterHub 1.0.0, Notebook Server 6.0.3
- kernels: ["Python", "R", "Bash"]
+ programming_languages: ["Python", "R", "Bash"]
+ environments: []
+ environments_info: ""
extensions: ["ipyparallel"]
proxy_apps: []
- install:
+ install: false
shared_folder: true
persistent_storage: true
misc:
[
"Own directory can be made writable for others.",
- "Project directories are possible (POSIX group members can get acces).",
- "Scratch file system (very fast), and Stornext (slower, for home file system)",
+ "Project directories are possible (POSIX group members can get access)."
]
+technicals:
+ misc: ["Scratch file system (very fast), and Stornext (slower, for home file system)"]
resources:
default_server_user: 1
max_server_user: 1
diff --git a/data/hooks.py b/data/hooks.py
index c559e3d..3fd0d2a 100644
--- a/data/hooks.py
+++ b/data/hooks.py
@@ -23,11 +23,25 @@ def generate_cards(*args, **kwargs):
logo = file_name.split("/")[-1][:-4]+"png"
else:
logo = "default-logo.png"
-
- outfile.write("- title: %s\n"%d["title"])
+ url_requires = d.get("service_url_requirement", False)
+ if url_requires:
+ service_url = "#"
+ button_attr = ".md-button--disabled"
+ else:
+ service_url = d["service_url"]
+ button_attr = ".md-button .md-button--primary"
+ lock = ":material-lock:" if d.get("restricted", True) else ":material-lock-open-variant:"
+
+ outfile.write("- title: %s\n" % d["title"])
outfile.write(""" content: |
- Provider: *%s*\n
+ Provider: *%s*
+
Target Group: %s
\n
[:octicons-arrow-right-24: Service Details](details/%s.md)\n
- [:material-lock: Login](%s){.md-button .md-button--primary}
\n"""%(d["provider"],service_name, d["service_url"]))
+ [%s Login](%s){%s}\n""" % (d["provider"],
+ d["target_group_open_for"],
+ service_name,
+ lock,
+ service_url,
+ button_attr))
outfile.write(" image: assets/%s\n" % logo)
outfile.write(" icon: \":octicons-arrow-right-24:\"\n")
diff --git a/data/jupyter-jsc.fz-juelich.de.yaml b/data/jupyter-jsc.fz-juelich.de.yaml
index 0acf75a..b95efa6 100644
--- a/data/jupyter-jsc.fz-juelich.de.yaml
+++ b/data/jupyter-jsc.fz-juelich.de.yaml
@@ -5,16 +5,23 @@ support: ds-support@fz-juelich.de
health_api_url:
documentation_url: https://docs.jupyter-jsc.fz-juelich.de
target_group_open_for: HPC users of JSC. Helmholtz users in general
+restricted: true
login_process: Login via JSC account or Helmholtz AAI
features:
- version: JupyterHub 2.3.1 JupyterLab 2.6,3.2,3.3,3.4
- kernels: ["Bash", "Cling", "JavaScript", "Julia", "Octave", "R", "Ruby", "PyDeepLearning", "PyQuantum", "PyVisualization", "Custom"]
+ version: JupyterHub 2.3.1; JupyterLab 2.6,3.2,3.3,3.4
+ programming_languages: ["Bash", "Cling", "JavaScript", "Julia", "Octave", "R", "Ruby"]
+ environments: ["PyDeepLearning", "PyQuantum", "PyVisualization", "Custom"]
+ environments_info: "https://docs.jupyter-jsc.fz-juelich.de/github/FZJ-JSC/jupyter-jsc-notebooks/blob/documentation/02-Configuration/01-Kernels&Proxies.ipynb"
extensions: ["Bokeh", "JupyterLab Preview", "JupyterLab Manager", "JupyterLab Sidecar", "JupyterLab Git", "JupyterLab server proxy", "JupyterLab toc", "JupyterLab lsp", "JupyterLab quickopen", "JupyterLab pyviz", "JupyterLab Code Formatter", "BQPlot", "Dask Labextension", "IPyVolume", "ITKWidgets", "Leaflet", "Matplotlib", "ThreeJS", "Vue", "Vuetify", "JuypterLab Control", "JupyterLab Dash", "JupyterLab Datawidgets", "JupyterLab GitLab", "JupyterLab Lmod", "JupyterLab plotly", "JupyterLab System Monitor", "JupyterLAb Theme Toggle", "JupyterLab topbar extension", "JupyterLab iframe", "nbdime", "plotlywidget", "pvlink", "Jupyter Slurm Provisioner", "NVDashboard"]
proxy_apps: ["XPra"]
install: true
shared_folder: false
persistent_storage: true
- misc: ["Start on multiple (external) systems possible (including hpc). Resources depend highly on system", "2FA authentication available", "WebDAV connection possible", "SSL encryption between JupyterLab and JupyterHub"]
+ misc: ["Start on multiple (external) systems possible (including HPC). Resources depend highly on system",
+ "2FA authentication available",
+ "WebDAV connection possible"]
+technicals:
+ misc: ["SSL encryption between JupyterLab and JupyterHub"]
resources:
default_server_user: 1
max_server_user: 100
diff --git a/data/kit-horeka.yaml b/data/kit-horeka.yaml
index 5e11a97..ddcec39 100644
--- a/data/kit-horeka.yaml
+++ b/data/kit-horeka.yaml
@@ -5,16 +5,23 @@ support: https://support.nhr.kit.edu
health_api_url:
documentation_url: https://www.nhr.kit.edu/userdocs/jupyter
target_group_open_for: Researchers, Users upon project application, Helmholtz users
+restricted: true
login_process: Login through Home Organizations, Helmholtz AAI
features:
version: Jupyterhub 3.1.1, Jupyterlab 3.4.8
- kernels: [Python, Julia, R]
+ programming_languages: [Python, Julia, R]
+ environments: []
extensions: ["jupyterlab-lmod","dask-labextension", "jupyterlab-git", "jupyterlab-latex", "jupytext"]
proxy_apps: ["jupyter-codeserver-proxy", "jupyter-desktop-server"]
install: true
shared_folder: true
persistent_storage: true
- misc: ["Available resources and apps may vary based on Cluster", "BEEGFS Filesystem can be mounted", "LSDF can be mounted", "User can install own python kernels", "Container integration via pyxis"]
+ misc: ["Available resources and apps may vary based on Cluster",
+ "User can install own python kernels"]
+technicals:
+ misc: ["BEEGFS Filesystem can be mounted",
+ "LSDF can be mounted",
+ "Container integration via pyxis"]
resources:
default_server_user: 1
max_server_user: 1
diff --git a/data/mpcdf.yaml b/data/mpcdf.yaml
index b1d53a0..02ec427 100644
--- a/data/mpcdf.yaml
+++ b/data/mpcdf.yaml
@@ -5,10 +5,12 @@ support: support@mpcdf.mpg.de
health_api_url:
documentation_url:
target_group_open_for: Researchers of the Max Planck Society
+restricted: true
login_process:
features:
version: JupyterHub 1.x (lab view)
- kernels: ["Python", "Julia", "R"]
+ programming_languages: ["Python", "Julia", "R"]
+ environments: []
extensions: []
proxy_apps: []
install: true
diff --git a/data/nfdi4ing.yaml b/data/nfdi4ing.yaml
index 309cdac..3958f67 100644
--- a/data/nfdi4ing.yaml
+++ b/data/nfdi4ing.yaml
@@ -5,28 +5,45 @@ support: fokus@izus.uni-stuttgart.de
health_api_url:
documentation_url:
target_group_open_for: Researchers of NFDI4Ing
+restricted: true
login_process: Login via Shibboleth (DFN-AAI & eduGAIN federation)
features:
version: JupyterHub 1.x (lab view)
- kernels: ["Python", "Matlab", "Julia", "R"]
+ programming_languages: ["Python", "Matlab", "Julia", "R"]
+ environments: []
+ environments_info: ""
extensions: []
proxy_apps: ["Matlab IDE"]
install: true
shared_folder: false
persistent_storage: true
misc: ["WebDAV connection possible"]
+technicals:
+ platform: Linux Virtual Machine
+ deployment: Docker compose with pre-defined Jupyter Server images
+ login_attributes: ["pairwise-id", "displayName", "mail"]
+ hardware_location: "Stuttgart, Germany"
+ misc: []
resources:
default_server_user: 1
max_server_user: 1
default_cpu: 1
max_cpu: 4
+ total_cpu: 40
+ burst_total_cpu: 40
default_cpu_time: 1 h
max_cpu_time: 72 h
default_memory: 100 MB
max_memory: 4 GB
+ total_memory: 32 GB
+ burst_total_memory: 32 GB
default_gpu: 0
max_gpu: 0
+ total_gpu: 0
+ burst_total_gpu: 0
default_disk: 10 GB
max_disk: 10 GB
default_persistent_disk: 2 GB
max_persistent_disk: 2 GB
+usage:
+ average_daily_sessions: 1
diff --git a/data/pc2-upb.yaml b/data/pc2-upb.yaml
index b621108..c26605c 100644
--- a/data/pc2-upb.yaml
+++ b/data/pc2-upb.yaml
@@ -1,20 +1,30 @@
title: PC² JupyterHub
provider: Paderborn Center for Parallel Computing, University of Paderborn
service_url: https://jh.pc2.uni-paderborn.de
+service_url_requirement: VPN or on-site at the University of Paderborn
support: pc2-support@uni-paderborn.de
health_api_url: https://jh.pc2.uni-paderborn.de.de/hub/api/health
documentation_url: https://pc2.uni-paderborn.de/go/jh
target_group_open_for: All users of a computing time project at PC²
+restricted: true
login_process: Login via LDAP
features:
version: JupyterHub 3.1.0, JupyterLab 3.6
- kernels: ["Python", "Julia", "R"]
+ programming_languages: ["Python", "Julia", "R"]
+ environments: []
extensions: ["jupyterlab-nvdashboard", "jupyterlab-lmod", "jupyterlab-desktop", "jupyterlab-plotly", "jupyterlab-pygments"]
proxy_apps: ["Remote Desktop (noVNC)", "Full offered software on clusters with graphical interface (https://pc2.uni-paderborn.de/go/software)"]
install: yes
shared_folder: true
persistent_storage: true
- misc: ["Singularity integration (default + custom container)", "Pre-Set Environments", "Course functionality", "Remote Desktop with Slurm tools and module", "Remote Slurm kernel to start only kernels remote on cluster", "Direct connection of the cluster parallel filesystem", "User home directory for e.g. user-specific packages"]
+ misc: ["Pre-Set Environments",
+ "Course functionality",
+ "User home directory for e.g. user-specific packages"]
+technicals:
+ misc: ["Singularity integration (default + custom container)",
+ "Remote Desktop with Slurm tools and module",
+ "Remote Slurm kernel to start only kernels remote on cluster",
+ "Direct connection of the cluster parallel filesystem"]
resources:
default_server_user: 1
max_server_user: 10
@@ -27,6 +37,6 @@ resources:
default_gpu:
max_gpu: 128
default_disk:
- max_disk: 6 PB temporary scratch data (requested on application)
+ max_disk: 6 PB
default_persistent_disk:
- max_persistent_disk: 185 TB permanent data (requested on application)
+ max_persistent_disk: 185 TB
diff --git a/data/template.yaml b/data/template.yaml
index 3b05115..8e498f7 100644
--- a/data/template.yaml
+++ b/data/template.yaml
@@ -1,32 +1,53 @@
title:
provider:
-service_url:
+service_url:
+service_url_requirement:
support:
health_api_url:
documentation_url:
-target_group_open_for:
-login_process:
+target_group_open_for:
+restricted:
+login_process:
features:
version:
- kernels: []
+ programming_languages: []
+ environments: []
+ environments_info:
extensions: []
proxy_apps: []
install:
shared_folder:
persistent_storage:
misc: []
+technicals:
+ platform:
+ deployment:
+ deployment_url:
+ login_attributes: []
+ hardware_location:
+ misc: []
resources:
default_server_user:
max_server_user:
default_cpu:
- max_cpu:
+ max_cpu:
+ total_cpu:
+ burst_total_cpu:
default_cpu_time:
max_cpu_time:
default_memory:
max_memory:
+ total_memory:
+ burst_total_memory:
default_gpu:
max_gpu:
+ total_gpu:
+ burst_total_gpu:
default_disk:
max_disk:
default_persistent_disk:
max_persistent_disk:
+ total_disk:
+ burst_total_disk:
+usage:
+ average_daily_sessions:
\ No newline at end of file
diff --git a/data/uni-leipzig.yaml b/data/uni-leipzig.yaml
index def412d..6fc07bf 100644
--- a/data/uni-leipzig.yaml
+++ b/data/uni-leipzig.yaml
@@ -1,14 +1,18 @@
title: Webbasiertes Data Science und Machine Learning mit Jupyter
provider: University of Leipzig
service_url: https://lab.sc.uni-leipzig.de
+service_url_requirement: VPN or on-site at Leipzig University
support: sc-request@uni-leipzig.de
health_api_url:
documentation_url: https://www.sc.uni-leipzig.de, https://www.urz.uni-leipzig.de/unsere-services/servicedetail/service/webbasiertes-data-science-und-machine-learning-mit-jupyter
target_group_open_for: Students and employees of University of Leipzig
+restricted: true
login_process: Login via SC account
features:
- version: JupyterHub 3.1.0, JupyterLab 3.5.3
- kernels: ["Python 3.11", "Python 3.9 OpenCV 4.7", "Python 3.9 PyTorch 1.10", "Python 3.9 TensorFlow 2.6.2", "SageMath 10.0", "R 4.2.2", "Julia 1.8.5"]
+ version: JupyterHub 3.1.0; JupyterLab 3.5.3
+ programming_languages: ["Python 3.11", "SageMath 10.0", "R 4.2.2", "Julia 1.8.5"]
+ environments: ["Python 3.9 OpenCV 4.7", "Python 3.9 PyTorch 1.10", "Python 3.9 TensorFlow 2.6.2"]
+ environments_info: ""
extensions: ["server-proxy", "jupyterlab-manager", "webio-jupyterlab-provider", "jupyterlab_pygments", "jupyterlab_lmod"]
proxy_apps: []
install: true
diff --git a/data/uni-muenster.yaml b/data/uni-muenster.yaml
index 50ab807..dc41edb 100644
--- a/data/uni-muenster.yaml
+++ b/data/uni-muenster.yaml
@@ -5,10 +5,13 @@ support:
health_api_url: https://jupyterhub.uni-muenster.de/hub/api/health
documentation_url:
target_group_open_for: Students and employees of University of Münster, members of PUNCH4NFDI (soon)
+restricted: true
login_process: Login via Shibboleth (DFN-AAI & eduGAIN federation)
features:
version: JupyterHub 3.0, JupyterLab 3.6
- kernels: ["Python", "Octave", "Julia", "R", "SageMath", "gnuplot", "Mathematica", "C++", "Rust", "Go", "Scheme"]
+ programming_languages: ["Python", "Octave", "Julia", "R", "SageMath", "gnuplot", "Mathematica", "C++", "Rust", "Go", "Scheme"]
+ environments: []
+ environments_info: ""
extensions: ["jupyterlab_pygments",
"ipyparallel-labextension",
"jupyter-matplotlib",
@@ -50,7 +53,12 @@ features:
install: true
shared_folder: false
persistent_storage: true
- misc: ["Available resources and apps may vary based on user affiliation", "Sciebo cloud storage integration (beta)", "GUI apps via noVNC in browser window", "Hosted on Kubernetes cluster"]
+ misc: ["Available resources and apps may vary based on user affiliation",
+ "Sciebo cloud storage integration (beta)",
+ "GUI apps via noVNC in browser window"]
+technicals:
+ deployment: Kubernetes
+ misc: []
resources:
default_server_user: 1
max_server_user: 1
diff --git a/data/usegalaxy.eu.yaml b/data/usegalaxy.eu.yaml
index 5054828..28ca76d 100644
--- a/data/usegalaxy.eu.yaml
+++ b/data/usegalaxy.eu.yaml
@@ -5,13 +5,16 @@ support: contact@usegalaxy.eu
health_api_url: https://status.galaxyproject.org
documentation_url: https://training.galaxyproject.org
target_group_open_for: Open for everyone
+restricted: false
login_process: Login via OpenIDC (LS-AAI, DataPLANT)
features:
version: Galaxy 23.0 (Jupyterlab v3+)
- kernels: ["Python", "Julia", "R", "Ansible", "bash"]
+ programming_languages: ["Python", "Julia", "R", "Ansible", "Bash"]
+ environments: ["Jupyter ML", "MGnify", "Jupyter for Material Science", "Pangeo Jupyter", "Climate Jupyter"]
+ environments_info: ""
extensions: [bqplot, jupyter-matplotlib, jupyterlab-jupytext, jupyterlab-manager, fasta-extension, geojson-extension, katex-extension, jupyterlab_hdf, jupyterlab-execute-time, jupyterlab-kernelspy, jupyterlab-nvdashboard, jupyterlab-system-monitor, jupyterlab-topbar-extension, jupyterlab_pygments, nbdime-jupyterlab, collapsible_headings, code-snippet-extension, code-viewer-extension, metadata-extension, pipeline-editor-extension, python-editor-extension, r-editor-extension, scala-editor-extension, script-debugger-extension, theme-extension, jupyterlab-lsp, resource-usage, jupyter-server-proxy, git, jupyterlab-preview]
proxy_apps: [RStudio, AskOMICS,
- BAM-iobio, VCF-iobio, BlobToolKit, CellXGene, Ethercalc, Phinch, MetaShARK, MetaShrimp, ODV, Wallace,
+ BAM-iobio, VCF-iobio, BlobToolKit, CellXGene, Ethercalc, Phinch, MetaShARK, MetaShrimp, ODV, Wallace,
iSEE, Wilson, Panoply netCDF Viewer, HiGlass, ParaView, QGIS, QuPath, Radiant, Scoop3-Agro, VRM Editor,
Pavian, OpenRefine, Neo4J, GeoExplorer, NEAL]
install: true
@@ -20,7 +23,7 @@ features:
misc: ["Cloud storage can be accessed via Galaxy",
"Notebooks can be combined with classical HPC workflows",
"Part of the EOSC project EuroScienceGateway",
- "Community can contribute VREs",
+ "[Community can contribute VREs](https://usegalaxy-eu.github.io/operations/interactive_tools.html)",
"Available resources and apps can vary based on user affiliation"]
resources:
default_server_user: 1
diff --git a/docs/css/extra.css b/docs/css/extra.css
index 4e19be4..7cbced1 100644
--- a/docs/css/extra.css
+++ b/docs/css/extra.css
@@ -181,3 +181,16 @@
display: flex;
align-items: center;
}
+
+.md-typeset .md-button--disabled {
+ background-color: #b8b8b8;
+ border-color: #b8b8b8;
+ color: var(--md-primary-bg-color);
+ pointer-events: none;
+ cursor: default;
+ border: .1rem solid;
+ border-radius: .1rem;
+ display: inline-block;
+ font-weight: 700;
+ padding: .625em 2em;
+}
\ No newline at end of file
diff --git a/docs/template.md b/docs/template.md
index 29d3fff..4079bb1 100644
--- a/docs/template.md
+++ b/docs/template.md
@@ -1,41 +1,67 @@
-
# Join the list
-To become part of the list of JupyterHub instances of Germany you have to provide a yaml-file with the information listed in the table below. You can check out existing yaml-files and a template you can base on in the `data` folder. You can also add a logo of your service is the `assets` folder. When everything is ready, please add a pull request to the main branch of this repository. If you need further assistance or have other questions, do not hesitate to open an issue.
-
-
-| YAML Key | Required? | Description | Example |
-|----------|-----------|-------------------------|-------------------------|
-| `title` | yes | The service name. If too general, should include a provider or project context. | NFDI4Ing JupyterHub |
-| `provider` | yes | All service providers. | University of Stuttgart, Technical University of Darmstadt |
-| `service_url` | yes | Link address to the entrypoint for users. | https://jupyter.nfdi4ing.de |
-| `support` | yes | Where to get help | fokus@izus.uni-stuttgart.de |
-| `health api_url` | no | Healthcheck URL | green / orange / red
-| `documentation_url` | no | Link address to service specific documentation | |
-| `target_group_open_for` | yes | Roles, domain, NFDI consortia, University, etc. | Researchers of NFDI4Ing |
-| `login_process` | yes | How is the login performed; Login-URL | Login via DFN-AAI & eduGAIN |
-| `features` | yes | What the services offers | |
-| -- `version` | yes | 1.x or 2.x version of Juyterhub?; classic notebook or lab view? | 1.x JupyterHub (classic view)
-| -- `kernels` | no | List of provided kernels. | Python, Julia, R |
-| -- `extensions` | no | List of provided server-side / client-side JupyterHub extensions | |
-| -- `proxy_apps` | no | List of server-proxy featured applications. | MATLAB IDE |
-| -- `install` | yes | Whether it is allowed to install further packages, kernels, extensions | yes |
-| -- `shared_folde`r | yes | Whether there is a folder to share documents with others | false |
-| -- `persistent_storage` | yes | Whether documents can survice the docker session. | true |
-| -- `misc` | no | List of other features you find relevant, e.g. dynamic image creation | |
-| `resources` | yes | Information about available resources on the instance | |
-| -- `default_server_user` | no | Default number of Jupyter servers per user | 1 |
-| -- `max_server_user` | yes | Maximum number of Jupyter servers per user | 5 |
-| -- `default_cpu` | no | Default number of CPU for a Jupyter server | 1 |
-| -- `max_cpu` | yes | Maximum number of CPU for a Jupyter server | 4 |
-| -- `default_cpu_time` | no | Default CPU time for a Jupyter server | 1 h |
-| -- `max_cpu_time` | yes | Maximum CPU time for a Jupyter server | 72 h |
-| -- `default_memory` | no | Default amount of memory for a Jupyter server | 100 MB |
-| -- `max_memory` | yes | Maximum amount of memory for a Jupyter server | 4 GB |
-| -- `default_gpu` | no | Default number of GPU for a Jupyter server | 0 |
-| -- `max_gpu` | yes | Maximum number of GPU for a Jupyter server | 0 |
-| -- `default_disk` | no | Default amount of disk space (maybe temporary) for a Jupyter server | 10 GB |
-| -- `max_disk` | yes | Maximum amount of disk space (maybe temporary) for a Jupyter server | 10 GB |
-| -- `default_persistent_disk` | no | Default amount of disk space that services a Jupyter session | 2 GB |
-| -- `max_persistent_disk` | yes | Maximum amount of disk space that services a Jupyter session | 2 GB |
+To become part of the list of Jupyter services for German researchers you have to
+provide a yaml-file with the information listed in the table below.
+You can check out existing yaml-files in the `data` folder.
+In the same folder there is also a template you can base on.
+To add a logo of your service provide one in the `assets` folder.
+When everything is ready, please add a pull request to the main branch of this
+repository.
+If you need further assistance or have other questions,
+do not hesitate to open an issue.
+| YAML Key | Required? | Description | Example |
+|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------|
+| `title` | yes | The service name. If too general, should include a provider or project context. | NFDI4Ing JupyterHub |
+| `provider` | yes | All service providers. | University of Stuttgart, Technical University of Darmstadt |
+| `service_url` | yes | Link address to the entrypoint for users. | https://jupyter.nfdi4ing.de |
+| `service_url_requirement` | no | If the `service_url` is not public available, the requirements to reach it can be stated here. | VPN of University of Stuttgart |
+| `support` | yes | Email address where to get help. | fokus@izus.uni-stuttgart.de |
+| `health_api_url` | no | Healthcheck URL | green / orange / red |
+| `documentation_url` | no | Link address to service specific documentation targeting users. | |
+| `target_group_open_for` | yes | Roles, domain, NFDI consortia, University, etc. | Researchers of NFDI4Ing |
+| `restricted` | yes | Can any researcher in Germany use the service? | false |
+| `login_process` | yes | How is the login performed; Login-URL | Login via DFN-AAI & eduGAIN |
+| `features` | yes | What the service offers. | |
+| -- `version` | yes | 1.x or 2.x version of JupyterHub?; classic notebook or lab view? | 1.x JupyterHub (classic view) |
+| -- `programming_languages` | no | List of supported programming languages (kernels). | Python, Julia, R |
+| -- `environments` | no | List of supported environments (e.g., Python virtualenv) configured as kernels. | Python-Keras, Python-PyTorch |
+| -- `environments_info` | no | Link to information about the supported environments, if not included under `documentation_url`. | |
+| -- `extensions` | no | List of provided server-side / client-side JupyterHub extensions. | |
+| -- `proxy_apps` | no | List of server-proxy featured applications. | MATLAB IDE |
+| -- `install` | yes | Whether it is allowed to install further packages, kernels, extensions. | true |
+| -- `shared_folder` | yes | Whether there is a folder to share documents with others. | false |
+| -- `persistent_storage` | yes | Whether files can survive the docker session. | true |
+| -- `misc` | no | List of other features you find relevant. | dynamic image creation |
+| `technicals` | no | Information about the technology stack used. | |
+| -- `platform` | no | The underlying system below JupyterHub. | HPC; Openstack, ... |
+| -- `deployment` | no | The way Jupyter is installed on the system. | Docker; Kubernetes |
+| -- `deployment_url` | no | Link to more (technical) information or a (Git) repository about the deployment or other administration tasks. | |
+| -- `login_attributes` | no | List of required attributes, entitlements or memberships for Login. | SAML:persistend_id, SAML:display_name, SAML:email |
+| -- `hardware_location` | no | Where the compute resources are located. | Germany; Europe |
+| -- `misc` | no | List of other features you find relevant. | |
+| `resources` | yes | Information about available resources on the instance. | |
+| -- `default_server_user` | no | Default number of Jupyter servers per user. | 1 |
+| -- `max_server_user` | yes | Maximum number of Jupyter servers per user. | 5 |
+| -- `default_cpu` | no | Default number of CPU for a Jupyter server. | 1 |
+| -- `max_cpu` | yes | Maximum number of CPU for a Jupyter server. | 4 |
+| -- `total_cpu` | yes | Guarantied total number of CPUs for this Jupyterhub instance. | 50 |
+| -- `burst_total_cpu` | yes | Scaled total number of CPUs for this JupyterHub instance. Normally not exclusive, depends on other factors. | 50 |
+| -- `default_cpu_time` | no | Default CPU time for a Jupyter server. | 1 h |
+| -- `max_cpu_time` | yes | Maximum CPU time for a Jupyter server. | 72 h |
+| -- `default_memory` | no | Default amount of memory for a Jupyter server. | 100 MB |
+| -- `max_memory` | yes | Maximum amount of memory for a Jupyter server. | 4 GB |
+| -- `total_memory` | yes | Guarantied total amount of memory for this Jupyterhub instance. | 500 GB |
+| -- `burst_total_memory` | yes | Scaled total amount of memory for this JupyterHub instance. Normally not exclusive, depends on other factors. | 600 GB |
+| -- `default_gpu` | no | Default number of GPU for a Jupyter server. | 0 |
+| -- `max_gpu` | yes | Maximum number of GPU for a Jupyter server. | 0 |
+| -- `total_gpu` | yes | Guarantied total number of GPUs for this Jupyterhub instance. | 10 |
+| -- `burst_total_gpu` | yes | Scaled total number of GPUs for this JupyterHub instance. Normally not exclusive, depends on other factors. | 10 |
+| -- `default_disk` | no | Default amount of disk space (maybe temporary) for a Jupyter server. | 10 GB |
+| -- `max_disk` | yes | Maximum amount of disk space (maybe temporary) for a Jupyter server. | 10 GB |
+| -- `default_persistent_disk` | no | Default amount of disk space that services a Jupyter session. | 2 GB |
+| -- `max_persistent_disk` | yes | Maximum amount of disk space that services a Jupyter session. | 2 GB |
+| -- `total_disk` | yes | Guarantied total amount of disk space for this Jupyterhub instance. | 50 TB |
+| -- `burst_total_disk` | yes | Scaled total amount of disk space for this JupyterHub instance. Normally not exclusive, depends on other factors. | 50 TB |
+| `usage` | no | Statistical information about the Jupyterhub instance. | |
+| -- `average_daily_sessions` | yes | Average number of Jupyter sessions per day. | 10 |
\ No newline at end of file
diff --git a/include/details.md b/include/details.md
index 13cc766..a004daf 100644
--- a/include/details.md
+++ b/include/details.md
@@ -42,10 +42,19 @@ __Documentation__
- {{ feature }}
{% endfor %}
-{% if features.kernels %}
+{% if (features.programming_languages or features.environments) %}
=== "Kernels"
{% for kernel in features.kernels %}
+ {% if features.programming_languages %}
+ Programming Languages:
+ {% for kernel in features.programming_languages %}
+ - {{ kernel }}
+ {% endfor %}
+ {% endif %}
+ {% if features.environments %}
+ Environments:
+ {% for kernel in features.environments %}
- {{ kernel }}
{% endfor %}
{% endif %}
@@ -61,6 +70,7 @@ __Documentation__
{% if features.proxy_apps %}
=== "Webproxy Applications"
+=== "Web-proxy Applications"
{% for app in features.proxy_apps %}
- {{ app }}
{% endfor %}
@@ -69,12 +79,34 @@ __Documentation__
## Resources
{{ title }} provides Jupyter servers within the following resource limits:
-| Resource | Default | Maximum |
-| -------- | ------- | ------- |
-| Number of Jupyter servers per user | {{ resources.default_server_user }} | {{ resources.max_server_user }} |
-| Number of CPUs | {{ resources.default_cpu }} | {{ resources.max_cpu }} |
-| CPU time | {{ resources.default_cpu_time }} | {{ resources.max_cpu_time }} |
-| Amount of memory | {{ resources.default_memory }} | {{ resources.max_memory }} |
-| Number of GPUs | {{ resources.default_gpu }} | {{ resources.max_gpu }} |
-| Disk space | {{ resources.default_disk }} | {{ resources.max_disk }} |
-| Persistent disk space | {{ resources.default_persistent_disk }} | {{ resources.max_persistent_disk }} |
+| Resource | Default | Maximum |
+|------------------------------------|-----------------------------------------|-------------------------------------|
+| Number of Jupyter servers per user | {{ resources.default_server_user }} | {{ resources.max_server_user }} |
+| Number of CPUs | {{ resources.default_cpu }} | {{ resources.max_cpu }} |
+| CPU time | {{ resources.default_cpu_time }} | {{ resources.max_cpu_time }} |
+| Amount of memory | {{ resources.default_memory }} | {{ resources.max_memory }} |
+| Number of GPUs | {{ resources.default_gpu }} | {{ resources.max_gpu }} |
+| Disk space | {{ resources.default_disk }} | {{ resources.max_disk }} |
+| Persistent disk space | {{ resources.default_persistent_disk }} | {{ resources.max_persistent_disk }} |
+
+{% if technicals %}
+## Technicals
+Some technical insights about {{ title }}:
+{% if technicals.platform %}
+- Platform: {{ technicals.platform }}
+{% endif %}
+{% if technicals.deployment %}
+- Deployment: {{ technicals.deployment }} {% if technicals.deployment_url %} [Further information]({{ technicals.deployment_url }}) {% endif %}
+{% endif %}
+{% if technicals.login_attributes %}
+- Required attributes, entitlements or memberships for Login: {{ technicals.login_attributes }}
+{% endif %}
+{% if technicals.hardware_location %}
+- Hardware location: {{ technicals.hardware_location }}
+{% endif %}
+{% if technicals.misc %}
+{% for feature in technicals.misc %}
+- {{ feature }}
+{% endfor %}
+{% endif %}
+{% endif %}