An open API service indexing awesome lists of open source software.

https://github.com/simonsobs/nextline-web

The front-end web app of Nextline
https://github.com/simonsobs/nextline-web

nextline

Last synced: 8 months ago
JSON representation

The front-end web app of Nextline

Awesome Lists containing this project

README

          

# nextline-web

[![npm](https://img.shields.io/npm/v/nextline-web)](https://www.npmjs.com/package/nextline-web)
[![Unit tests](https://github.com/simonsobs/nextline-web/actions/workflows/unit-test.yml/badge.svg)](https://github.com/simonsobs/nextline-web/actions/workflows/unit-test.yml)
[![Test Status](https://github.com/simonsobs/nextline-web/actions/workflows/type-check.yml/badge.svg)](https://github.com/simonsobs/nextline-web/actions/workflows/type-check.yml)

The front-end web app of Nextline.

_Nextline_ is a DAQ sequencer of the [Observatory Control System
(OCS)](https://github.com/simonsobs/ocs/). Nextline allows line-by-line
execution of concurrent Python scripts, which control telescopes, by multiple
users simultaneously from web browsers.

## Citation

Nextline consists of multiple packages. Please use the following DOI for [the
core package](https://github.com/simonsobs/nextline) to cite Nextline in general
unless you need to refer to a specific package.

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.11451619.svg)](https://doi.org/10.5281/zenodo.11451619)

## Screenshot

![Screenshot](screenshot.png)

## How to run the Nextline front-end web app

The section shows how to run the Nextline front-end web app. To start, you need
to know the URL of the [back-end API
server](https://github.com/simonsobs/nextline-graphql).

### As a Docker container

Docker images of the Nextline front-end web app are created as
[ghcr.io/simonsobs/nextline-web](https://github.com/simonsobs/nextline-web/pkgs/container/nextline-web).

#### Environment variables in the container

You can configure the web app in the container with these variables.

| Environment variable | Default value | Description |
| -------------------- | ----------------------- | ------------------------------------------ |
| `PUBLIC_PATH` | `/` | Path in the URL of the web app |
| `API_HTTP` | `http://localhost:8000` | URL of the GraphQL API server |
| `API_NAME` | `localhost` | Text to be shown as part of the title |
| `SEED_COLOR` | `#607D8B` | The source color (hex) of dynamic colors\* |

\*Accessible colors in light and dark modes are dynamically generated by
[Dynamic Color in Material Design](https://m3.material.io/styles/color/).

For example, if you are to run the web app at the port `8080` with the path
`/nextline/` and use the GraphQL API server at `http://localhost:5000/graphql` as the name `API 1`, you can do so with the following command.

```bash
docker run -p 8080:80 -e PUBLIC_PATH=/nextline/ -e API_HTTP=http://localhost:5000/graphql -e API_NAME="API 1" ghcr.io/simonsobs/nextline-web
```

If you are on the `localhost`, the web app is running at .