{"id":13574024,"url":"https://github.com/vitalets/docker-tizen-webos-sdk","last_synced_at":"2025-04-23T02:35:40.689Z","repository":{"id":44150862,"uuid":"284286977","full_name":"vitalets/docker-tizen-webos-sdk","owner":"vitalets","description":"Docker image with Samsung Tizen CLI and LG webOS CLI","archived":false,"fork":false,"pushed_at":"2024-02-01T09:30:30.000Z","size":58134,"stargazers_count":109,"open_issues_count":3,"forks_count":32,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-29T21:14:09.252Z","etag":null,"topics":[],"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/vitalets.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},"funding":{"github":["vitalets"]}},"created_at":"2020-08-01T15:30:33.000Z","updated_at":"2025-03-07T18:59:57.000Z","dependencies_parsed_at":"2024-01-05T20:50:30.780Z","dependency_job_id":"459ddd1b-cb0c-4657-a1b5-07ad42272f14","html_url":"https://github.com/vitalets/docker-tizen-webos-sdk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalets%2Fdocker-tizen-webos-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalets%2Fdocker-tizen-webos-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalets%2Fdocker-tizen-webos-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitalets%2Fdocker-tizen-webos-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vitalets","download_url":"https://codeload.github.com/vitalets/docker-tizen-webos-sdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250358754,"owners_count":21417542,"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":[],"created_at":"2024-08-01T15:00:45.260Z","updated_at":"2025-04-23T02:35:40.669Z","avatar_url":"https://github.com/vitalets.png","language":"Dockerfile","funding_links":["https://github.com/sponsors/vitalets"],"categories":["Dockerfile","Misc"],"sub_categories":["Google Chromecast"],"readme":"# docker-tizen-webos-sdk\nDocker image with [Samsung Tizen CLI](https://developer.samsung.com/smarttv/develop/getting-started/using-sdk/command-line-interface.html)\nand [LG webOS CLI](http://webostv.developer.lge.com/sdk/tools/using-webos-tv-cli/).\nAllows to develop, build, launch and debug Smart TV apps without installing Tizen Studio and webOS SDK.\nAvailable CLI commands:\n* `tizen`\n* `sdb`\n* `ares-*`\n\n## Contents\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n\n- [Requirements](#requirements)\n- [Usage](#usage)\n- [Samsung Tizen TV CLI](#samsung-tizen-tv-cli)\n  - [Get info about TV](#get-info-about-tv)\n  - [Connect to TV](#connect-to-tv)\n  - [List connected TVs](#list-connected-tvs)\n  - [Get TV capabilities](#get-tv-capabilities)\n  - [Get list of installed apps](#get-list-of-installed-apps)\n  - [Launch app on TV](#launch-app-on-tv)\n  - [Pack app](#pack-app)\n  - [Install app](#install-app)\n  - [Debug app](#debug-app)\n  - [Close app](#close-app)\n  - [Uninstall app](#uninstall-app)\n  - [Pack, install and launch app on TV in single command](#pack-install-and-launch-app-on-tv-in-single-command)\n- [LG WebOS TV CLI](#lg-webos-tv-cli)\n- [Changelog](#changelog)\n    - [3.0](#30)\n    - [2.0](#20)\n    - [1.0](#10)\n- [Development](#development)\n  - [Build container](#build-container)\n      - [Slow way](#slow-way)\n      - [Fast way](#fast-way)\n  - [Update webOS sdk](#update-webos-sdk)\n  - [Test](#test)\n  - [Debug](#debug)\n  - [Generate TOC](#generate-toc)\n  - [Publish to Docker Hub](#publish-to-docker-hub)\n  - [Remove unused images](#remove-unused-images)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Requirements\nThe only requirement is docker:\n* for Mac/Windows - [Docker Desktop](https://www.docker.com/products/docker-desktop)\n* for Linux - [Docker Engine](https://docs.docker.com/engine/install/)\n\n## Usage\nRun `bash` session inside container:\n```\ndocker run -it --rm -v tvdata:/home/developer vitalets/tizen-webos-sdk bash\n```\n\u003e Named volume `tvdata` is important for saving your data between container runs.\n\nNow you have Ubuntu with `sdb`, `tizen`, and `ares-*` commands available:\n```\n~# tizen version\nTizen CLI 2.5.21\n\n~# sdb version\nSmart Development Bridge version 4.2.12\n\n~# ares-setup-device --version\nVersion: 1.10.4-j1703-k\n```\n\nContainer is intentionally started under the `root` user. Starting under non-root user may cause [permissions issue](https://github.com/moby/moby/issues/2259) when attaching volumes. If you have problems with runnig tizen `package-manager` try to run container under `developer` user (see [#6](https://github.com/vitalets/docker-tizen-webos-sdk/issues/6)):\n```bash\ndocker run --user developer -it --rm -v tvdata:/home/developer vitalets/tizen-webos-sdk bash\n```\n\n## Samsung Tizen TV CLI\n### Get info about TV\nIf you have Samsung TV in the same network as your host machine,\nyou can get TV info from inside the container:\n```\ncurl http://TV_IP:8001/api/v2/\n```\n\u003e You may be asked on TV to allow external connections (once).\n\n\u003cdetails\u003e\n \u003csummary\u003eExample Output\u003c/summary\u003e\n\n    {\n       \"device\":{\n          \"FrameTVSupport\":\"false\",\n          \"GamePadSupport\":\"true\",\n          \"ImeSyncedSupport\":\"true\",\n          \"Language\":\"ru_RU\",\n          \"OS\":\"Tizen\",\n          \"PowerState\":\"on\",\n          \"TokenAuthSupport\":\"true\",\n          \"VoiceSupport\":\"false\",\n          \"WallScreenRatio\":\"0\",\n          \"WallService\":\"false\",\n          \"countryCode\":\"RU\",\n          \"description\":\"Samsung DTV RCR\",\n          \"developerIP\":\"192.168.1.64\",\n          \"developerMode\":\"1\",\n          \"duid\":\"uuid:88d68ee4-cffc-47c4-894f-6d46ca51333a\",\n          \"firmwareVersion\":\"Unknown\",\n          \"id\":\"uuid:88d68ee4-cffc-47c4-894f-6d46ca51333a\",\n          \"ip\":\"192.168.1.66\",\n          \"model\":\"19_MUSEL_UHD\",\n          \"modelName\":\"UE43RU7400UXRU\",\n          \"name\":\"[TV] Samsung 7 Series (43)\",\n          \"networkType\":\"wireless\",\n          \"resolution\":\"3840x2160\",\n          \"smartHubAgreement\":\"true\",\n          \"ssid\":\"94:4a:0c:86:c7:00\",\n          \"type\":\"Samsung SmartTV\",\n          \"udn\":\"uuid:88d68ee4-cffc-47c4-894f-6d46ca51333a\",\n          \"wifiMac\":\"B8:BC:5B:93:7E:D2\"\n       },\n       \"id\":\"uuid:88d68ee4-cffc-47c4-894f-6d46ca51333a\",\n       \"isSupport\":\"{\\\"DMP_DRM_PLAYREADY\\\":\\\"false\\\",\\\"DMP_DRM_WIDEVINE\\\":\\\"false\\\",\\\"DMP_available\\\":\\\"true\\\",\\\"EDEN_available\\\":\\\"true\\\",\\\"FrameTVSupport\\\":\\\"false\\\",\\\"ImeSyncedSupport\\\":\\\"true\\\",\\\"TokenAuthSupport\\\":\\\"true\\\",\\\"remote_available\\\":\\\"true\\\",\\\"remote_fourDirections\\\":\\\"true\\\",\\\"remote_touchPad\\\":\\\"true\\\",\\\"remote_voiceControl\\\":\\\"false\\\"}\\n\",\n       \"name\":\"[TV] Samsung 7 Series (43)\",\n       \"remote\":\"1.0\",\n       \"type\":\"Samsung SmartTV\",\n       \"uri\":\"http://192.168.1.66:8001/api/v2/\",\n       \"version\":\"2.0.25\"\n    }\n\u003c/details\u003e\n\n### Connect to TV\nBefore running any `tizen` / `sdb` command you should connect to TV.\nPlease ensure that TV is in [Developer Mode](https://developer.samsung.com/smarttv/develop/getting-started/using-sdk/tv-device.html)\nand Developer IP equals to your host IP (check `developerMode` and `developerIP` in curl response).\n```bash\n$ sdb connect 192.168.1.66\n```\nOutput:\n```\n* Server is not running. Start it now on port 26099 *\n* Server has started successfully *\nconnecting to 192.168.1.66:26101 ...\nconnected to 192.168.1.66:26101\n```\n\n### List connected TVs\n```\n$ sdb devices\n```\nOutput:\n```\nList of devices attached\n192.168.1.66:26101      device          UE43RU7400UXRU\n```\n\n### Get TV capabilities\n```\n$ sdb -s 192.168.1.66 capability\n```\nOutput:\n```\nsecure_protocol:enabled\nintershell_support:disabled\nfilesync_support:pushpull\n...\n```\n\n### Get list of installed apps\n```\n$ sdb -s 192.168.1.66 shell 0 applist\n```\nOutput:\n```\nApplication List for user 5001\nUser's Application\nName               AppID\n=================================================\n'HdmiCec'         'org.tizen.hdmicec'\n'automation-app'  'org.tizen.automation-app'\n...\n```\n### Launch app on TV\n```\n$ tizen run -s 192.168.1.66:26101 -p 9Ur5IzDKqV.TizenYouTube\n```\nOutput:\n```\nLaunching the Tizen application...\n--------------------\nPlatform log view\n--------------------\n... successfully launched pid = 1656 with debug 0\nTizen application is successfully launched.\n```\nor\n```\n$ sdb -s 192.168.1.66:26101 shell 0 was_execute 9Ur5IzDKqV.TizenYouTube\n```\n\n### Pack app\nSample developer certificate is included, so you can pack your app without any setup (for development).\nAuthor.p12 / distributor.p12 password is `developer`.\nRun container with mounting app source `./src` into `/app`:\n```\ndocker run -it --rm -v ./src:/app -v tvdata:/home/developer vitalets/tizen-webos-sdk bash\n```\nCreate `wgt` package:\n```\ntizen package -t wgt -o /home/developer -- /app\n```\nOutput:\n```\nThe active profile is used for signing. If you want to sign with other profile, please use '--sign' option.\nAuthor certficate: /home/developer/author.p12\nDistributor1 certificate : /home/developer/tizen-studio/tools/certificate-generator/certificates/distributor/tizen-distributor-signer.p12\nExcludes File Pattern: {.manifest.tmp, .delta.lst}\nIgnore File: /app/.manifest.tmp\nPackage File Location: /home/developer/MyTvApp.wgt\n```\n\n### Install app\n```\n$ tizen install -s 192.168.1.66:26101 --name MyTvApp.wgt -- /home/developer\n```\nOutput:\n```\nTransferring the package...\nTransferred the package: /home/developer/MyTvApp.wgt -\u003e /home/owner/share/tmp/sdk_tools/tmp\nInstalling the package...\n--------------------\nPlatform log view\n--------------------\ninstall TESTABCDEF.MyTvApp\npackage_path /home/owner/share/tmp/sdk_tools/tmp/MyTvApp.wgt\nwas_install_app return WAS_TRUE\napp_id[TESTABCDEF.MyTvApp] install start\n...\napp_id[TESTABCDEF.MyTvApp] install completed\nspend time for wascmd is [1898]ms\ncmd_ret:0\nInstalled the package: Id(TESTABCDEF.MyTvApp)\nTizen application is successfully installed.\nTotal time: 00:00:02.895\n```\n\u003e You may need to rename wgt before installing\n\u003e because `tizen install` does not work properly with spaces and non-latin symbols in wgt filename\n\n### Debug app\nLaunch app in debug mode:\n```\n$ sdb -s 192.168.1.66:26101 shell 0 debug TESTABCDEF.MyTvApp\n```\nOutput:\n```\n... successfully launched pid = 12915 with debug 1 port: 34541\n```\nThen open in chrome url `http://{TV_IP}:{PORT}` using port from previous command.\n\n### Close app\n```\n$ sdb -s 192.168.1.66:26101 shell 0 kill TESTABCDEF\n```\nOutput:\n```\nPkgid: TESTABCDEF is Terminated\nspend time for pkgcmd is [246]ms\n```\n\u003e Note using only `packageId` instead of full `appId`.\n\n### Uninstall app\n```\n$ tizen uninstall -s 192.168.1.66:26101 -p TESTABCDEF.MyTvApp\n```\nOutput:\n```\n--------------------\nPlatform log view\n--------------------\nuninstall TESTABCDEF.MyTvApp\napp_id[TESTABCDEF.MyTvApp] uninstall start\n...\napp_id[TESTABCDEF.MyTvApp] uninstall completed\nspend time for wascmd is [2027]ms\ncmd_ret:0\nTotal time: 00:00:02.703\n```\n\n### Pack, install and launch app on TV in single command\nApp sources are in `./src`.\nThe following env variables are used:\n- `TV_IP=192.168.1.66`\n- `APP_ID=TESTABCDEF.MyTvApp` (from config.xml)\n- `APP_NAME=\"My TV App\"` (from config.xml)\n```\ndocker run -it --rm \\\n  -e TV_IP=192.168.1.66 \\\n  -e APP_ID=TESTABCDEF.MyTvApp \\\n  -e APP_NAME=\"My TV App\" \\\n  -v tvdata:/home/developer\n  -v ./src:/app \\\n  vitalets/tizen-webos-sdk /bin/bash -c '\\\n  tizen package -t wgt -o . -- /app \\\n  \u0026\u0026 mv \"$APP_NAME.wgt\" app.wgt \\\n  \u0026\u0026 sdb connect $TV_IP \\\n  \u0026\u0026 tizen install -s $TV_IP:26101 --name app.wgt -- . \\\n  \u0026\u0026 tizen run -s $TV_IP:26101 -p $APP_ID'\n```\n\n## LG WebOS TV CLI\ntbd\n\n## Changelog\n#### 3.0\n- update Tizen Studio to 5.5\n- update webOS sdk to 1.12.4-j27\n\n#### 2.0\n- update Tizen Studio to 4.1.1\n- update webOS sdk to 1.11.0\n\n#### 1.0\nInitial version\n\n## Development\n\n### Build container\n##### Slow way\n```bash\ndocker build -t vitalets/tizen-webos-sdk .\n```\n##### Fast way\n1. Download Tizen Studio installer to `vendor` dir (change version if needed):\n    ```bash\n    TIZEN_STUDIO_VERSION=5.5\n    wget http://download.tizen.org/sdk/Installer/tizen-studio_${TIZEN_STUDIO_VERSION}/web-cli_Tizen_Studio_${TIZEN_STUDIO_VERSION}_ubuntu-64.bin \\\n    -O vendor/web-cli_Tizen_Studio_${TIZEN_STUDIO_VERSION}_ubuntu-64.bin\n    ```\n\n2. Build container using downloaded Tizen Studio installer (change version if needed):\n    ```bash\n    TIZEN_STUDIO_VERSION=5.5\n    docker run -d --rm --name nginx-temp -p 8080:80 -v $(pwd)/vendor:/usr/share/nginx/html:ro nginx \\\n    \u0026\u0026 docker build -t vitalets/tizen-webos-sdk . \\\n      --build-arg TIZEN_STUDIO_URL=http://172.17.0.1:8080/web-cli_Tizen_Studio_${TIZEN_STUDIO_VERSION}_ubuntu-64.bin \\\n    ; docker stop nginx-temp\n    ```\n\n### Update webOS sdk\n1. Download [latest installer for linux](https://webostv.developer.lge.com/develop/tools/cli-installation) and move it to `vendor` folder\n2. In `Dockerfile` change `WEBOS_CLI_VERSION` to corresponding version\n3. Build docker image\n\n### Test\n```bash\n./test.sh\n```\n\n### Debug\n```\ndocker run -it --rm --platform linux/amd64 -v /home/developer vitalets/tizen-webos-sdk bash\n```\nAnd check sdk commands, e.g.:\n```\ntizen version\n# or\nares-setup-device --version\n```\n\n### Generate TOC\n```\ndocker run --rm -it -v $(pwd):/usr/src jorgeandrada/doctoc --github README.md\n```\n\n### Publish to Docker Hub\n1. Check [existing tags](https://hub.docker.com/repository/docker/vitalets/tizen-webos-sdk/tags?page=1\u0026ordering=last_updated) on docker hub.\n2. Set new tag and push to registry:\n```bash\nTAG=x.x\ndocker tag vitalets/tizen-webos-sdk:latest vitalets/tizen-webos-sdk:$TAG\ndocker push vitalets/tizen-webos-sdk:$TAG\n```\n\n### Remove unused images\n```bash\ndocker rmi $(docker images --filter \"dangling=true\" -q --no-trunc)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitalets%2Fdocker-tizen-webos-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvitalets%2Fdocker-tizen-webos-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitalets%2Fdocker-tizen-webos-sdk/lists"}