{"id":19208020,"url":"https://github.com/ubuntu/booth-demo-manager","last_synced_at":"2025-09-17T23:43:30.867Z","repository":{"id":57526664,"uuid":"80711852","full_name":"ubuntu/booth-demo-manager","owner":"ubuntu","description":"Display snap for events","archived":false,"fork":false,"pushed_at":"2017-03-20T15:51:07.000Z","size":846,"stargazers_count":4,"open_issues_count":0,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-20T16:48:45.992Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ubuntu.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}},"created_at":"2017-02-02T09:47:10.000Z","updated_at":"2022-08-26T06:11:49.000Z","dependencies_parsed_at":"2022-09-07T02:50:33.344Z","dependency_job_id":null,"html_url":"https://github.com/ubuntu/booth-demo-manager","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/ubuntu%2Fbooth-demo-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubuntu%2Fbooth-demo-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubuntu%2Fbooth-demo-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubuntu%2Fbooth-demo-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ubuntu","download_url":"https://codeload.github.com/ubuntu/booth-demo-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223831172,"owners_count":17210411,"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-11-09T13:23:51.156Z","updated_at":"2025-09-17T23:43:25.794Z","avatar_url":"https://github.com/ubuntu.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Booth Demo manager\nThis application enables managing multiple websites by piloting a webpage.\n\nServe a piloted webpage (default port being *8001*) and a pilot interface\nto control it.\n\nYou  can either switch from demo to demo, or have complex demo with multiple\npages, cycling after a defined time between them.\n\nIf you want to point out a particular page or slide of one demo, you can as\nwell easily stop the timer by clicking on a particular element.\n\n## Usage\nJust start `boot-demo-manager`, it will serve 2 web interfaces:\n* One at http://localhost:8001/ (the frontend user to display), which\nis the piloted page.\n* One at http://localhost:8001/pilot, which shows all available demos and\npages for complex demos, and enables switching display frontend between them.\n\nNote that multiple display and pilot instances are possible. They will all be\nin sync.\n\nThe port can be changed via the *-p* option.\n\n## Configuration\n\n### Detection\nConfiguration is a mix and match of base definition and autodetection (config\nshipped by some snaps). It will look for `booth-demo-manager.def` files in:\n* Code directory (the snap doesn't ship any config file though)\n* Autodetected snaps: any snap shipping a `booth-demo-manager.def` in its root\ndirectory.\n* *booth-demo-manager* snap data directory (`SNAP_DATA`) containing a `booth-demo-manager.def`.\n* Relative local path (for master only) with `booth-demo-manager.def` in root\n\nIf multiple configurations have the same demo key in a later config file layer, it\nwill override the definition in a previous one.\n\nWe can disable this detection logic, providing manually a definition file format via the *-c* option.\n\nThe path to this file can be as well defined via the *-c* option.\n\n### Definition file format\n\nThe definition file format is a yaml file.\n\n#### A single website\n```\nubuntu:\n  description: \"Ubuntu website\"\n  image: \"images/ubuntu.svg\"\n  url: https://www.ubuntu.com\n```\n- The key is an ID.\n- *description* will show off in the /pilot page\n- *image* is an optional image path for the /pilot page. This can be an absolute path, or relative to the `.def` file.\n- *url* is the url where we'll be navigated to when selecting this demo.\n\n#### A slide deck\n\n```\nubuntu-core-slides:\n  description: \"Ubuntu core slide deck presentation\"\n  time: 45\n  slides:\n    - image: \"img/slide1_preview.png\"\n      url: http://localhost:9001/slide1.svg\n    - image: \"img/slide2_preview.png\"\n      url: http://localhost:9001/slide2.svg\n    - image: \"img/slide3_preview.png\"\n      url: http://localhost:9001/slide3.svg\n```\n\nThe slide deck differs from our previous use case that it has multiple urls it can navigate to\nand will loop over them automatically.\n- The key is an ID.\n- *description* will show off in the /pilot page\n- *time* is an optional time integer in seconds which is the delay until next slide is being displayed. Default is 30 (seconds).\n- then, *slides* keyword is followed by tuples of:\n  - *image*, optional image path for the /pilot page. This can be an absolute path, or relative to the `.def` file.\n  - *url* is the url where we'll be navigated to when selecting this demo.\n\n#### Example\nHave a look at some configuration example in [`examples/booth-demo-manager.def`](./examples/booth-demo-manager.def).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubuntu%2Fbooth-demo-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fubuntu%2Fbooth-demo-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubuntu%2Fbooth-demo-manager/lists"}