{"id":20178822,"url":"https://github.com/drsnowbird/rest-dev-vnc-docker","last_synced_at":"2026-04-15T19:40:22.669Z","repository":{"id":90087592,"uuid":"167221773","full_name":"DrSnowbird/rest-dev-vnc-docker","owner":"DrSnowbird","description":"Restful / SOAP API Development with common tools in VNC/noVNC-based Docker","archived":false,"fork":false,"pushed_at":"2020-07-18T23:47:46.000Z","size":48963,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-03T05:41:47.897Z","etag":null,"topics":["atom","atom-editor","json","json-editor","mongodb","nodejs","postman","restful-api","soap-api","soap-ui","swagger-editor","xml"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DrSnowbird.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":"2019-01-23T17:10:47.000Z","updated_at":"2023-02-02T09:41:57.000Z","dependencies_parsed_at":"2023-03-02T23:00:13.169Z","dependency_job_id":null,"html_url":"https://github.com/DrSnowbird/rest-dev-vnc-docker","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/DrSnowbird/rest-dev-vnc-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrSnowbird%2Frest-dev-vnc-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrSnowbird%2Frest-dev-vnc-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrSnowbird%2Frest-dev-vnc-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrSnowbird%2Frest-dev-vnc-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DrSnowbird","download_url":"https://codeload.github.com/DrSnowbird/rest-dev-vnc-docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrSnowbird%2Frest-dev-vnc-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31857618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["atom","atom-editor","json","json-editor","mongodb","nodejs","postman","restful-api","soap-api","soap-ui","swagger-editor","xml"],"created_at":"2024-11-14T02:23:37.906Z","updated_at":"2026-04-15T19:40:22.647Z","avatar_url":"https://github.com/DrSnowbird.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![](https://images.microbadger.com/badges/image/openkbs/rest-dev-vnc-docker.svg)](https://microbadger.com/images/openkbs/rest-dev-vnc-docker \"Get your own image badge on microbadger.com\") [![](https://images.microbadger.com/badges/version/openkbs/rest-dev-vnc-docker.svg)](https://microbadger.com/images/openkbs/rest-dev-vnc-docker \"Get your own version badge on microbadger.com\")\n\n# SOAP / REST API Development with common tools within VNC/noVNC-based Docker\n* SOAP-UI + Swagger-Editor + Atom + Eclipse Photon + OpenJDK Java 8 (1.8.0_212) JDK + Maven 3.6 + Python 3.6/2.7 + pip 19 + node 11 + npm 6 + Gradle 5.3 + noVNC/VNC (as Cluster Container Desktop)\n\n# Concept - Dev Environment everywhere using VNC/noVNC Docker\nThe idea is to use Docker with VNC/noVNC to aggregate all the needed and related Developments tools/IDEs within a single Docker as an agile way to stand up specific collections of tools quick within a Container quick computing needs, e.g.,\n* REST Development (this GIT) to cover end-to-end needs from JSON/XML, REST connection, Swagger, MongoDB, Test, etc.\n* NLP/Semantic Development (coming soon)\n* ... and more per your imaginations or needs in your business application domains, e.g, bio-science, finance, IoT, etc.\n\n**The use-cases of this kind of VNC/noVNC docker container is just limited by your imaginations and your device or network limitations. Virtually it's accessible ubiquitously from Your favorite smartphones, tablets, e.g., iPad, SurfacePro, Amazon Fire tablet, Chrome PC, Desktop PC, etc. (Hmmm! in theory, if you can read tiny screens, you can even use your Apple iWatch to use KNIME, Eclipse Photon, IntelliJ, etc. as long as it can display HTML-5 Web Browsers!**\n\n# REST Tools / Components\n* The followings are available now for REST Development and more will be added either as default or optional under the \"**./components **\" (optional) and \"**./components-active\" (Deployed) directories.\n```\n./components\n├── ide-eclipse.sh\n├── nosql-mongodb-CentOS-7.sh\n├── nosql-mongodb-Ubuntu-16.sh\n├── sample-rest-api.sh\n├── swagger-editor.sh\n├── swagger-rest-api.sh\n└── swagger-ui.sh\n\n./components-active\n├── api-workbench.sh\n├── app-postman.sh\n├── ide-atom.sh\n├── json-editor.sh\n├── mongodb-compass-gui.sh\n└── soap-ui.sh\n\n```\nIf needed again, you just run each needed component setup script, e.g.,\n```\n~/components/swagger-ui.sh\n```\n\n# Core Components\n* Atom (default) / Eclipse Photon IDE (installable with script, ~/components/ide-eclipse.sh)\n* VNC/noVNC for both browswer-based VNC and VNC-client to connect to use Desktop GUI from Docker container.\n* java version \"1.8.0_202\"\n  Java(TM) SE Runtime Environment (build 1.8.0_202-b08)\n  Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)\n* Apache Maven 3.6.0\n* Python3 3.5.2 + Python 2.7.12\n* npm 6.7.0 + node v11.11.0 (from NodeSource official Node Distribution)\n* Gradle 5.2.1\n* Other tools: git wget unzip vim python python-setuptools python-dev python-numpy \n* noVNC/VNC (as Cluster Container Desktop)\n\n# Note:\nThis project mainly adopt the [ConSol docker-headless-vnc-container](https://github.com/ConSol/docker-headless-vnc-container) implementation.\n\n# Run (recommended for easy-start)\nIt's highly recommended to change VNC password to prevent others using the default password to get into your container, modify the file \"**./docker.env**\" as below and save the file before you hit, \"./run.sh\":\n```\n(./docker.env) file:\n\n#### ---- VNC Password ----\nVNC_PW=MySuperStrongPassword\n```\n* Once the above build is done, you can run now using the command below.\n```\n./run.sh\n```\nThe run.sh command will auto-generate the docker run arguments as below:\n```\ndocker run --rm -it \n    --name=rest-dev-vnc-docker \n    --restart=no \n    -e VNC_RESOLUTION=1920x1080 \n    -e VNC_PW=vncpassword \n    -v /home/user1/data-docker/rest-dev-vnc-docker/.eclipse:/home/developer/.eclipse \n    -v /home/user1/data-docker/rest-dev-vnc-docker/eclipse-workspace:/home/developer/eclipse-workspace \n    -p 5901:5901 \n    -p 6901:6901 \n    openkbs/rest-dev-vnc-docker\n```\n# Run - Override VNC environment variables \nThe following VNC environment variables can be overwritten at the docker run phase to customize your desktop environment inside the container. You can change those variables using configurations CLI or Web-GUI with OpenShift, Kubernetes, DC/OS, etc. For standalone deployment, e.g. using \"./run.sh\" (with Portainer to manage), again, you just modify \"./docker-run.env\" file's entries as described above.\n```\nVNC_COL_DEPTH, default is 24 , e.g., change to 16,\n    -e VNC_COL_DEPTH=16\nVNC_RESOLUTION, default: 1920x1080 , e.g., change to 1280x1024\n    -e VNC_RESOLUTION=1280x1024\nVNC_PW, default: vncpassword , e.g., change to MySpecial!(Password%)\n    -e VNC_PW=MySpecial!(Password%)\n```\n\n# Deployment over Openshift or Kubernetes\nYou need to manually provide the environment variables for deployment (since run.sh automatically aggregate all the needed variables for running the PyCharm docker container to ensure the persistent information stayed with the host directories even you delete the container instances.\nHere is what you need to set up in Openshift \"deployment\" configuration GUI or YAML template (from docker-compose.yaml file below):\n```\n    volumes:\n      -v \u003cYour NFS/File Directory\u003e/data:/home/developer/data\n      -v \u003cYour NFS/File Directory\u003e/workspace:/home/developer/workspace\n      -v \u003cYour NFS/File Directory\u003e/data-docker/rest-dev-vnc-docker/.eclipse:/home/developer/.eclipse \n      -v \u003cYour NFS/File Directory\u003e/data-docker/rest-dev-vnc-docker/eclipse-workspace:/home/developer/eclipse-workspace \n      -p 5901:5901\n      -p 6901:6901 \n```\n(Note: We will add Openshifpt / Kubernetes templates soon for your convience to deploy.)\n\n## Connect to VNC Viewer/Client or noVNC (Browser-based VNC)\n* connect via VNC viewer localhost:5901, default password: vncpassword\n* connect via noVNC HTML5 full client: http://localhost:6901/vnc.html, default password: vncpassword\n* connect via noVNC HTML5 lite client: http://localhost:6901/?password=vncpassword\n\nOnce it is up, the default password is \"vncpassword\" to access with your web browser:\n```\nhttp://\u003cip_address\u003e:6901/vnc.html,\ne.g.\n=\u003e Standalone Docker: http://localhost:6901/vnc.html\n=\u003e Openshift Container Platform: http://\u003croute-from-openshift\u003e/vnc.html\n=\u003e similarly for Kubernetes Container Platform: (similar to the Openshift above!)\n```\n\n# Use Cases - Virtual/Physical Class setup\n## One-Container-for-Each-Student:\n* For standalone container, you just need to spin up, say, 18 containers, one for each student VNC/noVNC, each with different host ports, 6901, 6902, .., 6918 for noNVC ports.\n* For using OpenShift to create, you can just spin 18 containers and create \"route\" for each instances, then give each student different each route (hostname generated by OpenShift).\n## One-Container-for-ALL-students to see what you do:\n* Just give your container IP/Hostname/Route (from OpenShift) to all your students to login, then they will all see what you do identically. Or, your students can even take over your mouse to show you what you did wrong for your codes, equations or graphs.\n\n# Screen (Desktop) Resolution\nTwo ways to change Screen resolutions.\n\n## 1.) Modify ./docker-run.env file\n```\n#VNC_RESOLUTION=1280x1024\nVNC_RESOLUTION=1920x1280\n```\n\n## 2.) Customize Openshift or Kubernetes container run environment\n```\nSet up, say, VNC_RESOLUTION with value 1920x1280\n```\n\n# Base the image to build add-on components\n\n```Dockerfile\nFROM openkbs/rest-dev-vnc-docker\n```\n\n# Run the image\n\nThen, you're ready to run:\n- make sure you create your work directory, e.g., ./data\n\n```bash\nmkdir ./data\ndocker run -d --name my-rest-dev-vnc-docker -v $PWD/data:/data -i -t openkbs/rest-dev-vnc-docker\n```\n\n# Build and Run your own image\nSay, you will build the image \"my/rest-dev-vnc-docker\".\n\n```bash\ndocker build -t my/rest-dev-vnc-docker .\n```\n\nTo run your own image, say, with some-rest-dev-vnc-docker:\n\n```bash\nmkdir ./data\ndocker run -d --name some-rest-dev-vnc-docker -v $PWD/data:/data -i -t my/rest-dev-vnc-docker\n```\n\n## Shell or Logging into the Docker instance\n\n```bash\n./shell.sh\n./logs.sh\nor\n\ndocker exec -it some-rest-dev-vnc-docker /bin/bash\n```\n\n\n# Reference\n* [RAML APIs](https://raml.org/)\n* [API-Workbench for RAML](http://apiworkbench.com/docs/)\n* [OpenAPI Specification (OAS)](https://en.wikipedia.org/wiki/OpenAPI_Specification)\n* [OAI/OpenAPI-Specification](https://github.com/OAI/OpenAPI-Specification)\n* [Swagger OpenAPI Editor, UI](https://swagger.io/)\n* [SoapUI](https://www.soapui.org/)\n* [VNC / NoVNC](https://github.com/novnc/noVNC)\n* [ConSol docker-headless-vnc-container](https://github.com/ConSol/docker-headless-vnc-container)\n* [Running GUI apps in Docker containers using VNC](http://blog.fx.lv/2017/08/running-gui-apps-in-docker-containers-using-vnc/)\n* [Docker-headless-VNC-Container](https://github.com/DrSnowbird/docker-headless-vnc-container)\n\n# See also X11 and VNC/noVNC docker-based IDE collections\n* [openkbs/docker-atom-editor](https://hub.docker.com/r/openkbs/docker-atom-editor/)\n* [openkbs/eclipse-oxygen-docker](https://hub.docker.com/r/openkbs/eclipse-oxygen-docker/)\n* [openkbs/eclipse-phonto-vnc-docker](https://cloud.docker.com/u/openkbs/repository/docker/openkbs/eclipse-photon-vnc-docker)\n* [openkbs/eclipse-photon-docker](https://hub.docker.com/r/openkbs/eclipse-photon-docker/)\n* [openkbs/eclipse-photon-vnc-docker](https://hub.docker.com/r/openkbs/eclipse-photon-vnc-docker/)\n* [openkbs/intellj-docker](https://hub.docker.com/r/openkbs/intellij-docker/)\n* [openkbs/intellj-vnc-docker](https://hub.docker.com/r/openkbs/intellij-vnc-docker/)\n* [openkbs/knime-docker](https://cloud.docker.com/u/openkbs/repository/docker/openkbs/knime-docker)\n* [openkbs/knime-vnc-docker](https://cloud.docker.com/u/openkbs/repository/docker/openkbs/knime-vnc-docker)\n* [openkbs/mysql-workbench-vnc-docker](https://cloud.docker.com/u/openkbs/repository/docker/openkbs/mysql-workbench-vnc-docker)\n* [openkbs/netbeans10-docker](https://hub.docker.com/r/openkbs/netbeans10-docker/)\n* [openkbs/netbeans](https://hub.docker.com/r/openkbs/netbeans/)\n* [openkbs/papyrus-sysml-docker](https://hub.docker.com/r/openkbs/papyrus-sysml-docker/)\n* [openkbs/pycharm-docker](https://hub.docker.com/r/openkbs/pycharm-docker/)\n* [openkbs/pycharm-vnc-docker](https://cloud.docker.com/u/openkbs/repository/docker/openkbs/pycharm-vnc-docker)\n* [openkbs/rapidminer-docker](https://cloud.docker.com/u/openkbs/repository/docker/openkbs/rapidminer-docker)\n* [openkbs/scala-ide-docker](https://hub.docker.com/r/openkbs/scala-ide-docker/)\n* [openkbs/sublime-docker](https://hub.docker.com/r/openkbs/sublime-docker/)\n* [openkbs/webstorm-docker](https://hub.docker.com/r/openkbs/webstorm-docker/)\n* [openkbs/webstorm-vnc-docker](https://cloud.docker.com/u/openkbs/repository/docker/openkbs/webstorm-vnc-docker)\n* [openkbs/rest-dev-vnc-docker](https://cloud.docker.com/u/openkbs/repository/docker/openkbs/rest-dev-vnc-docker)\n\n# See Also - Docker-based SQL GUI\n* [Sqlectron SQL GUI at openkbs/sqlectron-docker](https://hub.docker.com/r/openkbs/sqlectron-docker/)\n* [Mysql-Workbench at openkbs/mysql-workbench](https://hub.docker.com/r/openkbs/mysql-workbench/)\n* [PgAdmin4 for PostgreSQL at openkbs/pgadmin-docker](https://hub.docker.com/r/openkbs/pgadmin-docker/)\n\n# Releases information\n```\ndeveloper@4542c85148f5:~$ /usr/scripts/printVersions.sh \n+ echo JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64\nJAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64\n+ java -version\nopenjdk version \"1.8.0_212\"\nOpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)\nOpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)\n+ mvn --version\nApache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T18:41:47Z)\nMaven home: /usr/apache-maven-3.6.0\nJava version: 1.8.0_212, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre\nDefault locale: en, platform encoding: UTF-8\nOS name: \"linux\", version: \"4.18.0-20-generic\", arch: \"amd64\", family: \"unix\"\n+ python -V\nPython 2.7.15rc1\n+ python3 -V\nPython 3.6.7\n+ pip --version\npip 19.1.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)\n+ pip3 --version\npip 19.1.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)\n+ gradle --version\n\nWelcome to Gradle 5.3.1!\n\nHere are the highlights of this release:\n - Feature variants AKA \"optional dependencies\"\n - Type-safe accessors in Kotlin precompiled script plugins\n - Gradle Module Metadata 1.0\n\nFor more details see https://docs.gradle.org/5.3.1/release-notes.html\n\n\n------------------------------------------------------------\nGradle 5.3.1\n------------------------------------------------------------\n\nBuild time:   2019-03-28 09:09:23 UTC\nRevision:     f2fae6ba563cfb772c8bc35d31e43c59a5b620c3\n\nKotlin:       1.3.21\nGroovy:       2.5.4\nAnt:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018\nJVM:          1.8.0_212 (Oracle Corporation 25.212-b03)\nOS:           Linux 4.18.0-20-generic amd64\n\n+ npm -v\n6.7.0\n+ node -v\nv11.15.0\n```\n\n# Known Issues\n* Current releases' the VNC port 5901 is not function correctly. However, port 6901 for noVNC / HTML5 is working correctly. Hence, for now, you have to use noVNC/HTML5 web browser with port 6901 to access the container.\n* Also, CentOS Dockerfile build still has some connection crash issue. We recommend to use the default build (Ubuntu version's Dockerfile - the default).\n* If you are running container or Openshift or Kubernetes behind your corporate Proxy Servers, you might need to modify Dockerfile to inject the information about your corporate's Proxy Servers so that the container will function properly if it needs to pull in more packages externally - this is beyond what this container can provide about your proxy servers information, sorry! But, I will post or add sample \"Dockerfile-proxied-exmaple\" to show you how to modify Dockerfile to fit your Corproate's Proxy environment for build and run the container later.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrsnowbird%2Frest-dev-vnc-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrsnowbird%2Frest-dev-vnc-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrsnowbird%2Frest-dev-vnc-docker/lists"}