# This page is no longer maintained - see [this gwdg page](https://docs.gwdg.de/doku.php?id=en:services:application_services:stack_maxima:start) instead # ## goemaxima cluster with kubernetes Due to a limitation with autoscaling and forwarding POST parameters, each stack version has its own URL. Generally, the format of the URL is stack-maxima.service.rancher.gwdg.de/STACKMAXIMA-VERSION/goemaxima, where STACKMAXIMA-VERSION corresponds to the version of stackmaxima (as seen in the table below). ## The goemaxima Server The goemaxima server is our own, homegrown implementation of the MaximaPool API. It is written in go and has less startup time and memory utilization than the java implementation. Internally, it works by forking new maxima processes from an initial mother process instead of starting a new one each time, saving startup time and memory (because the memory is shared between the forked maximas). goemaxima is using precompiled maxima. It is put into a docker container so that it can be used by kubernetes. For security, each forked process gets its own user and after execution, every process with a given user is killed. Also, in the kubernetes cluster outbound internet access is disabled for processes in the container. It has been tested both on ilias and moodle and seems to work without problems. ## goemaxima Cluster GWDG Goettingen The GWDG Goettingen (https://gwdg.de) offers IT-services for the Univerisity Goettingen and the Max-Planck Society Germany. Further on members and associates of other universities in Lower Saxony, national universities outside of Lower Saxony or other institutions in the aerea of research or education are allowed to use the services by special arrangements. The GWDG offers a goemaxima cluster for universities and schools according to special arrangements. A maximapool instance is not supported on the GWDG cluster. ### Matching table ILIAS/Moodle-Version - goemaxima-URL Here is a table of stack/ilias versions and the corresponding server URLs: ```text --------------- ---------------------- ------------------- ---------------------------------------------------------- Ilias Version Moodle Stack Version Stackmaxima Build goemaxima - 4.2.1 2018080600 `stack-maxima.service.rancher.gwdg.de/2018080600/goemaxima` 6-or-7 4.2.2a 2019090200 `stack-maxima.service.rancher.gwdg.de/2019090200/goemaxima` - 4.3.1 2020042000 `stack-maxima.service.rancher.gwdg.de/2020042000/goemaxima` - 4.3.2 2020052700 `stack-maxima.service.rancher.gwdg.de/2020052700/goemaxima` - 4.3.3 2020061000 `stack-maxima.service.rancher.gwdg.de/2020061000/goemaxima` - 4.3.4 2020070100 `stack-maxima.service.rancher.gwdg.de/2020070100/goemaxima` - 4.3.6 2020100900 `stack-maxima.service.rancher.gwdg.de/2020100900/goemaxima` - 4.3.7 2020101501 `stack-maxima.service.rancher.gwdg.de/2020101501/goemaxima` - 4.3.8 2020120600 `stack-maxima.service.rancher.gwdg.de/2020120600/goemaxima` 7-DEV 4.3.10 2021120900 `stack-maxima.service.rancher.gwdg.de/2021120900/goemaxima` - 4.3.11 2022060100 `stack-maxima.service.rancher.gwdg.de/2022060100/goemaxima` - 4.4.0 2022071300 `stack-maxima.service.rancher.gwdg.de/2022071300/goemaxima` - 4.4.1 2022082900 `stack-maxima.service.rancher.gwdg.de/2022082900/goemaxima` - 4.4.2 2023010400 `stack-maxima.service.rancher.gwdg.de/2023010400/goemaxima` - 4.4.3 2023052400 `stack-maxima.service.rancher.gwdg.de/2023052400/goemaxima` - 4.4.4 2023060500 `stack-maxima.service.rancher.gwdg.de/2023060500/goemaxima` - 4.4.5 2023072101 `stack-maxima.service.rancher.gwdg.de/2023072101/goemaxima` --------------- ---------------------- ------------------- --------------------------------------------------------- ``` ### ## Docker Image The Docker images are available on the docker hub at `mathinstitut/goemaxima:[STACKMAXIMA-VERSION]-latest` where `[STACKMAXIMA-VERSION]` is replaced with the corresponding stackmaxima version found in the table above. You can run the docker image with `docker run --restart always --tmpfs /tmp -p [HOSTPORT]:8080 mathinstitut/goemaxima:[STACKMAXIMA-VERSION]-latest` where `[STACKMAXIMA-VERSION]` is again the version and `[HOSTPORT]` is the host and port separated by a colon. For example, if you were to deploy goemaxima with stackmaxima version `2020070100` on port 80 of host `192.0.2.10`, one would run `docker run --restart always -p 192.0.2.10:80:8080 mathinstitut/goemaxima:2020070100-latest`. The URL that would be input into stack is then `http://192.0.2.10:80/maxima/` (including the trailing slash). In the docker image, the libraries `stats, distrib, descriptive, simplex` are loaded. Some Prometheus statistics are exported on `/metrics`, and some debug information can be logged by setting the environment variable `GOEMAXIMA_DEBUG=1`. ### Image Source The source is available at [https://github.com/mathinstitut/goemaxima](https://github.com/mathinstitut/goemaxima). ## Some-Hints ### Support Via work packages: https://projects.academiccloud.de/projects/netzwerk-mathe-digital/work\_packages Everybody, logged in at Academic Cloud, can do this. Please adjust yout notifications to get all the messages about your work packages: https://projects.academiccloud.de/my/notifications ### Setup-Maxima-Server-Connection * \[\[ILIAS\]\] ### Cluster-not-reachable Each URL from the table above gives an answer: ```text > curl http://2017121800.maxima.math.uni-goettingen.de/goemaxima Hostname: maxima-2017121800-i5zw4y-helmgomaxima-945c89d68-fgvzf, version: 1.1.0 ``` First check this with curl on the command line of your ILIAS- or Moodle-Installation. If this not work you either has problem with DNS or with a firewall. Port 80 has to be open for requests from your machine. If it works but not from the setup in ILIAS or Moodle, there is a problem with DNS in php. Perhaps the user running ILIAS or Moodle can not read /etc/resolv.conf because this name is a link to an other file.