chore: description, inspiration and why
This commit is contained in:
parent
a1781ee739
commit
f9dbda600e
136
README.md
136
README.md
@ -2,45 +2,147 @@
|
|||||||
|
|
||||||
<img style="margin-top: 1em;width: 500px;border: 0" alt="Fork me on GitHub" src="logo/zterton.svg?sanitize=true">
|
<img style="margin-top: 1em;width: 500px;border: 0" alt="Fork me on GitHub" src="logo/zterton.svg?sanitize=true">
|
||||||
|
|
||||||
## WebServices and Monitoring for Clouds
|
## WebServices and Clouds Monitoring
|
||||||
|
|
||||||
This was created to:
|
This was created to play and sync different roles:
|
||||||
|
|
||||||
|
### As WebServer
|
||||||
|
|
||||||
|
- Run several webservers with different settings at once
|
||||||
|
- Handle pre-configured routes for requests (GET/POST)
|
||||||
|
- Use SSL for HTTPS webservers
|
||||||
|
- Serve web client frontend applications and provide them sign-on mechanism
|
||||||
|
- Run a websever with templates (Tera) multi-language and style customized
|
||||||
|
- Run as a File server from a preconfigured directory
|
||||||
|
- Implement authenticated files upload (backend & frontend via templates)
|
||||||
|
|
||||||
|
### As Multilanguage server
|
||||||
|
|
||||||
|
- Allow languages settings for request responses
|
||||||
|
- Language autosense for data definition
|
||||||
|
|
||||||
|
### As DataServer
|
||||||
|
|
||||||
|
- Manage Data sets from or to (json,yaml,toml)
|
||||||
|
- Use several alternatives as data store (in memory, key-value)
|
||||||
|
- Simple data caching or preload
|
||||||
|
- Use async GraphQL or API mode to handle data requests
|
||||||
|
|
||||||
|
### As Authentication / Authorization server
|
||||||
|
|
||||||
|
- Manage JSON Web Tokens [JWT](https://en.wikipedia.org/wiki/JSON_Web_Token)
|
||||||
|
- Include simple authentication and user authorization policies. (casbin)
|
||||||
|
- Handle User login/logout with several Data store
|
||||||
|
- Manage Sessions and profiles in key-value storage
|
||||||
|
- Able to encrypt/decrypt data
|
||||||
|
|
||||||
|
### As Customizable server
|
||||||
|
|
||||||
|
- Declare from config and enviroment files: resources path, settings, etc
|
||||||
|
- Run several tasks in Async mode, with customizable running time
|
||||||
|
- Use modules (with data and resources) to configure services
|
||||||
|
- Use several running services level: basic,development
|
||||||
|
- Simple license and versioning
|
||||||
|
|
||||||
|
## As Monitor and Supervision server
|
||||||
|
|
||||||
|
- Scan Clouds setting to create a global info with current status periodically
|
||||||
|
- Watch and monitor declared Cloud services status and apply configured custom rules
|
||||||
|
|
||||||
|
## Why
|
||||||
|
|
||||||
|
To explore Rust programming language excelence for backend services, handle web requests with dynamic responses, resources access, data sources, etc.
|
||||||
|
|
||||||
|
[ZTerton](/LibreCloud/ZTerton) code relies on [LibreCloud Libraries](LibreCloud) with different funcionalities for backend developments, so it feeds libraries to reuse code as much as it is possible, by follwing priciple of: <i>to make good programs use the very best libraries</i>.
|
||||||
|
|
||||||
|
To elevate all [CloudMandala(/LibreCloud/CloudMandala)] definitions, settings and management to a next level:
|
||||||
|
|
||||||
|
- A way to collect Cloud settings for frontend web client to create Cloud dashboards
|
||||||
|
- A Cloud resources state watcher with preconfigured rules to apply according or in response to predictable states
|
||||||
|
|
||||||
|
## Inspiration
|
||||||
|
|
||||||
|
[Terton](https://en.wikipedia.org/wiki/Tert%C3%B6n) is a term within Tibetan Buddhism meaning a person who is a discoverer of ancient hidden texts or [terma](https://en.wikipedia.org/wiki/Terma_(religion)). The Termas are sometimes objects like statues, and can also exist as dharma texts and experiences. Tertöns discover the texts at the right time and place.
|
||||||
|
|
||||||
|
[ZTerton](/LibreCloud/ZTerton) was conceived as a __Bridge__ (image in logo) to achive latest **Z** [termas](https://en.wikipedia.org/wiki/Terma_(religion)) as resources or data from __sources of truth__.
|
||||||
|
|
||||||
|
|
||||||
## Requirements for build
|
## Build
|
||||||
|
|
||||||
## Build from source
|
Build is automated in [Rlung](/) repository as a CD/CI in [LibreCloud](/librecloud) Cloud:
|
||||||
|
|
||||||
|
- Release is build upon request
|
||||||
|
- Binaries for some platforms are build and published as release attachments
|
||||||
|
|
||||||
|
### Requirements for build
|
||||||
|
|
||||||
|
- Rust infraestructure for Linux or MacOs platforms
|
||||||
|
- JQ, YQ as tools to handle json and yaml
|
||||||
|
|
||||||
|
### Build from source
|
||||||
|
|
||||||
- Clone this repository and go to folder:
|
- Clone this repository and go to folder:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone
|
git clone https://rlung.librecloud.online/LibreCloud/ZTerton zterton
|
||||||
cd upclapi
|
cd zterton
|
||||||
```
|
```
|
||||||
|
|
||||||
- Build:
|
- Build:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cargo build
|
cargo build --release
|
||||||
```
|
```
|
||||||
|
|
||||||
- Install ():
|
- Install ():
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
copy target/release/zterton /usr/local/bin
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Run examples
|
## Running
|
||||||
|
|
||||||
|
Several components are need it, due to [ZTerton](/LibreCloud/ZTerton) modularity and configurability, a lot of features and funcionalities can be set, enable, extended, etc.
|
||||||
|
|
||||||
|
In some specific cases like: data sources, data storage, graphql, etc some rust coding is need it.
|
||||||
|
|
||||||
|
### Resources
|
||||||
|
|
||||||
|
- Home
|
||||||
|
- html
|
||||||
|
- data
|
||||||
|
- languages
|
||||||
|
- modules
|
||||||
|
|
||||||
|
### Configuration
|
||||||
|
|
||||||
|
- File **config.toml**
|
||||||
|
|
||||||
|
### Environment
|
||||||
|
|
||||||
|
- File **env**
|
||||||
|
|
||||||
|
Use to preset settings:
|
||||||
|
|
||||||
|
| Arg | Env. var |
|
||||||
|
|---|---|
|
||||||
|
|
||||||
|
## Running as a service
|
||||||
|
|
||||||
|
### Container settings
|
||||||
|
|
||||||
|
### Run examples
|
||||||
|
|
||||||
Use evironment variables like this:
|
Use evironment variables like this:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
```
|
```
|
||||||
|
|
||||||
If creadentials are not found, this message will be displayed:
|
|
||||||
|
|
||||||
```txt
|
```txt
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Optionals
|
||||||
|
|
||||||
As an option it is possible to encrypt sensitive informations like:
|
As an option it is possible to encrypt sensitive informations like:
|
||||||
|
|
||||||
- Credentials (username/password)
|
- Credentials (username/password)
|
||||||
@ -57,23 +159,13 @@ As an option it is possible to encrypt sensitive informations like:
|
|||||||
|
|
||||||
- That's all! 🎉
|
- That's all! 🎉
|
||||||
|
|
||||||
## YAML Config Example
|
#### YAML Config Example
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Environment
|
#### Coders and encoders
|
||||||
|
|
||||||
Main vars:
|
|
||||||
|
|
||||||
|
|
||||||
Use to preset settings:
|
|
||||||
|
|
||||||
| Arg | Env. var |
|
|
||||||
|---|---|
|
|
||||||
|
|
||||||
## Coders and encoders
|
|
||||||
|
|
||||||
It is possible to encrypt sensitive informations like:
|
It is possible to encrypt sensitive informations like:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user