{"id":20356071,"url":"https://github.com/sci-oer/java-resource","last_synced_at":"2026-03-06T15:32:30.734Z","repository":{"id":40318428,"uuid":"419341381","full_name":"sci-oer/java-resource","owner":"sci-oer","description":"The Java specific language resource for the sci-oer project","archived":false,"fork":false,"pushed_at":"2024-06-17T10:17:28.000Z","size":97343,"stargazers_count":2,"open_issues_count":8,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-11-30T06:54:12.129Z","etag":null,"topics":["docker-image","education","java","learning-resources","open-educational-resources"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sci-oer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"marshallasch","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2021-10-20T13:27:30.000Z","updated_at":"2023-06-20T16:23:50.000Z","dependencies_parsed_at":"2025-09-25T20:32:58.173Z","dependency_job_id":null,"html_url":"https://github.com/sci-oer/java-resource","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sci-oer/java-resource","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sci-oer%2Fjava-resource","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sci-oer%2Fjava-resource/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sci-oer%2Fjava-resource/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sci-oer%2Fjava-resource/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sci-oer","download_url":"https://codeload.github.com/sci-oer/java-resource/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sci-oer%2Fjava-resource/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30183473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T14:42:24.748Z","status":"ssl_error","status_checked_at":"2026-03-06T14:42:14.925Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["docker-image","education","java","learning-resources","open-educational-resources"],"created_at":"2024-11-14T23:14:58.584Z","updated_at":"2026-03-06T15:32:30.705Z","avatar_url":"https://github.com/sci-oer.png","language":"Dockerfile","funding_links":["https://github.com/sponsors/marshallasch"],"categories":[],"sub_categories":[],"readme":"[![Deployment](https://github.com/sci-oer/java-resource/actions/workflows/deployment.yml/badge.svg)](https://github.com/sci-oer/java-resource/actions/workflows/deployment.yml)\n![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/scioer/java-resource?style=plastic)\n![Docker Pulls](https://img.shields.io/docker/pulls/scioer/java-resource?style=plastic)\n![GitHub](https://img.shields.io/github/license/sci-oer/java-resource?style=plastic)\n\nThis is the Java-11 specific version of the sci-oer resource.\nThis extends the configuration defined in the [sci-oer/base-resource](https://github.com/sci-oer/base-resource) and adds the language specific dependencies.\n\n## Building the container\n\n```bash\ndocker build \\\n    --build-arg GIT_COMMIT=$(git rev-parse -q --verify HEAD) \\\n    --build-arg BUILD_DATE=$(date -u +\"%Y-%m-%dT%H:%M:%SZ\") \\\n    -t scioer/java-resource:latest .\n```\n\n\n## Running the container\n\n```bash\ndocker run --rm -it \\\n    -p 3000:3000 \\\n    -p 8888:8888 \\\n    -p 2222:22 \\\n    -p 8000:8000 \\\n    -v \"$(pwd)/course:/course\" \\\n    scioer/java-resource:latest\n```\n\nThis container is designed to be run in the foreground.\nIt will run a wiki.js server and a jupyter notebooks server in the background and provide the user with a bash shell\n\n## Using the container\n\n\n### Git\nTo configure git within the container this can be done manually by running the `git config` commands or by using the environment variables\n\n`GIT_EMAIL='student@example.com'`, `GIT_NAME=\"My StudentName\"`\n\nThese environment variables can be configured when you run the docker container\n\n```bash\ndocker run -it --rm \\\n    -p 3000:3000 \\\n    -p 8888:8888 \\\n    -p 2222:22 \\\n    -p 8000:8000 \\\n    -e GIT_EMAIL='student@example.com' \\\n    -e GIT_NAME=\"My StudentName\" \\\n    scioer/java-resource:latest\n```\n\n### Wiki\n\nThe wiki can be found at http://localhost:3000\n\nUsername: admin@example.com\nPassword: password\n\n\n### Jupyter Notebooks\n\nThe jupyter notebooks site can be found at http://localhost:8888\n\nWhen you go to the jupyter notebooks page all of the builtin notebooks can be found in the `builtin` folder.\nAll of the notebooks that are in the `builtin` folder are provided by the container, they can be modified and the modifications will be persistent as long as the same volume mount is used.\nIf the volume is replaced then all the builtin notebooks will be replaced with fresh copies.\nAll of the notebooks that are created will be saved in the `course/jupyter/notebooks` directory.\n\nAny user settings that are changed (such as dark mode) will also be persistent.\n\n### Java docs\n\nThe javadocs for Java 11 have been built into this image and can be accessed at http://localhost:8000.\n\n### ssh to work on files using external editor\n\nThis container runs an ssh daemon and exposes port 22.\nYou can ssh into this container by running `ssh -p 2222 student@127.0.0.1`.\nYou do not need a password to ssh into the container, but the password is `password` for any command that needs it.\n\nAny files that are edited should be put in the `/course/work` directory to be saved to the volume mount.\n\n\nAlthough you are able to ssh into this container, it is preferred to attach additional terminals to the container directly.\n```bash\n$ docker exec -it container_name bash\n```\n\nThe name of the container can be gotten by running `docker ps` or it can be specified when the container is created by passing the `--name my_name` flag to `docker run`.\n\n## Customization of this container\n\n### How to configure custom wiki content\n\nAny built in content to be included in the wiki must be added manually.\nUnfortunately there is not currently an easy mechanism to automatically load markdown files from a directory into the wiki.\n\nTo Load custom content into the container the following process is suggested:\n\n1. Start the container _with_ the volume mount `docker run -it --rm -v \"$(pwd)/course:/course\" scioer/java-resource:latest`\n2. Go to http://localhost:3000 and create all of the desired wiki pages and configurations\n3. Exit the container\n4. Replace the `database.sqlite` file with the new one from `course/wiki/database.sqlite`\n5. Rebuild the container using the docker build command\n\nAlternatively if there is a large number of wiki pages to import that already exist as markdown files an alternative process can be used.\n\n1. Create the folder `course/wiki/files`\n2. Place all of your markdown files to be imported into that folder, the files should have the following front matter so they can be imported with the desired title, tags, and if it should be published or not. Subfolder can also be used\n```\n---\ntitle: Untitled Page\ndescription:\nisPublished: 1\ntags: coma, separated, list\n---\n```\n3. Start the container _with_ the volume mount `docker run -it --rm -v \"$(pwd)/course:/course\" scioer/java-resources:latest`\n4. Go to http://localhost:3000 and navigate to Administration \u003e Storage \u003e Local File System\n5. Enable local file storage, set the Path to `/course/wiki/files`\n6. Scroll to the bottom of the page and run `Import Everything`, now all of the wiki pages should be imported\n7. Exit the container\n8. Replace the `database.sqlite` file with the new one from `course/wiki/database.sqlite`\n9. Rebuild the container using the docker build command\n\n### How to configure builtin jupyter notebooks\n\nAdding built in jupyter notebooks to the container is simpler.\nPlace all the desired files in the `builtinNotebooks` folder, then build the image.\n\n### Startup message\n\nTo change the startup message that gets printed when the container starts edit the text in `motd.txt` to include the desired text\n\n## Extending this container with custom container\n\nThis image is designed to be used as a base image for the [scioer-builder](https://pypi.org/project/scioer-builder/)\nto generate a custom image for a course.\n\n## Software License\n\nThis project is licensed under the GPLv3 license.\nThis is a strong copy left license that requires that any derivative work is released under the same license.\nThis was selected because the objective of this project is to provide a tool that can be used by others because it is something that is useful to us.\nWe believe that carrying that forward will be beneficial to the community.\n\n#### TODO:\n\nPreset initialization API Key (valid until Jan 23, 2025):\n\n```\neyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGkiOjEsImdycCI6MSwiaWF0IjoxNjQyOTcyMTk5LCJleHAiOjE3Mzc2NDQ5OTksImF1ZCI6InVybjp3aWtpLmpzIiwiaXNzIjoidXJuOndpa2kuanMifQ.xkvgFfpYw2OgB0Z306YzVjOmuYzrKgt_fZLXetA0ThoAgHNH1imou2YCh-JBXSBCILbuYvfWMSwOhf5jAMKT7O1QJNMhs5W0Ls7Cj5tdlOgg-ufMZaLH8X2UQzkD-1o3Dhpv_7hs9G8xt7qlqCz_-DwroOGUGPaGW6wrtUfylUyYh86V9eJveRJqzZXiGFY3n6Z3DuzIVZtz-DoCHMaDceSG024BFOD-oexMCnAxTpk5OalEhwucaYHS2sNCLpmwiEGHSswpiaMq9-JQasVJtQ_fZ9yU_ZZLBlc0AJs1mOENDTI6OBZ3IS709byqxEwSPnWaF_Tk7fcGnCYk-3gixA\n```\n\nThese are some of the tasks that can still be done to make it better\n\n- automatically generate an ssh keypair to be used for git\n- seed the wiki with some initial content\n- specify a specific version for jupyter\n- add bash completions for the main tools that have been installed\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsci-oer%2Fjava-resource","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsci-oer%2Fjava-resource","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsci-oer%2Fjava-resource/lists"}