{"id":19151473,"url":"https://github.com/sc5/sc5-devicewall","last_synced_at":"2025-05-07T05:24:36.021Z","repository":{"id":24514164,"uuid":"27920017","full_name":"SC5/sc5-devicewall","owner":"SC5","description":"Device wall helps to develop web apps for multiple devices. While developing or running the apps, it can show the changes on multiple devices.","archived":false,"fork":false,"pushed_at":"2015-04-22T10:13:16.000Z","size":3495,"stargazers_count":5,"open_issues_count":0,"forks_count":4,"subscribers_count":21,"default_branch":"develop","last_synced_at":"2025-04-19T19:05:03.883Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SC5.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":"2014-12-12T12:43:56.000Z","updated_at":"2016-05-27T21:39:34.000Z","dependencies_parsed_at":"2022-08-22T22:10:32.595Z","dependency_job_id":null,"html_url":"https://github.com/SC5/sc5-devicewall","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SC5%2Fsc5-devicewall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SC5%2Fsc5-devicewall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SC5%2Fsc5-devicewall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SC5%2Fsc5-devicewall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SC5","download_url":"https://codeload.github.com/SC5/sc5-devicewall/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252819575,"owners_count":21809042,"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-09T08:14:46.782Z","updated_at":"2025-05-07T05:24:36.002Z","avatar_url":"https://github.com/SC5.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SC5 Device Wall\n[![Build Status](https://travis-ci.org/SC5/sc5-devicewall.svg?branch=master)](https://travis-ci.org/SC5/sc5-devicewall) [![dependencies](https://david-dm.org/SC5/sc5-devicewall.png)](https://david-dm.org/SC5/sc5-devicewall)\n\nDevice Wall helps developers test web applications on multiple devices at the same time.\n\n## Table of contents\n\n* [Installation](#installation)\n* [Configuration](#configuration)\n  * [Config files](#config-files)\n  * [Generated configurations](#generated-configurations)\n  * [Custom configuration files](#custom-configuration-files)\n  * [Local server configuration](#local-server-configuration)\n  * [Application configuration](#application-configuration)\n* [Building](#building)\n* [Running the Service](#Running-the-service)\n  * [Live reloading the changes](#live-reloading-the-changes)\n* [Testing](#testing)\n  * [Testing in headless environment](#testing-in-headless-environment)\n* [License](#license)\n\n## Installation\n\nIf you don't already have node.js 0.10.x or later, fetch it from\n[nodejs.org](http://www.nodejs.org/). In addition we need a few dependencies\nyou may have.\n\n    \u003e npm install -g gulp\n\nIn addition, you will need [Ruby](https://www.ruby-lang.org/en/downloads/) to use\nCompass framework for compiling SASS stylesheets into CSS and sprite sheets:\n\n    \u003e gem update --system\n    \u003e gem install bundler\n    \u003e bundle install\n\nNote: you may need to first uninstall other SASS versions than (3.2.x).\n\nInstalling the project itself is easy. Both build system dependencies and app dependencies are\ntriggered by\n\n    \u003e npm install\n\nIt actually performs a release build, too (to verify that everything is ok).\n\n## Configuration\n\nServer and Angular configurations are generated by gulp \"config\" task.\n\nGulp \"config\" task rewrites configuration files for both server and Angular app.\n\nDefault server configuration is read from npm config environments variables, see package.json.\n\n### Config files\n\nThese files are kept in version control.\n\nServer config:\n\n    config/server/config.json\nAngular application config:\n\n    config/app/config.json\n\n### Generated configurations\n\nRuntime configuration files are generated to these locations:\n\nServer configuration:\n\n    config.json\nAngular app configuration:\n\n    src/app/config.js\n\n### Custom configuration files\n\nConfigurations can be overridden with config.local.json configuration.\n\nGulp task will check these files and includes them when found.\n\n    config/server/config.local.json\n    config/app/config.local.json\n\n### Local server configuration\n\n##### proxyHost\nTo define proxy host use param eg. \"192.168.0.1\" or use false to use auto-detection\n\n    \"proxyHost\": false # proxyHost is autodetected, otherwise will be host string\n#### protocol\nTo use HTTPS or HTTP protocol with Devicewall\n\n    \"protocol\": \"https\" # https-protocol is used\n#### sslKey\nSSL certificate key path when protocol HTTPS used\n\n    \"sslKey\": \"./node_modules/browser-sync/lib/server/certs/server.key\"\n#### sslKey\nSSL certificate path when protocol HTTPS used\n\n    \"sslCert\": \"./node_modules/browser-sync/lib/server/certs/server.crt\"\n#### deviceWallAppURL\nThis URL is represents idle mode URL. Used when client jumps from testing back to idle.\n\n    \"deviceWallAppURL\": \"https://devicewall.sc5.io/client\" # clients returns from browserSync to this URL\n#### clientIdleReturnSeconds\nClient is automatically redirected back to idle mode after clientIdleReturnSeconds is exceeded\n\n    \"clientIdleReturnSeconds\": 300 # client returns from testing automatically after 300 seconds\n#### removeDeviceAfterUnusedDays\nUnused devices are removed completely after defined amount of days\n\n    \"removeDeviceAfterUnusedDays\": 30 # device removed from server after unused for 30 days\n\n### Application configuration\n\n#### connectionSetup\nConnection setup represents control panel configuration tab which is used to give different kind of settings\n\n    \"connectionsSetup\": {\n      \"enabled: true, # connection setup tab enabled\n      \"customUserAgent\": true # Custom user agent header setting enabled\n      \"client\": {\n        \"screenSaverTimeoutSeconds\": 600, # screen saver enabled after 600s\n        \"redirectToClientModeAutomatically\": false # automatic redirect disabled from main page if device detected as client\n      }\n\n#### screenSaverTimeoutSeconds\nControls the time after screen saver appears. Screen saver is supposed to keep devices displays to not burn.\n\n    \"connectionsSetup.client.screenSaverTimeoutSeconds\": 300 # Screen saver will appear after 300 seconds idle\n\n## Building\n\nThe current build compiles JS and CSS monoliths for both the debug and release builds. The big\ndifference is that the debug build supports source maps and is not minified.\n\nTo first cleanup your distribution directory and trigger **release** build\n\n    \u003e gulp clean\n    \u003e gulp\n\nTo trigger **debug** build, run gulp with a debug flag\n\n    \u003e gulp --debug\n\nTo keep gulp running and watch for changes, use e.g.\n\n    \u003e gulp watch --debug\n\nTo update your package version, you eventually want to do one of the following:\n\n    \u003e gulp bump --patch\n    \u003e gulp bump --minor\n    \u003e gulp bump --major\n    \u003e gulp bump # defaults to minor\n\n## Running the Service\n\nMost likely the normal *gulp serve* task will not suffice, and you want to run your own test\nserver, instead. The task below, will default to 'gulp serve' by default until you change it:\n\n    \u003e npm start\n    or\n    \u003e node server/server.js\n\n### Live reloading the changes\n\nLive reloading is enabled when running *gulp watch* in another window. Just change any of your\nJavaScript or SASS files to trigger reload. The reload monitors 'dist' directory and pushes the\nchanges as needed.\n\n## Testing\n\nRun tests with chromedriver:\n\n    \u003e gulp test:e2e\n\n### Testing in headless environment\n\nInstall Xvfb or similar.\n\nSimplified instructions:\n\n    \u003e sudo apt-get install xvfb\n    \u003e sudo Xvfb :10 -ac\n    \u003e export DISPLAY=:10\n    \u003e gulp test:e2e\n\n## License\n\n    The MIT License (MIT)\n\n    Copyright (c) 2014 SC5 Online Oy\n\n    Permission is hereby granted, free of charge, to any person obtaining a copy\n    of this software and associated documentation files (the \"Software\"), to deal\n    in the Software without restriction, including without limitation the rights\n    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n    copies of the Software, and to permit persons to whom the Software is\n    furnished to do so, subject to the following conditions:\n\n    The above copyright notice and this permission notice shall be included in\n    all copies or substantial portions of the Software.\n\n    THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n    THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsc5%2Fsc5-devicewall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsc5%2Fsc5-devicewall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsc5%2Fsc5-devicewall/lists"}