From 3e95150f7a882736f38f45b5acb0a46f30d1846e Mon Sep 17 00:00:00 2001 From: Attila Kovacs Date: Sun, 15 Sep 2024 10:17:06 +0200 Subject: [PATCH] README edits --- .github/workflows/test.yml | 2 +- README.md | 40 ++++++++++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7b4dd8d..d1b5f70 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: Test installer +name: Installer status on: push: diff --git a/README.md b/README.md index 5c7d2e2..d94e9f3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![Test installer](https://github.com/Smithsonian/smax-server/actions/workflows/test.yml/badge.svg) +![Installer status](https://github.com/Smithsonian/smax-server/actions/workflows/test.yml/badge.svg) @@ -9,6 +9,17 @@ # SMA-X server setup +## Table of contents + + - [Introduction](#introduction) + - [Prerequisites](#prerequisites) + - [Installation](#installing) + - [Related GitHub repos](#related-repos) + + + +## Instroduction + The SMA information eXchange (SMA-X) is a high performance and versatile data sharing platform for distributed software systems. It is built around a central Redis database, and provides atomic access to structured data, including specific branches and/or leaf nodes, with associated metadadata. SMA-X was developed at the Submillimeter @@ -17,13 +28,14 @@ individual programs. SMA-X consists of a set of server-side [LUA](https://lua.org/) scripts that run on [Redis](https://redis.io) (or one of its forks / clones such as [Valkey](https://valkey.io) or [Dragonfly](https://dragonfly.io)); a set of libraries to -interface client applications; and a set of command-line tools build with them. Currently we provide client libraries +interface client applications; and a set of command-line tools built with them. Currently we provide client libraries for C/C++ and Python 3. We may provide Java and/or Rust client libraries too in the future. -This repository is for the SMA-X server configuration specifically. It contains a LUA scripts, a script to load them into -a database and a `systemd` unit file that allows to load the SMA-X scripts automatically whenever Redis is started. - +This repository is for the SMA-X server configuration specifically. It contains a LUA scripts, a shell script to load +them into a database, and a `systemd` unit file that allows to load the SMA-X scripts automatically whenever Redis is +started. + ## Prerequisites Before you install the SMA-X server configuration, you will need to install [Redis](https://redis.io) (or one @@ -34,7 +46,8 @@ After installing Redis (or equivalent), edit `/etc/redis.conf` (or equivalent) t a sample configuration file for local connections (from 127.0.0.1 only) and with logging enabled (see `redis.conf` in this repo). You may want to edit the `bind` setting to allow connections to your Redis server from your local network. -## Installing + +## Installation After you have installed and configured Redis (or equivalent), you can configure the Redis server for SMA-X. Simply run @@ -42,11 +55,22 @@ After you have installed and configured Redis (or equivalent), you can configure sudo ./install.sh ``` -It will ask you some questions on how exactly you want SMA-X to be installed and deployed. +It will ask you some questions on how exactly you want SMA-X to be installed and deployed. Optionally, you may define +an alternative installation mode as an argument to `install.sh`. The following modes are supported: -After a successful installation you may use `systemctl` to manage `redis` and the `smax-scripts` services. + - `auto`: Automatic installation and startup + - `sma` : Automatic installation and startup at the SMA + - `help`: Provides a simple help screen only. + +Additionally, you may define a couple of shell variables prior to invoking `install.sh` to guide its behavior: + - `DESTDIR` : Set the deployment root directory (default is `/usr`) + - `PREFIX` : Set a staging prefix. If `PREFIX` is defined and not empty, `install.sh` will stage only, without + starting up services (which are not yet in their final location). + +After a successful installation you may use `systemctl` to manage `redis` and the `smax-scripts` services. + ## Related GitHub repos For a C/C++ client library for SMA-X see [Smithsonian/smax-clib](https://github.com/Smithsonian/smax-clib), or for a