{"id":2189,"date":"2025-07-07T10:31:21","date_gmt":"2025-07-07T10:31:21","guid":{"rendered":"https:\/\/interactivehpc.dk\/?p=2189"},"modified":"2025-08-12T09:00:43","modified_gmt":"2025-08-12T09:00:43","slug":"workshopoptagelse-ucloud-courses-hands-on","status":"publish","type":"post","link":"https:\/\/interactivehpc.dk\/?p=2189&lang=da","title":{"rendered":"Webinaroptagelse:  UCloud courses hands-on"},"content":{"rendered":"\n<p class=\"gp-gutenbergpro-18768\"><\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/interactivehpc.dk\/wp-content\/uploads\/2025\/08\/Workshop_recording_SUB.mp4\"><\/video><\/figure>\n\n\n\n<p class=\"gp-gutenbergpro-0f871\">In this video we will go through the process of developing a course on UCloud, using UCloud Courses \u2013 a tool for hosting and managing university courses on UCloud. Wnt to know more about this new feature, check out our <a href=\"https:\/\/interactivehpc.dk\/?p=2099\" data-type=\"post\" data-id=\"2099\">webinar recording introducing UCloud Courses.<\/a><\/p>\n\n\n\n<h6 class=\"wp-block-heading gp-gutenbergpro-993c6\"><strong>Introduction<\/strong><\/h6>\n\n\n\n<p class=\"gp-gutenbergpro-c4b15\">00:00 &#8211; Outline of the workshop agenda<br>03:10 &#8211; Introduction to the UCloud Courses concept<br>04:23 &#8211; Advantages of using UCloud Courses<br>05:56 &#8211; Outline of the steps involved in developing a UCloud Course<br>09:54 &#8211; Requesting and planning a UCloud Course<br>10:20 &#8211; Example of the planning and structuring of an existing UCloud Course<\/p>\n\n\n\n<h6 class=\"wp-block-heading gp-gutenbergpro-e255d\"><strong>Developing a UCloud Course step by step<\/strong><\/h6>\n\n\n\n<p class=\"gp-gutenbergpro-4d9e8\"><strong>Setting up the environment<\/strong><br>15:53 &#8211; Preliminary remarks<br>17:15 &#8211; Showing the existing UCloud Course that will be re-developed in the workshop<br>18:02 &#8211; Showing the UCloud-Courses GitHub repository<br>18:40 &#8211; Software requirements and -recommendations<br>20:22 &#8211; Short introduction to Git and GitHub<br>24:27 &#8211; Cloning the repository<br>25:15 &#8211; Creating a working branch<br>26:12 &#8211; What should go in the UCloud-Courses repository and what shouldn&#8217;t<br>27:24 &#8211; Installing the required dependencies<\/p>\n\n\n\n<p class=\"gp-gutenbergpro-d7f21\"><strong>Creating a new UCloud Course and modifying the templates <\/strong><br>28:00 &#8211; Creating a UCloud Course using a prepared script<br>30:31 &#8211; Walk-through of the different auto-generated files\/folders in the course folder<br>33:35 &#8211; Short introduction to Docker<br>38:15 &#8211; Modifying the Dockerfile<br>42:32 &#8211; What should go in the UCloud-Courses repository and what shouldn&#8217;t<br>45:28 &#8211; Building the Docker image locally using a prepared script<br>47:54 &#8211; Modifying the starting script<br>01:00:50 &#8211; What can, shouldn&#8217;t, and mustn&#8217;t be changed while the course is running<\/p>\n\n\n\n<p class=\"gp-gutenbergpro-37331\"><strong>Building and testing the course locally<\/strong><br>01:05:00 &#8211; Re-building the Docker image locally using a prepared script<br>01:05:25 &#8211; Running a Docker container locally using a prepared script<br>01:10:58 &#8211; Opening the JupyterLab interface on localhost<\/p>\n\n\n\n<p class=\"gp-gutenbergpro-db377\"><strong>Finalising the course app<\/strong><br>01:12:48 &#8211; Opening a pull request and requesting code review<br>01:19:44 &#8211; Testing the course app on UCloud before it&#8217;s deployed<\/p>\n\n\n\n<h6 class=\"wp-block-heading gp-gutenbergpro-1e71b\">Closing remarks<\/h6>\n\n\n\n<p class=\"gp-gutenbergpro-53a9d\">01:25:44 &#8211; Reusing\/updating an existing UCloud course<br>01:28:19 &#8211; The financial model in brief<br>01:29:38 &#8211; Useful links and resources<\/p>\n\n\n\n<p class=\"gp-gutenbergpro-e3fcf\"><\/p>\n\n\n\n<p class=\"gp-gutenbergpro-4a6e5\">UCloud-Courses GitHub repository:<br><a href=\"https:\/\/github.com\/SDU-eScience\/UCloud-Courses\">https:\/\/github.com\/SDU-eScience\/UCloud-Courses<\/a><\/p>\n\n\n\n<p class=\"gp-gutenbergpro-a6a3e\">README in the UCloud-Courses GitHub repository:<br><a href=\"https:\/\/github.com\/SDU-eScience\/UCloud-Courses\/blob\/main\/README.md\">https:\/\/github.com\/SDU-eScience\/UCloud-Courses\/blob\/main\/README.md<\/a><\/p>\n\n\n\n<p class=\"gp-gutenbergpro-b7985\">Wiki page in the UCloud-Courses GitHub repository:<br><a href=\"https:\/\/github.com\/SDU-eScience\/UCloud-Courses\/wiki\">https:\/\/github.com\/SDU-eScience\/UCloud-Courses\/wiki<\/a><\/p>\n\n\n\n<p class=\"gp-gutenbergpro-4a5f0\">The UCloud course app redeveloped in the workshop (UCloud login required):<br><a href=\"https:\/\/cloud.sdu.dk\/app\/jobs\/create?app=nlp-demo-course_147222U005\">https:\/\/cloud.sdu.dk\/app\/jobs\/create?app=nlp-demo-course_147222U005<\/a><\/p>\n\n\n\n<p class=\"gp-gutenbergpro-6ba5c\">eScience Servicedesk (point of first contact):<br><a href=\"https:\/\/support.escience.sdu.dk\/\">https:\/\/support.escience.sdu.dk\/<\/a><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this video we will go through the process of developing a course on UCloud, using UCloud Courses \u2013 a tool for hosting and managing university courses on UCloud. Wnt to know more about this new feature, check out our webinar recording introducing UCloud Courses. Introduction 00:00 &#8211; Outline of the workshop agenda03:10 &#8211; Introduction [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2181,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"gtp_columnspro_styling":"{}","gtp_paragraph_styling":"{\"6ba5c6cf-a311-46db-a643-f57d84fb9d8c\":\" .gp-gutenbergpro-6ba5c { background-position-x: 50%;\\nbackground-position-y: 50%;\\nbackground-size: cover;\\nheight: px; }\"}","gtp_heading_styling":"{\"1e71b12f-c486-4d22-8e83-497872feebbd\":\" .gp-gutenbergpro-1e71b { background-position-x: 50%;\\nbackground-position-y: 50%;\\nbackground-size: cover;\\nletter-spacing: 0px !important;\\ntext-shadow: 0px 0px 0px ;\\nfont-family:  !important; }\"}","gtp_spacer_styling":"{}","gtp_video_styling":"{}","gtp_group_styling":"{}","gtp_cover_styling":"{}","footnotes":""},"categories":[322,105,110,122,131,355],"tags":[],"class_list":["post-2189","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-applikation___da","category-interactive-hpc___da","category-supercomputing___da","category-undervisning___da","category-vejledning___da","category-webinarer-og-vejledninger-video___da"],"lang":"da","translations":{"da":2189,"en":2179},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/interactivehpc.dk\/index.php?rest_route=\/wp\/v2\/posts\/2189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/interactivehpc.dk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/interactivehpc.dk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/interactivehpc.dk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/interactivehpc.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2189"}],"version-history":[{"count":4,"href":"https:\/\/interactivehpc.dk\/index.php?rest_route=\/wp\/v2\/posts\/2189\/revisions"}],"predecessor-version":[{"id":2226,"href":"https:\/\/interactivehpc.dk\/index.php?rest_route=\/wp\/v2\/posts\/2189\/revisions\/2226"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/interactivehpc.dk\/index.php?rest_route=\/wp\/v2\/media\/2181"}],"wp:attachment":[{"href":"https:\/\/interactivehpc.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/interactivehpc.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/interactivehpc.dk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}