Perhaps you like managing Cattle.
If you're on a Mac and use Homebrew, you can follow these steps:
bash brew install node watchman yarn
bash git clone 'https://github.com/rancher/ui' cd 'ui' ./scripts/update-dependencies
Run development server:
bash yarn start
Connect to UI at https://localhost:8000/ . The server automatically picks up file changes, restarts itself, and reloads the web browser. This is intended only for development, see below for distributing customizations.
Run development server pointed at another instance of the Rancher API
bash RANCHER="https://rancher-server" yarn start
RANCHER can also be
Rancher releases include a static copy of the UI passed in during build as a tarball. To generate that, run:
We highly suggest making customizations as an ember-cli addon rather than forking this repo, making a bunch of changes and then fighting conflicts to keep it up to date with upstream forever. ui-example-addon-machine is an example addon that adds a custom screen for a docker-machine driver. If there is no way for you to get to what you want to change from an addon, PRs to this repo that add generalized hooks so that you can are accepted.
Rancher UI uses Ember CLI Pods for its project structure. We suggest reading the documentation if you have questions about the layout of the Rancher UI project.
Rancher UI uses Ember Engines to break the deliverable code into smaller chunks and only deliver what the end-user will need. When adding new components to an engine ensure you are only re-exporting the component back out of the engine if it is required and can not be placed in the
sharedin-repo addon. When adding a new service or dependency that is required by an engine ensure that you pass the dependencies to the engine, more info can be found here
sharedin-repo addon is a central repository of shared components for use with both the main app and any in-repo engine.
Rancher UI supports localization via translations files. You can swap translations live by utilizing the Language Picker located in the footer. If you would like to add your own translations files follow the directions below.
en-us.yamlfile located in
/translationsfolder and rename using the
/.yamlformat (Supported Locales)
languageNamevalue as this is what will be displayed in the language picker in the UI
SHFT + Lwhen not focused in an input or text area to toggle the languages between your currently selected language and a special none language to see what key values are missing
If you want to customize the UI, re-packaging all of Rancher to distribute the UI is possible but not terribly convenient. Instead you can change Cattle to load the UI source from a remote web server:
./scripts/build-static -l -c 'your-server.com'
./dist/static/latest2so that it's available at https://your-server.com/latest2
yarn global add ember-cli
yarn lint:js -- --fix
ember test --server
Please submit bugs and issues to rancher/rancher with a title starting with
Or just click here to create a new issue.
Copyright (c) 2014-2019 Rancher Labs, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.