{"id":15360787,"url":"https://github.com/kmaehashi/xojo-docker","last_synced_at":"2026-02-06T17:03:49.352Z","repository":{"id":145042366,"uuid":"216834809","full_name":"kmaehashi/xojo-docker","owner":"kmaehashi","description":"Run Xojo on Docker","archived":false,"fork":false,"pushed_at":"2022-05-04T08:48:27.000Z","size":10,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-07-04T13:07:11.365Z","etag":null,"topics":["docker","xojo"],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","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/kmaehashi.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,"zenodo":null}},"created_at":"2019-10-22T14:31:03.000Z","updated_at":"2023-08-02T04:51:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"efc3fd49-c58d-4f42-bd9d-10ceafd16192","html_url":"https://github.com/kmaehashi/xojo-docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kmaehashi/xojo-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmaehashi%2Fxojo-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmaehashi%2Fxojo-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmaehashi%2Fxojo-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmaehashi%2Fxojo-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kmaehashi","download_url":"https://codeload.github.com/kmaehashi/xojo-docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kmaehashi%2Fxojo-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29169384,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T16:33:35.550Z","status":"ssl_error","status_checked_at":"2026-02-06T16:33:30.716Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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","xojo"],"created_at":"2024-10-01T12:51:46.688Z","updated_at":"2026-02-06T17:03:49.343Z","avatar_url":"https://github.com/kmaehashi.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Xojo on Docker\n\nDocker images to run [Xojo](https://xojo.com/) IDE and desktop apps.\nImages are hosted on [Docker Hub](https://hub.docker.com/r/kmaehashi/xojo-docker).\n\n## Usage\n\n### Via X11 Forwarding\n\nFirst connect to a Linux host running Docker with SSH X11 forwarding enabled.\n\n```sh\nssh -Y host\n```\n\nThen start the container to run Xojo IDE.\n\n```sh\ndocker run \\\n    --rm \\\n    --net host \\\n    --env DISPLAY \\\n    --volume ~/.Xauthority:/root/.Xauthority \\\n    kmaehashi/xojo-docker:xojo2022r11-ubuntu20.04\n```\n\nNotes:\n\n* `--net host`: The container shares the same network namespace as the Docker host.\n  This is mandatory to connect to a TCP port for X11 forwarding from the container, as the port only binds to `localhost` of the Docker host.\n* `--env DISPLAY`: X11 applications (i.e., Xojo IDE) use this information to know the TCP port for X11 forwarding.\n* `--volume ~/.Xauthority:/root/.Xauthority`: X11 applications inside the container use this file as the authorization cookie to the forwarded X11 server.\n\nRemote Debugger can also be run inside the container.\n\n```sh\ndocker run \\\n    --rm \\\n    --net host \\\n    --env DISPLAY \\\n    --volume ~/.Xauthority:/root/.Xauthority \\\n    kmaehashi/xojo-docker:xojo2022r11-ubuntu20.04 \\\n    \"/opt/xojo/xojo/Extras/Remote Debugger Desktop/Remote Debugger Desktop 64-Bit/Remote Debugger Desktop\"\n```\n\nTo run your application instead of the IDE, specify the application path as an argument.\nYou can use [`desktop-runtime` image](https://hub.docker.com/r/kmaehashi/xojo-desktop-runtime), which provides smaller footprint than `xojo-{VERSION}` images.\n\n```sh\ndocker run \\\n    --rm \\\n    --net host \\\n    --env DISPLAY \\\n    --volume ~/.Xauthority:/root/.Xauthority \\\n    --volume /local/path/to/app_dir:/container/path/to/app_dir \\\n    kmaehashi/xojo-desktop-runtime:ubuntu20.04 \\\n    /container/path/to/app_dir/app\n```\n\nHints:\n\n* Make sure that `xauth` command is available on the Docker host when using SSH X11 forwarding.\n* SELinux may prevent accessing `.Xauthority` from inside Docker containers.\n* Containers launched using the `docker` command line above are volatile as `--rm` option is specified.\n  Consider specifying additional volumes to keep your Xojo configuration and projects outside of the container.\n  The IDE stores preferences (including licenses) under `/root`.\n* `/opt/xojo/xojo` is a symbolic link to the current Xojo root directory (e.g., `/opt/xojo/xojo/xojo2019r2`).\n* To install additional plugins you will need a custom Dockerfile based on `xojo-VERSION` image.\n  Place plugin files (`*.xojo_plugin`) under `/opt/xojo/xojo/Plugins/`.\n\n### Headless Mode\n\nYou can run your desktop application in headless (no-display) mode for e.g. testing purposes or contiguous integration systems.\nBefore starting your application you need to source the [`headless`](desktop-runtime/headless) script, which internally configures a virtual X11 server (`Xvfb`).\n\n```sh\ndocker run \\\n    --rm \\\n    --volume /local/path/to/app_dir:/container/path/to/app_dir \\\n    kmaehashi/xojo-desktop-runtime:ubuntu20.04 \\\n    bash -c 'source /headless; /container/path/to/app_dir/app'\n```\n\nHints:\n\n* Use `System.DebugLog` method in Desktop apps to print to the standard output.\n* You can access the command line arguments via `/proc/self/cmdline`, e.g.:\n\n```xojo\nPublic Function Arguments() as String()\n  Var ret() As String\n\n  #if TargetLinux And TargetDesktop\n    Var s As TextInputStream = TextInputStream.Open(New FolderItem(\"/proc/self/cmdline\"))\n    Try\n      Var chunks() As String\n      While True\n        Var buf As String = s.Read(12)\n        If buf.Length = 0 Then Exit\n        chunks.Append(buf)\n      Wend\n      ret = String.FromArray(chunks, \"\").Split(Chr(0))\n    Finally\n      s.Close()\n    End Try\n  #endif\n\n  Return ret\nEnd Function\n```\n\n### Debug-Running Projects\n\nDebug-run your application inside the Docker container, using the project source code and Xojo IDE.\n\n```sh\ncat _EOF_ | nc -U /tmp/XojoIDE\nOpenFile(\"/path/to/project\")\nDoCommand(\"RunApp\")\n_EOF_\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkmaehashi%2Fxojo-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkmaehashi%2Fxojo-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkmaehashi%2Fxojo-docker/lists"}