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