{"id":15078939,"url":"https://github.com/rahuldhole/openbox","last_synced_at":"2026-01-02T23:14:39.096Z","repository":{"id":255909062,"uuid":"853780829","full_name":"rahuldhole/openbox","owner":"rahuldhole","description":"Codespaces RDP connection to OpenBox for DEVaaS platforms","archived":false,"fork":false,"pushed_at":"2025-01-04T19:38:47.000Z","size":124,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T03:28:32.854Z","etag":null,"topics":["chrome","codespaces","devaas","gitpod","microsoft-edge","openbox","openshift","rdp","vdi","xrdp"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rahuldhole.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-09-07T14:16:46.000Z","updated_at":"2025-01-04T19:38:51.000Z","dependencies_parsed_at":"2024-09-07T20:14:20.414Z","dependency_job_id":"8e8bf40a-eaa7-427d-a385-0851518ea34d","html_url":"https://github.com/rahuldhole/openbox","commit_stats":{"total_commits":62,"total_committers":1,"mean_commits":62.0,"dds":0.0,"last_synced_commit":"0887b45e177c7e48ec76d0cefc13f02cc28d0283"},"previous_names":["rahuldhole/openbox"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahuldhole%2Fopenbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahuldhole%2Fopenbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahuldhole%2Fopenbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahuldhole%2Fopenbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rahuldhole","download_url":"https://codeload.github.com/rahuldhole/openbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243896215,"owners_count":20365338,"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":["chrome","codespaces","devaas","gitpod","microsoft-edge","openbox","openshift","rdp","vdi","xrdp"],"created_at":"2024-09-25T05:01:01.758Z","updated_at":"2026-01-02T23:14:39.086Z","avatar_url":"https://github.com/rahuldhole.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Openbox: Minimal Remote Desktop Environment\n\n**Setup a private remote desktop environment** with Openbox, XRDP, Kitty, Diodon, and Tailscale for secure remote access.\n\n[![Open in Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true\u0026ref=main\u0026repo=rahuldhole/openbox)\n\n**Note:** Gitpod and OpenShift currently use raw scripts. Contributions to update these to packaged solutions are welcome.\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/new#https://github.com/rahuldhole/openbox)\n\n\u003ca href=\"https://devspaces.apps.sandbox-m3.1530.p1.openshiftapps.com/#https://github.com/rahuldhole/openbox\"\u003e\n    \u003cimg src=\"https://www.svgrepo.com/show/354143/openshift.svg\" alt=\"Open in OpenShift\" width=\"25px\"/\u003e Open in OpenShift (Currently not stable)\n\u003c/a\u003e\n\n---\n\n## Free Remote Desktop Hours\n\n- **GitHub Codespaces:** 60 hours/month (2 cores) = 120 CPU hours\n- **Gitpod:** 50 hours/month\n\n**Total:** 110 hours/month (~15.7 working days at 7 hours/day)\n\n---\n\n## Sample installation for customizing your private dev container\n\n```json\n{\n  \"name\": \"Openbox\",\n  \"image\": \"mcr.microsoft.com/devcontainers/base:ubuntu\",\n  \"runArgs\": [\n    \"--device=/dev/net/tun\", // needed for Tailscale\n    \"--shm-size=2g\" // needed for browsers\n  ],\n  \"features\": {\n    \"ghcr.io/tailscale/codespace/tailscale:latest\": {},\n    \"ghcr.io/rahuldhole/openbox/xrdp:latest\": {},\n    \"ghcr.io/rahuldhole/openbox/google-chrome:latest\": {},\n    \"ghcr.io/rahuldhole/openbox/microsoft-edge:latest\": {},\n    \"ghcr.io/rahuldhole/openbox/vscode:latest\": {}\n  },\n  \"postCreateCommand\": \"/bin/bash -c 'echo \\\"vscode:vscode\\\" | sudo chpasswd'\",\n  \"postStartCommand\": \"/usr/local/sbin/xrdp-entrypoint\",\n  \"remoteUser\": \"vscode\"\n}\n```\n\n---\n\n## Steps to Connect via RDP\n\n### 1. Verify Status\n```sh\nsudo service xrdp status\n```\n\n### 2.1 Option 1: TCP Connect via Tailscale VPN\n\n```sh\nsudo tailscale status\nsudo tailscale up\n```\n\n### 2.2 Option 2: TCP Connect via SSH tunnels\n\nIf you prefer not to use Tailscale, you can tunnel XRDP traffic via Serveo.net.\n\nAdd `sshd` server feature\n\n```sh\n\"features\": {\n  \"ghcr.io/devcontainers/features/sshd:1.0.10\": {}\n}\n// this starts ssh server at port 2222\n```\n\nOn the container/machine run:\n\n`ssh -R myalias:22:localhost:2222 serveo.net`\n\nThen, from your local machine:\n\n`ssh -L 8888:localhost:3389 -J serveo.net vscode@myalias`\n\nNow connect your RDP client to `localhost:8888`\n\nRead more: [https://serveo.net/](https://serveo.net/)\n\n\n\n### 3. Connect Using RDP Client\n\n- Use the Tailscale VPN IP of the Codespaces or Gitpod instance.\n- **RDP User Credentials:**\n  - Codespaces: `vscode:vscode`\n  - Gitpod: `gitpod:gitpod`\n\n### 4. Openbox Navigation\n\n- Right-click on the blue screen to access more options.\n\n---\n\n## Openbox Shortcuts\n\n| Shortcut                      | Action                                      |\n|-------------------------------|---------------------------------------------|\n| `Alt + T`                     | Switch between windows in the current workspace |\n| `Alt + D`                     | Show or hide the desktop                   |\n| `Alt + \u003cLeft/Right Arrow\u003e`    | Switch between adjacent workspaces         |\n| `Alt + Shift + \u003cLeft/Right\u003e`  | Move current window to adjacent workspaces |\n| `Alt + \u003cNumber\u003e`              | Jump to the nth workspace (non-numpad keys)|\n\n---\n\n## Application Shortcuts\n\n| Shortcut            | Application                        |\n|---------------------|------------------------------------|\n| `Alt + Ctrl + K`    | Open Kitty terminal (`kitty`)      |\n| `Alt + Ctrl + G`    | Open Google Chrome (`--no-sandbox`)|\n| `Alt + Ctrl + E`    | Open Microsoft Edge (`--no-sandbox`)|\n| `Alt + Ctrl + V`    | Open VS Code (`code --no-sandbox .`)|\n| `Alt + V`           | Open Diodon clipboard manager     |\n\n**Note:** Customize shortcuts in `~/.config/openbox/rc.xml`.\n\n---\n\n## Warnings\n\n1. **Do not open the Codespaces repository inside RDP.**\n   - This may trigger excessive network traffic and system hangs.\n2. **Resource Usage:**\n   - 2 cores are sufficient for most development tasks.\n\n---\n\n## Troubleshooting\n\n1. In Gitpod, if Tailscale is not started:\n    ```sh\n    sudo tailscaled\n    sudo -E tailscale up --hostname \"gitpod-${GITPOD_GIT_USER_NAME// /-}-$(echo ${GITPOD_WORKSPACE_CONTEXT} | jq -r .repository.name)\"\n    ```\n\nContributions are welcome! Feel free to submit pull requests to enhance functionality or improve documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frahuldhole%2Fopenbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frahuldhole%2Fopenbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frahuldhole%2Fopenbox/lists"}