Skip to content

Latest commit

 

History

709 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LINSTOR GUI

Open Source GPLv3 License Active GitHub Release GitHub Commit Support Community Forum

A web-based graphical user interface for LINBIT SDS (LINSTOR®, DRBD®, and related software).

Description

linstor-gui is a web-based graphical user interface (GUI) for LINBIT SDS. It provides a user-friendly way to create, manage, and monitor LINSTOR storage objects, such as storage pools, resource groups, resources, volumes, and snapshots. linstor-gui communicates with the LINSTOR API to perform various operations, such as creating and deleting storage pools. The GUI also provides a dashboard that displays information about the LINSTOR cluster, such as the status of nodes and volumes.

Getting Started

Installation on a LINSTOR controller node

This package does not have a standalone server; it requires the LINSTOR environment and serves files through the LINSTOR server. It should be installed on the machine running the LINSTOR controller. After installation, it can be accessed via a URL like http://192.168.123.117:3370/ui/#!/, replacing 192.168.123.117 with the IP address of your LINSTOR controller. Please choose your own Linux distribution, for Ubuntu and Debian:

sudo add-apt-repository ppa:linbit/linbit-drbd9-stack
sudo apt install linstor-gui

Running in a Docker container

docker build -t linstor-gui .

docker run \
  -p 3373:3373 \
  -e LB_LINSTOR_API_HOST=http://192.168.123.117:3370 \
  -e LB_GATEWAY_API_HOST=http://192.168.123.117:8080 \
  linstor-gui

LB_LINSTOR_API_HOST is required, LB_GATEWAY_API_HOST is optional, default is http://localhost:8080.

Running development mode on local machine(for developers)

  • npm install
  • Create a .env file in the root directory with the following variables:
# The hostname or IP address running the `linstor-gui` (optional)
VITE_HOST=127.0.0.1
# The port of the `linstor-gui` (optional)
VITE_PORT=3373
# The version of the `linstor-gui` (optional)
VITE_VERSION=DEV
# The host of the LINSTOR API
VITE_LINSTOR_API_HOST=http://192.168.123.214:3370
# The host of the LINSTOR GATEWAY API (optional)
VITE_GATEWAY_API_HOST=http://192.168.123.214:8080
# The host of the LINBIT VSAN API (optional)
VITE_HCI_VSAN_API_HOST=https://192.168.123.214
  • npm run start:dev,
  • Open your browser and navigate to http://localhost:3373

Refreshing the LINSTOR API types

src/app/apis/schema.ts is generated from a copy of the controller's OpenAPI spec, kept in src/app/apis/Linstor-Linstor-<version>.yaml. That version is the REST API version, not the LINSTOR release version (REST 1.28.0 ships with LINSTOR 1.34.x, REST 1.29.1 with 1.35.x). GET /v1/controller/version reports the running controller's value as rest_api_version, and MIN_API_VERSION gates GUI features on it.

To pick up a newer controller API:

# The spec lives in the linstor-server repo, on the release branch (not a
# feature branch, or you bake unreleased endpoints into the GUI).
cp /path/to/linstor-server/docs/rest_v1_openapi.yaml \
   src/app/apis/Linstor-Linstor-<new version>.yaml
git rm src/app/apis/Linstor-Linstor-<old version>.yaml

# Point the generator at the new file, then regenerate.
#   package.json -> scripts -> generate-api:linstor
npm run generate-api:linstor
npm run type-check

The v1 API only adds, so regenerating is usually clean. Removals do happen (the Seagate EXOS and snapshot-shipping endpoints went away in LINSTOR 1.32), so let type-check tell you what broke rather than assuming.

Prefer the generated types over hand-writing a response shape. Anything typed by hand drifts silently the next time the controller changes.

Help

To report a problem with this software or to make a feature request, open an issue within this project. For help developing or contributing to this software, contact the author. For support using the software, you can seek help within the LINBIT Community Forums. Or as a LINBIT support customer, you can open a support ticket from your LINBIT customer account.

Authors

Contributions

Contributions are welcome! Either raise and Github issue if you find a bug or create a pull request if you have a fix or new feature.

License

This project is licensed under the GPL-3.0 License - see the COPYING file for details

Acknowledgments

LINSTOR GUI is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

About

Web-Based GUI frontend for LINSTOR

Resources

Stars

45 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages