{"id":19220633,"url":"https://github.com/gorenje/sysmlv2-jupyter-docker","last_synced_at":"2025-04-15T21:08:24.426Z","repository":{"id":38198208,"uuid":"340091809","full_name":"gorenje/sysmlv2-jupyter-docker","owner":"gorenje","description":"Create docker image for running SysMLv2 with Jupyter","archived":false,"fork":false,"pushed_at":"2024-10-25T10:46:48.000Z","size":40224,"stargazers_count":30,"open_issues_count":2,"forks_count":25,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-15T21:08:04.492Z","etag":null,"topics":["docker-image","jupyter","notebooks","sysml","sysmlv2"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gorenje.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-18T15:24:53.000Z","updated_at":"2025-04-13T20:30:09.000Z","dependencies_parsed_at":"2024-10-25T13:24:04.264Z","dependency_job_id":"67674d10-2761-4260-8eea-697ee9f38853","html_url":"https://github.com/gorenje/sysmlv2-jupyter-docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gorenje%2Fsysmlv2-jupyter-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gorenje%2Fsysmlv2-jupyter-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gorenje%2Fsysmlv2-jupyter-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gorenje%2Fsysmlv2-jupyter-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gorenje","download_url":"https://codeload.github.com/gorenje/sysmlv2-jupyter-docker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249153944,"owners_count":21221330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-image","jupyter","notebooks","sysml","sysmlv2"],"created_at":"2024-11-09T14:35:43.495Z","updated_at":"2025-04-15T21:08:24.401Z","avatar_url":"https://github.com/gorenje.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker image for running SysML v2\n\nCreate a docker image for running [SysML v2 Release](https://github.com/Systems-Modeling/SysML-v2-Release) in Jupyter.\n\nThe setup is taken from the [Jupyter installation](https://github.com/Systems-Modeling/SysML-v2-Release/tree/master/install/jupyter).\n\nIn addition, an [API Server](https://github.com/Systems-Modeling/SysML-v2-API-Services) is also started and everything published in Jupyter will be pushed into this server.\n\n## Update - Oct 2024\n\nI [no longer actively](https://github.com/gorenje/sysmlv2-jupyter-docker/issues/19#issuecomment-2193902929) maintain this repository, all my apologises to those frustrated by that. I have no active interest in SysMLv2 and hence doing this for free was counterproductive for me.\n\nInstead I now actively work with [Node-RED](https://nodered.org) which provides a UML-like visual programming interface for (I)IoT development. For those using SysMLv2, Node-RED provides a similar visual interface but with the advantage of code being visual so that the visuals become the code. I have worked on a [Flow2UML](https://flows.nodered.org/node/@gregoriusrippenstein/node-red-contrib-flow2uml) plugin for Node-RED to convert flow based code to UML diagrams. This highlights the similarities between the two.\n\n## Remote Services\n\nYou can try this out on Binder, via DockerHub or just view the notebooks at nbviewer.\n\n### Binder\n\nYou can run this on [Binder](https://mybinder.org) but it will only run the SysMLv2-based Jupyter server, not the API server.\n\nLatest version: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/HEAD)\n\nSee below for specific release links.\n\nYou can also view notebooks via [nbviewer](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/master/notebooks) and from there it's possible to start up [Binder](https://mybinder.org).\n\n### Dockerhub\n\nDocker images are also [available](https://hub.docker.com/r/gorenje/sysmlv2-jupyter). These are only of the Jupyter installation not the API server.\n\nSee below for specific pull statements.\n\n### nbviewer\n\nRepo can also be viewed using [nbviewer](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/main/).\n\nSee below for specific release links.\n\n### Dedicated Server\n\nThanks to [Tim Weilkiens](https://github.com/Weilkiti), there is now a dedicated [server](https://www.sysmlv2lab.com/) running the [latest](https://hub.docker.com/r/gorenje/sysmlv2-jupyter/tags?ordering=last_updated\u0026page=1\u0026name=latest) version of this repo.\n\n### Overview\n\n| [nbviewer](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/main/) | [binder](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/HEAD) | [docker hub](https://hub.docker.com/r/gorenje/sysmlv2-jupyter) |\n|:--|:--|:--|\n| [2023-02](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2023-02/) | [2023-02](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2023-02) |  `docker pull gorenje/sysmlv2-jupyter:2023-02` |\n| [2022-07](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2022-07/) | [2022-07](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2022-07) |  `docker pull gorenje/sysmlv2-jupyter:2022-07` |\n| [2022-06](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2022-06/) | [2022-06](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2022-06) |  `docker pull gorenje/sysmlv2-jupyter:2022-06` |\n| [2022-05](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2022-05/) | [2022-05](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2022-05) |  `docker pull gorenje/sysmlv2-jupyter:2022-05` |\n| [2022-04](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2022-04/) | [2022-04](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2022-04) |  `docker pull gorenje/sysmlv2-jupyter:2022-04` |\n| [2022-03](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2022-03/) | [2022-03](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2022-03) |  `docker pull gorenje/sysmlv2-jupyter:2022-03` |\n| [2022-02](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2022-02/) | [2022-02](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2022-02) |  `docker pull gorenje/sysmlv2-jupyter:2022-02` |\n| [2022-01](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2022-01/) | [2022-01](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2022-01) |  `docker pull gorenje/sysmlv2-jupyter:2022-01` |\n| [2021-12](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-12/) | [2021-12](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-12) |  `docker pull gorenje/sysmlv2-jupyter:2021-12` |\n| [2021-11](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-11/) | [2021-11](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-11) |  `docker pull gorenje/sysmlv2-jupyter:2021-11` |\n| [2021-10](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-10/) | [2021-10](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-10) |  `docker pull gorenje/sysmlv2-jupyter:2021-10` |\n| [2021-09](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-09/) | [2021-09](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-09) |  `docker pull gorenje/sysmlv2-jupyter:2021-09` |\n| [2021-08.1](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-08.1/) | [2021-08.1](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-08.1) |  `docker pull gorenje/sysmlv2-jupyter:2021-08.1` |\n| [2021-08](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-08/) | [2021-08](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-08) |  `docker pull gorenje/sysmlv2-jupyter:2021-08` |\n| [2021-06](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-06/) | [2021-06](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-06) |  `docker pull gorenje/sysmlv2-jupyter:2021-06` |\n| [2021-05](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-05/) | [2021-05](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-05) |  `docker pull gorenje/sysmlv2-jupyter:2021-05` |\n| [2021-04](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-04/) | [2021-04](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-04) |  `docker pull gorenje/sysmlv2-jupyter:2021-04` |\n| [2021-03](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-03/) | [2021-03](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-03) |  `docker pull gorenje/sysmlv2-jupyter:2021-03` |\n| [2021-02](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-02/) | [2021-02](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-02) |  `docker pull gorenje/sysmlv2-jupyter:2021-02` |\n| [2021-01](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2021-01/) | [2021-01](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2021-01) | `docker pull gorenje/sysmlv2-jupyter:2021-01`  |\n| [2020-12](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2020-12/) | [2020-12](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2020-12) |  `docker pull gorenje/sysmlv2-jupyter:2020-12` |\n| [2020-11](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2020-11/)  | [2020-11](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2020-11) |  `docker pull gorenje/sysmlv2-jupyter:2020-11` |\n| [2020-10](https://nbviewer.jupyter.org/github/gorenje/sysmlv2-jupyter-docker/tree/release-2020-10/) |  [2020-10](https://mybinder.org/v2/gh/gorenje/sysmlv2-jupyter-docker/release-2020-10) | `docker pull gorenje/sysmlv2-jupyter:2020-10` |\n\n## Local Usage\n\nBe aware, building the docker images will take a while since all the software\npackages will be retrieved. Everything is built and run locally.\n\n### Prerequistes\n\n- [Docker](https://www.docker.com/)\n\nEverything else is installed by the build process.\n\n### Makefile\n\nTo start up the SysML-Jupyter server, the postgres server and the API server:\n\n    make spin-up\n\nThen point your browser first to ```http://localhost:9000/docs/``` - this will setup\nthe database for the API server. Once this displays a page, then point your\nbrowswer to the Jupyter page. This is on ```http://localhost:8888```,\ndon't use the hostname ```sysmljupyter```, that's internal to docker.\n\n```\n    To access the notebook, open this file in a browser:\n        file:///root/.local/share/jupyter/runtime/nbserver-1-open.html\n    Or copy and paste one of these URLs:\n        http://sysmljupyter:8888/?token=392e5b7c0e8cde28d6f988862bc7ad81ba6c517e31b63520\n     or http://127.0.0.1:8888/?token=392e5b7c0e8cde28d6f988862bc7ad81ba6c517e31b63520\n```\n\nThe token is unique for each start of the container.\n\nNOTE: If `localhost` does not work in the URLs, try `127.0.0.1` instead.\n\n### Using Docker\n\nIf you want to do this using docker only, i.e. no makefile, then have a\nlook at the Makefile. Basically it's something along the lines of:\n\n    docker build -t sysml.jupyter -f Dockerfile.jupyter .\n    docker build -t sysml.api     -f Dockerfile.api     .\n    docker network create thenetwork\n    docker volume create postgresdbserver\n    docker compose -f docker-compose.yml up\n\nThat is the same as doing ```make spin-up```.\n\n### Other Docker Builds\n\nThe Makefile also does the following builds for local usage:\n\n1. `make build-mybinder` will build the docker image that is used with mybinder. This image can then be run locally using `make run-mybinder`.\n\n2. `make build-hub` will build the docker hub image. Running this image can be done with `make run-hub`.\n\n3. `make build-api DB_SERVER_URL=\u003cserver url\u003e DB_USER=\u003cusername in your db\u003e DB_PASSWORD=\u003cyour password\u003e` builds the api server for the defined database server.\n\n4. `make build-jupyter SYSML_API_SERVER=\u003cyour API server\u003e` builds the jupyter container image for your api server instance.\n\n5. `make build-latest` builds the api server and jupyter server as defined above and labels it as latest. The aformentioned build arguments can be used, too.\n\nThese also work for each release that is supported by this repo.\n\n### Checking out other releases\n\nEach release has it's own branch, so for example to test the [SysML v2 Release 2020-12](https://github.com/Systems-Modeling/SysML-v2-Release/releases/tag/2020-12), do the following:\n\n```\ngit checkout release-2020-12\nmake run-hub\n```\n\nThat will locally start DockerHub Jupyter image with the 2020-12 release.\n\n## Production Use?\n\nDon't.\n\nThis isn't designed for production use, this is for local or trusted use only.\n\n## Example Notebooks\n\nThere are a few example notebooks included in the image, their usefulness\nmight vary according to your experience level.\n\n## Creating Your Own Notebooks\n\nThere is a \"mydata\" folder that you can create your own notebooks in. It is tied to your local file system, and thus will persist over time.\n\n## Inspiration\n\n- [MBSE4U.com](https://mbse4u.com/2020/12/21/sysml-v2-release-whats-inside/) is where I found the meta commands.\n- Also from MBSE4U.com, the example [notebook](https://nbviewer.jupyter.org/github/MBSE4U/SysMLv2JupyterBook/blob/master/SysMLv2JupyterBook.ipynb) at [nbviewer.jupyter.org](https://nbviewer.jupyter.org).\n\n## Building a new Release\n\nWhen a new [release tag](https://github.com/Systems-Modeling/SysML-v2-Release/tags) becomes available, the following things need doing:\n\n(Since I do this once a month, I thought I might write this up - please ignore)\n\n1. Ensure there is a corresponding [API Server](https://github.com/Systems-Modeling/SysML-v2-API-Services/tags) release.\n2. On the main branch, follow this [commit](https://github.com/gorenje/sysmlv2-jupyter-docker/commit/2adf4b3fc24a7184e2e5f26ed9edd2d4ffce0370) to update all dockerfiles \u0026 Makefile for the new release (in this case 2021-03). Important is also the addition of the [github action](https://github.com/gorenje/sysmlv2-jupyter-docker/blob/2adf4b3fc24a7184e2e5f26ed9edd2d4ffce0370/.github/workflows/2021-03.dockerpush.yml) for generating a docker image.\n3. Run `make build` to check that all dockerfiles build locally. Make sure that Docker is running locally.\n4. In a terminal window, run `make spin-up` to start a Jupyter server locally.\n5. In another termainal window, run `make update-testsuite` to update all the test notebooks in the repository. This also retrieves the notebooks from the Docker images and, in the end, there is a commit similar to this [one](https://github.com/gorenje/sysmlv2-jupyter-docker/commit/3597bc3cc1fa2375163b562b02765b4640e3af22).\n6. Create a new branch for the release, something like `release-2021-03` ain't bad :smiley:. On that branch, remove all github actions so that only the one for the branch is left, i.e. [this commit](https://github.com/gorenje/sysmlv2-jupyter-docker/commit/5bba34afa7817098f8f5f2477cf076c9641d9703).\n7. Push main and the new branch to github.\n8. Done.\n\n## Licensing\n\nBoth [SysMLv2 API Server](https://github.com/Systems-Modeling/SysML-v2-API-Services/blob/master/LICENSE) and [SysMLv2 Release](https://github.com/Systems-Modeling/SysML-v2-Release/blob/master/LICENSE) are licensed under the LGPL and this continues to be the case.\n\n**This project does not make any changes to the existing licensing of the\nreferenced projects.**\n\nThis project is also licensed under the [LGPL](/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgorenje%2Fsysmlv2-jupyter-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgorenje%2Fsysmlv2-jupyter-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgorenje%2Fsysmlv2-jupyter-docker/lists"}