-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8a45fe2
commit 2e874b8
Showing
122 changed files
with
9,063 additions
and
2,265 deletions.
There are no files selected for viewing
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
== About MastroGPT | ||
|
||
xref:mastrogpt:index.adoc[MastroGPT] is a hosted service, built on top of Nuvolaris, designed to fulfill the need for a development and deployment enviroment allowing to build quickly LLM-based application and run in production with minimal effort. | ||
|
||
It provides all you need to start writing LLM-based apps in minutes and run them in production with no effort. Check xref:whats-new.adoc#mastrogpt[here] for more. | ||
|
||
== About Nuvolaris Community | ||
|
||
Nuvolaris Community is an Open Source project, released under the https://github.com/nuvolaris/nuvolaris/blob/main/LICENSE[Apache License 2.0] providing a portable and complete https://martinfowler.com/articles/serverless.html[Serverless] environment, allowing to build quickly and easily cloud-native applications. | ||
|
||
Our goal is to make Nuvolaris *ubitiquous*, allowing it to easily run a complete and portable environment that runs in every https://kubernetes.io/[Kubernetes]. | ||
|
||
Nuvolaris is based on https://openwhisk.apache.org[Apache OpenWhisk], which provides a powerful, production-ready serverless engine. | ||
|
||
However, the serverless engine is just the beginning, because a serverless environment requires a set of integrated services. | ||
|
||
Nuvolaris provides integrated with OpenWhisk several additional services such as databases, object storage, and a cron scheduler. | ||
|
||
Furthermore, we test it on many public cloud Kubernetes services and on-premises Kubernetes vendors. | ||
|
||
The platform is paired with a powerful CLI tool, `nuv`, which lets you deploy Nuvolaris quickly and easily everywhere, and perform a lot of development tasks. | ||
|
||
Our goal is to build a *complete* distribution of a serverless environment with the following features: | ||
|
||
* It is easy to install and manage. | ||
* Integrates all the key services to build applications. | ||
* It is as portable as possible to run potentially in every Kubernetes. | ||
* It is however tested regularly against a set of supported Kubernetes environments. | ||
|
||
If you want to know more about our goals, check our https://github.com/nuvolaris/nuvolaris/blob/main/docs/ROADMAP.md[**roadmap**] document. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
= Nuvolaris Community 3 beta | ||
|
||
Welcome to xref:about.adoc[Nuvolaris Community and MastroGPT] version 3.1 (still beta...). | ||
|
||
Starting points to consult this documentation: | ||
|
||
* xref:mastrogpt:index.adoc[Hosted Service MastroGPT] | ||
* xref:whats-new.adoc[What's New] | ||
* xref:tutorial:index.adoc[Tutorial to build serverless apps] | ||
* xref:development:index.adoc[Development Guide] | ||
* xref:cli:index.adoc[`nuv` the Nuvolaris CLI] | ||
* xref:quickstart.adoc[Quick start to Self-Hosting Nuvolaris] | ||
[IMPORTANT] | ||
==== | ||
Documentation is **almost** complete but there are a few parts still work in progress where the documentation may be missing or not up to date. | ||
They are marked with this icon: 🚧 that means **Work in progress** | ||
==== |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,233 @@ | ||
= Quick Start to Self Hosted Nuvolaris | ||
|
||
If you are looking for an hosted service check xref:mastrogpt:index.adoc[MastroGPT]. | ||
|
||
If you instead prefer to self host and install Nuvolaris Community go ahead reading this document. | ||
|
||
This is a quick start guide to the installation process, targetting experienced users in a hurry. | ||
|
||
It provides a high-level overview of the installation process, omitting advanced of details. | ||
The missing pieces are covered in the rest of the documentation. | ||
|
||
Of course, if this guide is not enough and things fail, you can always apply the rule: "if everything fails, read the manual". | ||
|
||
== Prerequisites | ||
|
||
Start ensuring the prerequsites are satisfied: | ||
|
||
|
||
* xref:installation:download.adoc[Download and install] nuv, the Nuvolaris CLI, picking version suitable for your environment. We support 64-bit versions of recent Windows, MacOS and major Linux distributions. | ||
|
||
* Check that nuv is correctly installed: open the terminal and write: | ||
|
||
---- | ||
nuv -info | ||
---- | ||
|
||
* Configure the services you want to enable. By default, Nuvolaris will install only the serverless engine, accessible in http with no services enabled. | ||
|
||
If you want to enable all the services, use: | ||
|
||
---- | ||
nuv config enable --all | ||
---- | ||
|
||
|
||
otherwise pick the services you want, among `--redis`, `--mongodb`, `--minio`, `--cron`, `--postgres`. Note that `--mongodb` is actually https://www.ferretdb.com/[FerretDB] and requires Postgres which is implicitly also enabled. More details xref:installation:configure.adoc[here]. | ||
|
||
Now, choose where to install Nuvolaris. | ||
|
||
Your options are: | ||
|
||
* <<locally,locally>> in your workstation; | ||
* in a Linux <<server,server>> in your intranet | ||
* in a Linux <<internet-server,server>> available on Internet | ||
* in a Kubernetes <<cluster,cluster>> in your intranet | ||
* in <<cloud-cluster,cloud>>, where you can provision a Kubernetes cluster | ||
|
||
[#locally] | ||
== Local Installation | ||
|
||
If you have a *decent* workstation (with at least 16GB of memory) running a *recent* **64-bit** operating system, you can install https://www.docker.com/products/docker-desktop/[Docker Desktop] and then install Nuvolaris in it. | ||
Once you have: | ||
|
||
. installed the CLI | ||
. configured the services | ||
. installed Docker Desktop | ||
|
||
Make sure Docker Desktop its running before the next operation. | ||
You can install Nuvolaris and its services in Docker with just this command: | ||
|
||
---- | ||
nuv setup devcluster | ||
---- | ||
|
||
Once it is installed, you can proceed to read the xref:tutorial:index.adoc[tutorial] to learn how to code with it. | ||
|
||
NOTE: | ||
At least 16GB of memory is ideal, but if you know what you're doing and can tolerate inefficiency, you can install with less using: | ||
|
||
---- | ||
export PREFL_NO_MEM_CHECK=1 | ||
export PLEFL_NO_CPU_CHECK=1 | ||
---- | ||
|
||
[#internet-server] | ||
== Internet Server Configuration | ||
|
||
If you have access to a server on the Internet, you will know its **IP address**. | ||
|
||
Many cloud providers also give you a DNS name usually derived by the IP and very hard to remember such as `ec2-12-34-56-78.us-west-2.compute.amazonaws.com`. | ||
|
||
Once you got the IP address and the DNS name, you can give to your server a bettername https://en.wikipedia.org/wiki/List_of_managed_DNS_providers[using a domain name provider]. We cannot give here precise instructions as there are many DNS providers and each has different rules to do the setup. Check with your chosen domain name provider. | ||
|
||
If you have this name, configure it and enable DNS with: | ||
|
||
---- | ||
nuv config apihost <dns-name> --tls=<email-address> | ||
---- | ||
|
||
[IMPORTANT] | ||
==== | ||
Replace the `<dns-name>` with the actual DNS name, without using prefixes like `http://` or suffixes like `:443`. Also, replace `<email-address>` with your actual email address. | ||
==== | ||
|
||
then proceed with the server installation. | ||
|
||
[#server] | ||
== Server Installation | ||
|
||
Once you got access to a Linux server with: | ||
|
||
. An IP address or DNS name, referred to as `<server>` | ||
. Passwordless access with `ssh` to a Linux user `<user>` | ||
. At least 8GB of memory and 50GB of disk space available | ||
. The user `<user>` has passwordless `sudo` rights | ||
. The firewall that allows traffic to ports 80, 443 and 6443 | ||
. **Without** any Docker or Kubernetes installed | ||
. **Without** any Web server or Web application installed | ||
|
||
then you can install Nuvolaris in it. | ||
|
||
The server can be physical or virtual. We need Kubernetes in it but the installer takes care of installing also a flavor of Kubernetes, https://k3s.io[K3S], courtesy of https://github.com/alexellis/k3sup[K3Sup]. | ||
|
||
|
||
To install Nuvolaris, first check you have access to the server with: | ||
|
||
---- | ||
ssh <user>@<server> sudo hostname | ||
---- | ||
|
||
You should see no errors and read the internal hostname of your server. | ||
|
||
If you do not receive errors, you can proceed to install Nuvolaris with this command: | ||
|
||
---- | ||
nuv setup server <server> <user> | ||
---- | ||
|
||
[IMPORTANT] | ||
==== | ||
Replace in the commands `<server>` with the address of your server, and `<user>` with the actual user to use in your server. The `<server>` can be the same as `<dns-name>` you have configured in the previous paragraph, if you did so, or simply the IP address of a server on your intranet | ||
==== | ||
|
||
Now wait until the installation completes. Once it is installed, you can proceed to read the xref:tutorial:index.adoc[tutorial] to learn how to code with it. | ||
|
||
[#cloud-cluster] | ||
== Cloud Cluster Provisioning | ||
|
||
If you have access to a cloud provider, you can set up a Kubernetes cluster in it. The Kubernetes cluster needs to satisfy certain xref:installation:prereq-cluster[prerequisites] to be able to install Nuvolaris with no issues. | ||
|
||
We provide the support to easily configure and install a compliant Kubernetes cluster for the following clouds: | ||
|
||
* <<aws, Amazon AWS>> | ||
* <<azure, Microsoft Azure>> | ||
* <<gcloud, Google Cloud>> | ||
|
||
At the end of the installation you will have available and accessible a Kubernetes Cluster able to install Nuvolaris, so proceed with a <<cluster, cluster installation>>. | ||
|
||
[#aws] | ||
=== Amazon AWS | ||
|
||
Configure and install an Amazon EKS cluster on Amazon AWS with: | ||
|
||
---- | ||
nuv config eks | ||
nuv cloud eks create | ||
---- | ||
|
||
then <<cluster, install the cluster>>. | ||
|
||
[#azure] | ||
=== Azure AKS: | ||
|
||
Configure and install an Azure AKS cluster on Microsoft Azure with: | ||
|
||
---- | ||
nuv config aks | ||
nuv cloud aks create | ||
---- | ||
|
||
then <<cluster, install the cluster>>. | ||
|
||
[#gcloud] | ||
=== Google Cloud | ||
|
||
Configure and install a Google Cloud GKE with: | ||
|
||
---- | ||
nuv config gke | ||
nuv cloud gke create | ||
---- | ||
|
||
then <<cluster, install the cluster>>. | ||
|
||
[#cluster] | ||
== Cluster Install | ||
|
||
In short, if you have access to kubernetes cluster, you can install Nuvolaris with: | ||
|
||
---- | ||
nuv setup cluster | ||
---- | ||
|
||
For a slightly longer discussion, checking prerequisites before installing, read on. | ||
|
||
=== Prerequisites to install | ||
|
||
If you have access to a Kubernetes cluster with: | ||
|
||
. Access to the `cluster-admin` role | ||
. Block storage configured as the default storage class | ||
. The `nginx-ingress` installed | ||
. Knowledge of the IP address of your `nginx-ingress` controller | ||
|
||
you can install Nuvolaris in it. You can read xref:installation:prereq-cluster.adoc[more details here]. | ||
|
||
You can get this access either by provisioning a Kubernetes cluster in <<cloud, cloud>> or getting access to it from your system administrator. | ||
|
||
Whatever the way you get access to your Kubernetes cluster, you will end up with a configuration file which is usually stored in a file named `.kube/config` in your home directory. This file will give access to the Kubernetes cluster to install Nuvolaris. | ||
|
||
=== Performing the installation | ||
|
||
To install, first, verify you have actually access to the Kubernetes cluster, by running this command: | ||
|
||
---- | ||
nuv debug kube info | ||
---- | ||
|
||
You should get information about your cluster, something like this: | ||
|
||
===== | ||
Kubernetes control plane is running at https://api.nuvolaris.osh.n9s.cc:6443 | ||
===== | ||
|
||
Now you can finally install Nuvolaris with the command: | ||
|
||
---- | ||
nuv setup cluster | ||
---- | ||
|
||
Wait until the process is complete and if there are no errors, Nuvolaris is installed and ready to go. | ||
|
||
Once it is installed, you can proceed to read the xref:tutorial:index.adoc[tutorial] to learn how to code with it. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
[#mastrogpt31] | ||
== What's new in MastroGPT (and Nuvolaris 3.1)? | ||
|
||
MastroGPT is a hosted service (also available on preises for enteprise customers) providing a number of extra features built on top of Nuvolaris in order to support easy development of LLM-based AI applications. | ||
|
||
It provides: | ||
|
||
* an administrative interface | ||
* an integrated GPT apps builder | ||
* incremental deployer | ||
* an online IDE to build applications | ||
* a set of starter application | ||
* a set of examples and demo | ||
* access to OpenAI API | ||
There are also tons of improvements in Nuvolaris under the hood to support MastroGPT. | ||
|
||
Most of the imporevements are in the development tools, however there are also performance and reliability optimizations, bug fixes and new features to support MastroGPT. | ||
|
||
[#nuvolaris3] | ||
== What's new in Nuvolaris Community 3? | ||
|
||
Nuvolaris community is a distribution of Apache Openwhisk providing availability on multiple clouds and a set of integrated services | ||
|
||
Nuvolaris itself is based on a rich operator, supporting the deployment of several services: | ||
|
||
* Publishing of static assets | ||
* https://redis.io[Redis], an in-memory key-value store | ||
* https://min.io[MinIO], an object storage service | ||
* https://www.postgresql.org[Postgres] a relational database | ||
* https://www.ferretdb.io[FerretDB] A MongoDB-compatible adapter | ||
Nuvolaris is coupled with a rich and extendible CLI, `nuv`. | ||
|
||
You can use it to install and run Nuvolaris locally on https://www.docker.com[Docker Desktop] using https://kind.sigs.k8s.io[Kind] | ||
|
||
You can then install Nuvolaris in the following cloud providers: | ||
|
||
* https://aws.amazon.com/eks[Amazon EKS] | ||
* https://azure.microsoft.com/en-us/products/kubernetes-service[Azure AKS] | ||
* https://cloud.google.com/kubernetes-engine[Google GKE] | ||
* https://linode.com/[Akamai] (formerly Linode LKS) | ||
You can also install it in private clouds on servers running: | ||
|
||
* https://www.redhat.com/en/technologies/cloud-computing/openshift[RedHat OpenShift] | ||
* https://microk8s.io[Canonical MicroK8S] | ||
* https://k3s.io[Rancher (now SuSE) K3S] | ||
The CLI also supports installation directly on servers accessible with SSH. |
Oops, something went wrong.