teleport/web/README.md

102 lines
2.4 KiB
Markdown
Raw Normal View History

2019-09-20 19:13:48 +00:00
# Gravitational Web Applications and Packages
This mono-repository contains the source code for the
[Teleport](https://github.com/gravitational/teleport) and
[Gravity](https://github.com/gravitational/gravity) Web UI.
The code is organized in terms of independent yarn packages which reside in
the [packages directory](https://github.com/gravitational/webapps/tree/master/packages).
## Getting Started
You can make production builds locally or you can use Docker to do that.
### Local Build
Make sure that [you have yarn installed](https://yarnpkg.com/lang/en/docs/install/#debian-stable)
on your system since this monorepo uses the yarn package manager.
Then you need download and initialize these repository dependencies.
```
$ yarn install
```
To build Teleport Web UI
```
$ yarn build-teleport
```
To build Gravity Web UI
```
$ yarn build-gravity
```
The resulting output will be in `/packages/teleport/dist/` and `/packages/gravity/dist/`
### Docker Build
To build Teleport Web UI
```
$ make teleport
```
To build Gravity Web UI
```
$ make gravity
```
## Development
To avoid having to install a dedicated Teleport or Gravity cluster,
you can use a local development server which can proxy network requests
to an existing cluster.
For example, if `https://example.com:3080/web` is the URL of your cluster UI then:
to start your local Teleport development server
```
$ yarn start-teleport --target=https://example.com:3080/web
```
or to start your local Gravity development server
```
$ yarn start-gravity --target=https://example.com:3080/web
```
This service will serve your local javascript files and proxy network
requests to the given target.
> Keep in mind that you have to use a local user because social
logins (google/github) are not supported by development server.
### Unit-Tests
We use [jest](https://jestjs.io/) as our testing framework.
To run all jest unit-tests:
```
$ yarn run test
```
To run jest in watch-mode
```
$ yarn run tdd
```
### Interactive Testing
We use [storybook](https://storybook.js.org/) for our interactive testing.
It allows us to browse our component library, view the different states of
each component, and interactively develop and test components.
To start a storybook:
```
$ yarn start storybook
```
This command will open a new browser window with storybook in it. There
you will see components from all packages so it makes it faster to work
and iterate on shared functionality.