Skip to content

Commit

Permalink
README edits
Browse files Browse the repository at this point in the history
  • Loading branch information
attipaci committed Sep 15, 2024
1 parent a4d63d2 commit 1e0898c
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 9 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Test installer
name: Installer status

on:
push:
Expand Down
41 changes: 33 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -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)

<picture>
<source srcset="resources/CfA-logo-dark.png" alt="CfA logo" media="(prefers-color-scheme: dark)"/>
Expand All @@ -9,6 +9,18 @@

# SMA-X server setup

## Table of contents

- [Introduction](#introduction)
- [Prerequisites](#prerequisites)
- [Installation](#installing)
- [Related GitHub repos](#related-repos)

------------------------------------------------------------------------------

<a name="introduction"></a>
## 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
Expand All @@ -17,13 +29,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.

<a name="prerequisites"></a>
## Prerequisites

Before you install the SMA-X server configuration, you will need to install [Redis](https://redis.io) (or one
Expand All @@ -34,19 +47,31 @@ 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
<a name="installing"></a>
## Installation

After you have installed and configured Redis (or equivalent), you can configure the Redis server for SMA-X. Simply run

```bash
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.

<a name="related-repos"></a>
## 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
Expand Down

0 comments on commit 1e0898c

Please sign in to comment.