Metadata-Version: 2.1
Name: backend.ai-console-server
Version: 20.3.5
Summary: Backend.AI Console Server
Home-page: https://backend.ai
Author: Lablup Inc.
Author-email: devops@lablup.com
License: Proprietary
Project-URL: Documentation, https://docs.backend.ai
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: POSIX
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Environment :: No Input/Output (Daemon)
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: aiohttp (~=3.7.2)
Requires-Dist: aiohttp-cors (~=0.7)
Requires-Dist: aiohttp-session[aioredis] (~=2.9.0)
Requires-Dist: aioredis (~=1.3.1)
Requires-Dist: aiotools (>=1.0.0)
Requires-Dist: async-timeout (~=3.0)
Requires-Dist: attrs (>=20.2)
Requires-Dist: click (>=7.1)
Requires-Dist: coloredlogs (>=10.0)
Requires-Dist: jinja2 (~=2.11.2)
Requires-Dist: uvloop (~=0.14.0)
Requires-Dist: setproctitle (>=1.2.1)
Requires-Dist: toml (>=0.10.0)
Requires-Dist: backend.ai-client (~=20.3.8)
Provides-Extra: build
Requires-Dist: wheel (>=0.33.6) ; extra == 'build'
Requires-Dist: twine (>=1.14.0) ; extra == 'build'
Requires-Dist: towncrier (~=19.2.0) ; extra == 'build'
Provides-Extra: dev
Requires-Dist: pytest-sugar (>=0.9.2) ; extra == 'dev'
Provides-Extra: lint
Requires-Dist: flake8 (~=3.8.4) ; extra == 'lint'
Provides-Extra: test
Requires-Dist: pytest (~=6.1.1) ; extra == 'test'
Requires-Dist: pytest-asyncio (~=0.14.0) ; extra == 'test'
Requires-Dist: pytest-aiohttp (~=0.3.0) ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: pytest-mock (~=3.3.1) ; extra == 'test'
Requires-Dist: codecov ; extra == 'test'
Provides-Extra: typecheck
Requires-Dist: mypy (>=0.790) ; extra == 'typecheck'

# backend.ai-console-server

A minimal webapp to convert web session requests to API requests


## Installation

Prepare a Python virtualenv (Python 3.7 or higher) and a Redis server (5.0 or higher).

```console
$ git clone https://github.com/lablup/backend.ai-console-server console-server
$ cd console-server
$ pip install -U -e .
$ cp console-server.sample.conf console-server.conf
```

## Mode

If `service.mode` is set "webconsole" (the default), the console server handles
PWA-style fallbacks (e.g., serving `index.html` when there are no matching
files for the requested URL path).
The PWA must exclude `/server` and `/func` URL prefixes from its own routing
to work with the console server's web sessions and the API proxy.

If it is set "static", the console server serves the static files as-is,
without any fallbacks or hooking, while preserving the `/server` and `/func`
prefixed URLs and their functionalities.

If you want to serve console in console-server with "webconsole" mode, prepare static console source by choosing one of the followings.

### Option 1: Build console from source

Build **[backend.ai-console](https://github.com/lablup/backend.ai-console)** and copy all files under `build/bundle`
into the `src/ai/backend/console/static` directory.

### Option 2: Use pre-built console

To download and deploy console from pre-built source, do the following:

```console
git submodule init
git submodule update
cd src/ai/backend/console/static
git checkout master
git fetch
git pull
```
### Setup configuration for console-server

You don't have to write `config.toml` for the console as this console server auto-generates it on-the-fly.

Edit `console-server.conf` to match with your environment.


## Usage

```console
$ python -m ai.backend.console.server
```


