# Nua orchestrator
[Nua](https://nua.rocks/) is an open source, self-hosted cloud platform project (a PaaS - platform as a service).
This packaged is deployed on the Nua server.
For end-users, the main entry point is the `nua` command line tool (see: [Nua on PyPI](https://pypi.org/project/nua/) or [nua-cli on GitHub](https://github.com/abilian/nua/tree/main/nua-cli)).
## Role of the orchestrator
The orchestrator is in charge of configuring application and providers and deploying them on the host.
## Requirements
The host must be a linux server installed with the distribution:
Ubuntu 22.04.1 LTS (jammy)
Note: this is temporary, the orchestrator will be able to manage other distributions later.
In the current version, the orchestrator manages locally a single host.
Note: this is temporary, the orchestrator will be able to manage multiple hosts later.
The Nua Orchestrator will need a 'nua' administrator account with root privileges (sudoer and docker groups).
The Nua Orchestrator will interfere with local providers such as Docker services and locally installed databases. The recommended configuration is therefore to use a dedicated server.
The following Python packages (provided by Ubuntu) are required:
- `python3.10`
- `python3.10-venv`
- `python3.10-dev`
- `python3-pip`
- `pipx`
i.e. you should run `apt-get install python3.10 python3.10-venv python3.10-dev python3-pip pipx` before installing Nua.
Note: this is temporary, the installation script will take care of this kind of details later.
## Installation
### All-in-one command
Simply run:
```console
curl -L https://nua.rocks/install.py | sudo python3
```
### Using the `nua-bootstrap` command
The `nua-orchestrator` package provides a `nua-bootstrap` command which will install Nua on the host.
#### Installation procedure (from released version)
From the root account:
```console
pipx install nua-orchestrator
nua-bootstrap
```
#### Installation procedure (from git)
At the moment, this implies a first temporary installation of Nua (which can be done in a temporary directory), from a sudo-able account:
```console
git clone https://github.com/abilian/nua src
cd src/nua-orchestrator
./install.py
sudo ./env/bin/nua-bootstrap
```
That command will do many things:
- create the `nua` account
- install the required packages (Docker, postgres, Nginx, ...)
- apply default configuration to the host
- ...
### Remarks
- `nua-bootstrap` can be safely launched on an existing configuration,
### Installation phases
Installation can take several minutes, here an excerpt of main messages displayed during installation:
```console
sudo /home/nua/env/bin/nua-bootstrap
Installing Nua bootstrap on local host.
Warning: Nua was already installed.
Ign:1 http://downloads.mariadb.com/Tools/ubuntu jammy InRelease
Hit:2 http://nova.clouds.archive.ubuntu.com/ubuntu jammy InRelease [...]
Installation of base packages:
apt-get install --no-install-recommends -y ca-certificates curl docker.io lsb-release git nginx-light software-properties-common python3-certbot-nginx
[...]
Modifying /etc/sudoers for user 'nua' (full access with no passwd)
-> Prior changes found: do nothing
Creation of Python virtual environment for 'nua'
-> Prior /home/nua/env found: do nothing
Install pip
[...]
Installation of postgres version 14
apt-get install --no-install-recommends -y postgresql-14 libpq-dev
[...]
Setting Postgres password
Installation of Nua nginx configuration
systemctl restart nginx
Installation of local Nua orchestrator (via git)
Cloning into 'nua'...
[...]
Nua installation done for user 'nua' on this host.
Command 'nua --help':
```
At the end of the installation, the available commands are displayed.
## Development
### Dependency graph

Raw data
{
"_id": null,
"home_page": "https://github.com/abilian/nua",
"name": "nua-orchestrator",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "Stefane Fermigier",
"author_email": "sf@abilian.com",
"download_url": "https://files.pythonhosted.org/packages/0d/86/a38b49fcde0317fa9ae7a6114aa2577169b0a9dfa5605703d212d6f12a82/nua_orchestrator-0.5.43.tar.gz",
"platform": null,
"description": "# Nua orchestrator\n\n[Nua](https://nua.rocks/) is an open source, self-hosted cloud platform project (a PaaS - platform as a service).\n\nThis packaged is deployed on the Nua server.\n\nFor end-users, the main entry point is the `nua` command line tool (see: [Nua on PyPI](https://pypi.org/project/nua/) or [nua-cli on GitHub](https://github.com/abilian/nua/tree/main/nua-cli)).\n\n\n## Role of the orchestrator\n\nThe orchestrator is in charge of configuring application and providers and deploying them on the host.\n\n## Requirements\n\nThe host must be a linux server installed with the distribution:\n\n Ubuntu 22.04.1 LTS (jammy)\n\nNote: this is temporary, the orchestrator will be able to manage other distributions later.\n\nIn the current version, the orchestrator manages locally a single host.\n\nNote: this is temporary, the orchestrator will be able to manage multiple hosts later.\n\n\nThe Nua Orchestrator will need a 'nua' administrator account with root privileges (sudoer and docker groups).\n\nThe Nua Orchestrator will interfere with local providers such as Docker services and locally installed databases. The recommended configuration is therefore to use a dedicated server.\n\nThe following Python packages (provided by Ubuntu) are required:\n\n- `python3.10`\n- `python3.10-venv`\n- `python3.10-dev`\n- `python3-pip`\n- `pipx`\n\ni.e. you should run `apt-get install python3.10 python3.10-venv python3.10-dev python3-pip pipx` before installing Nua.\n\nNote: this is temporary, the installation script will take care of this kind of details later.\n\n\n## Installation\n\n### All-in-one command\n\nSimply run:\n\n```console\ncurl -L https://nua.rocks/install.py | sudo python3\n```\n\n### Using the `nua-bootstrap` command\n\nThe `nua-orchestrator` package provides a `nua-bootstrap` command which will install Nua on the host.\n\n#### Installation procedure (from released version)\n\nFrom the root account:\n\n```console\npipx install nua-orchestrator\nnua-bootstrap\n```\n\n#### Installation procedure (from git)\n\nAt the moment, this implies a first temporary installation of Nua (which can be done in a temporary directory), from a sudo-able account:\n\n```console\ngit clone https://github.com/abilian/nua src\ncd src/nua-orchestrator\n./install.py\nsudo ./env/bin/nua-bootstrap\n```\n\nThat command will do many things:\n\n- create the `nua` account\n- install the required packages (Docker, postgres, Nginx, ...)\n- apply default configuration to the host\n- ...\n\n### Remarks\n\n- `nua-bootstrap` can be safely launched on an existing configuration,\n\n### Installation phases\n\nInstallation can take several minutes, here an excerpt of main messages displayed during installation:\n\n```console\nsudo /home/nua/env/bin/nua-bootstrap\nInstalling Nua bootstrap on local host.\nWarning: Nua was already installed.\nIgn:1 http://downloads.mariadb.com/Tools/ubuntu jammy InRelease\nHit:2 http://nova.clouds.archive.ubuntu.com/ubuntu jammy InRelease [...]\nInstallation of base packages:\napt-get install --no-install-recommends -y ca-certificates curl docker.io lsb-release git nginx-light software-properties-common python3-certbot-nginx\n[...]\nModifying /etc/sudoers for user 'nua' (full access with no passwd)\n-> Prior changes found: do nothing\nCreation of Python virtual environment for 'nua'\n-> Prior /home/nua/env found: do nothing\nInstall pip\n[...]\nInstallation of postgres version 14\napt-get install --no-install-recommends -y postgresql-14 libpq-dev\n[...]\nSetting Postgres password\nInstallation of Nua nginx configuration\nsystemctl restart nginx\nInstallation of local Nua orchestrator (via git)\nCloning into 'nua'...\n[...]\n\nNua installation done for user 'nua' on this host.\nCommand 'nua --help':\n```\n\nAt the end of the installation, the available commands are displayed.\n\n## Development\n\n### Dependency graph\n\n\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Nua orchestrator - local implementation",
"version": "0.5.43",
"project_urls": {
"Documentation": "https://nua.rocks/",
"Homepage": "https://github.com/abilian/nua",
"Repository": "https://github.com/abilian/nua"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "05f7013edeb7b35947d2f99d0cd14f3d082de8bf14dde781c7897dc8f6e3462b",
"md5": "b2d37949ba9e58a4775e850d210fae91",
"sha256": "df62a7cb79e54bf0e4d4b75e16d394c46a67492df1f9589f1d06d29ee7147f78"
},
"downloads": -1,
"filename": "nua_orchestrator-0.5.43-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b2d37949ba9e58a4775e850d210fae91",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10,<4.0",
"size": 128253,
"upload_time": "2023-10-09T21:19:26",
"upload_time_iso_8601": "2023-10-09T21:19:26.815834Z",
"url": "https://files.pythonhosted.org/packages/05/f7/013edeb7b35947d2f99d0cd14f3d082de8bf14dde781c7897dc8f6e3462b/nua_orchestrator-0.5.43-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0d86a38b49fcde0317fa9ae7a6114aa2577169b0a9dfa5605703d212d6f12a82",
"md5": "f508387709755df085765b5882b56033",
"sha256": "4c3b2f0ff66ffe112b7e84091bd51eb08f512a75a216c567d9fb89b438ac9e37"
},
"downloads": -1,
"filename": "nua_orchestrator-0.5.43.tar.gz",
"has_sig": false,
"md5_digest": "f508387709755df085765b5882b56033",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10,<4.0",
"size": 90352,
"upload_time": "2023-10-09T21:19:28",
"upload_time_iso_8601": "2023-10-09T21:19:28.059785Z",
"url": "https://files.pythonhosted.org/packages/0d/86/a38b49fcde0317fa9ae7a6114aa2577169b0a9dfa5605703d212d6f12a82/nua_orchestrator-0.5.43.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-09 21:19:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "abilian",
"github_project": "nua",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nua-orchestrator"
}