{"id":15007386,"url":"https://github.com/rawsanj/kasm-cloud-workspace","last_synced_at":"2026-03-13T09:34:51.786Z","repository":{"id":213142988,"uuid":"731958411","full_name":"RawSanj/kasm-cloud-workspace","owner":"RawSanj","description":"KASM Workspace on Oracle Cloud - Ampere Instance","archived":false,"fork":false,"pushed_at":"2023-12-23T15:21:44.000Z","size":497,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-08T18:48:35.001Z","etag":null,"topics":["arm","docker","docker-compose","kasm","kasm-workspaces","letsencrypt","linux-desktop","linuxserver-io","oracle-cloud","portainer","treafik"],"latest_commit_sha":null,"homepage":"https://kasm.apps.dedyn.io","language":null,"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/RawSanj.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":"2023-12-15T09:37:00.000Z","updated_at":"2024-01-10T05:32:39.000Z","dependencies_parsed_at":"2023-12-23T17:12:56.801Z","dependency_job_id":null,"html_url":"https://github.com/RawSanj/kasm-cloud-workspace","commit_stats":null,"previous_names":["rawsanj/kasm-cloud-workspace"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RawSanj%2Fkasm-cloud-workspace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RawSanj%2Fkasm-cloud-workspace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RawSanj%2Fkasm-cloud-workspace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RawSanj%2Fkasm-cloud-workspace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RawSanj","download_url":"https://codeload.github.com/RawSanj/kasm-cloud-workspace/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243190872,"owners_count":20250970,"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":["arm","docker","docker-compose","kasm","kasm-workspaces","letsencrypt","linux-desktop","linuxserver-io","oracle-cloud","portainer","treafik"],"created_at":"2024-09-24T19:09:22.532Z","updated_at":"2025-12-24T09:50:37.540Z","avatar_url":"https://github.com/RawSanj.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# kasm-cloud-workspace\n\nRun Linux Desktop on Web for FREE - [KASM Workspace](https://kasmweb.com) on Oracle\nCloud - [Ampere A1 Compute Instance](https://www.oracle.com/cloud/compute/arm).\n\n### Pre-requisite:\n\n1. Create an Account in Oracle Cloud. See [Oracle Always Free Services](https://developer.oracle.com/free.html#always-free-services).\n2. To create ARM Instance, refer [this documentation](https://docs.oracle.com/en-us/iaas/Content/Compute/References/arm.htm#create-instances).\n3. To Launch a Linux Instance in Oracle\n   Cloud, refer [this documentation](https://docs.oracle.com/en-us/iaas/Content/GSG/Reference/overviewworkflow.htm#Tutorial__Launching_Your_First_Linux_Instance).\n4. Open ports 80 and 443 to allow HTTP Traffic. Refer [opening-up-port](https://dev.to/armiedema/opening-up-port-80-and-443-for-oracle-cloud-servers-j35)\n5. Install [Docker in Ubuntu](https://docs.docker.com/engine/install/ubuntu).\n6. Note down the Public IP Address of the instance - say `140.240.180.210`\n\n\u003e **Note**:\n\u003e\n\u003e While the above pre-requisite is given to setup a Linux Instance in Oracle Cloud ARM instance, this setup will work in\n\u003e other cloud providers like AWS, GCP, Azure as well.\n\u003e\n\u003e Simply create a Linux Instance, install Docker and open HTTP Ports. \u003cbr\u003e\n\u003e Make sure to select an instance type with sufficient RAM and CPU to run multiple Linux Desktops.\n\n### Deployment Instructions:\n\n#### 1. Create a FREE Domain in https://desec.io:\n\n1. Create an account in https://desec.io\n2. Create a new Domain `YOUR_DOMAIN.dedyn.io` under https://desec.io/domains - Example: `apps.dedyn.io`\n3. Add multiple A records in `YOUR_DOMAIN.dedyn.io` and point to the Public IP Address of the instance.\n\n   | Type | Subname     | IP Address         | TTL (seconds) | Comments                                   |\n   |------|-------------|--------------------|---------------|--------------------------------------------|\n   | A    | (blank)     | `140.240.180.210`  | 3600          | points to `YOUR_DOMAIN.dedyn.io`           |\n   | A    | `*`         | `140.240.180.210`  | 3600          | points to `*.YOUR_DOMAIN.dedyn.io`         |\n   | A    | `docker`    | `140.240.180.210`  | 3600          | points to `docker.YOUR_DOMAIN.dedyn.io`    |\n   | A    | `installer` | `140.240.180.210`  | 3600          | points to `installer.YOUR_DOMAIN.dedyn.io` |\n   | A    | `proxy`     | `140.240.180.210`  | 3600          | points to `proxy.YOUR_DOMAIN.dedyn.io`     |\n   \u003e Note: For some reason the wildcard is not working and all other subname/subdomain had to be explicitly added.\n\n4. Create and note down the DESEC Token under https://desec.io/tokens - say `YOUR_DESEC_TOKEN_STRING`\n\n#### 2. Clone Repo:\n\n```shell\ngit clone git@github.com:RawSanj/kasm-cloud-workspace.git \u0026\u0026 cd kasm-cloud-workspace\n```\n\n#### 3. Setup required environment variables:\n\n```shell\n# Set desec.io token created in Step 1.4\nexport DESEC_TOKEN=\"YOUR_DESEC_TOKEN_STRING\"\n\n# Set Traefik Credentials:\nexport TRAEFIK_CREDENTIALS=$(htpasswd -nbB admin \"SuperSecretPassword\")\n\n# Set WORKING_DIR to point to cloned repo directory:\nexport WORKING_DIR=\"/path/to/kasm-cloud-workspace\"\n```\n\n#### 5. Update Traefik Configuration:\n1. Edit traefik/traefik.yml and set `YOUR_DOMAIN.dedyn.io` in `entryPoints.websecure.http.tls.domains` section and email for certificate expiry notifications from [Let's Encrypt](https://letsencrypt.org)\n   ```shell\n   # Run below command to replace exiting domain with your domain\n   sed -i 's/apps.dedyn.io/YOUR_DOMAIN.dedyn.io/g' traefik/traefik.yml\n   # Run below command to replace exiting email with your email\n   sed -i 's/ADD_EMAIL@gmail.com/YOUR_EMAIL@example.com/g' traefik/traefik.yml\n   ```\n2. Edit traefik/config.yml and set `YOUR_DOMAIN.dedyn.io` in `tls.stores.default.defaultGeneratedCert.domains` section.\n   ```shell\n   # Run below command to replace exiting domain with your domain\n   sed -i 's/apps.dedyn.io/YOUR_DOMAIN.dedyn.io/g' traefik/config.yml\n   ```\n\n#### 4. Run docker \u0026 Install KASM:\n1. Start Docker Containers:\n   ```shell\n   docker-compose up -d\n   ```\n   1. When running this for the first time, docker will download all the images and start all the containers.\n   2. [Traefik Proxy](https://traefik.io/traefik) will start the provisioning of Certificates using [DNS-01 Challenge](https://doc.traefik.io/traefik/https/acme/#dnschallenge) to enable automatic HTTPS via [Let's Encrypt](https://letsencrypt.org).    \n2. Install and Run [KASM](https://kasmweb.com):\n   1. Visit `https://installer.YOUR_DOMAIN.dedyn.io` to setup KASM credentials and Workspaces. You can add more Workspaces later via Admin UI.\n   2. This will download several Docker Containers used by KASM and the Workspaces Containers in Docker-in-Docker mode.\n   3. Once installation is completed, visit `https://kasm.YOUR_DOMAIN.dedyn.io` and login to start using KASM Workspaces.\n\n![KASM KDE Desktop](images/kasm-kde-desktop.jpg \"KASM KDE Desktop\")\n\n#### 5. Manage Docker Containers using [Portainer](https://docs.portainer.io/user/docker/dashboard) Dashboard:\nVisit `https://docker.YOUR_DOMAIN.dedyn.io` to start managing and deploying docker containers.\n![Portainer](images/portainer.jpg \"Portainer\")","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frawsanj%2Fkasm-cloud-workspace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frawsanj%2Fkasm-cloud-workspace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frawsanj%2Fkasm-cloud-workspace/lists"}