Nimbus is engineered to optimize data backup processes and efficiently orchestrate service deployments.
Project description
nimbus
Nimbus is engineered to optimize data backup processes and efficiently orchestrate service deployments for homelabs and dev environments.
Table of Contents
Overview
Nimbus stands as a comprehensive data backup manager and service deployment orchestrator tailored for homelabs, media centers, and local development environments. It offers a seamless, turnkey solution to streamline your data management and service orchestration needs. While Nimbus is robust for personal or developmental use, it is not intended to supplant production-level or mission-critical tools designed for commercial-scale backups and deployments.
Getting Started
Install ni
with pipx or pip
:
pip install nimbuscli
ni --version
Alternatively you can build it from source. Nimbus uses poetry for dependency management and packaging.
pipx ensurepath
pipx install poetry
curl https://pyenv.run | bash
pyenv install 3.12
pyenv virtualenv 3.12 ni_env
pyenv local ni_env
poetry install
ni --version
To do something with nimbus you need to setup the application configuration. For guidance and examples on setting up your configuration, please refer to the configuration example.
Usage
By default, Nimbus searches for its configuration file at the ~/.nimbus/config.yaml
path.
It is anticipated that all configurations for the application will be centralized within this file.
Important Note on Glob Patterns in bash/sh
When using theni
command, it’s essential to use\*
in place of*
.
This is becausebash
orsh
interprets*
as a glob pattern and attempts to expand it before passing it toni
.
By escaping the asterisk (\*
), you ensure thatni
receives the character literally, allowing it to process the glob pattern as intended.
Backups
The backup
command facilitates the creation of backups and enables their optional upload to a remote destination, such as an AWS S3 bucket.
The command accepts optional selectors, that filter the configured backup groups using specified glob patterns.
ni backup [selectors]
Lets assume we have the following Nimbus configuration:
profiles:
archive:
- name: rar-protected
provider: rar
password: SecretPassword
recovery: 3
compression: 0
upload:
- name: aws-archive
provider: aws
access_key: XXXXXXXXXXXXX
secret_key: XXXXXXXXXXXXXXXXXXXXXXXXX
bucket: backups.bucket.aws
storage_class: STANDARD
commands:
backup:
destination: ~/.nimbus/backups
archiver: rar-protected
uploader: aws-archive
directories:
photos:
- ~/Pictures
- /mnt/photos
cloud:
- /mnt/nextcloud
docs:
- ~/Documents
With this configuration, the following backup
commands would result in:
Command | Selected Backup groups |
---|---|
ni backup |
photos cloud docs |
ni backup nx\* |
|
ni backup photos |
photos |
ni backup ph\* \*cloud\* |
photos cloud |
ni backup \*o\?\? |
cloud docs |
Deployments
The up
and down
commands manage deployments of services. Nimbus supports services structured as Docker Compose stacks and performs recursive service discovery for the configured directories.
The command accepts optional selectors, that filter the discovered services using specified glob patterns.
ni up [selectors]
ni down [selectors]
Lets assume we have the following Nimbus configuration:
commands:
deploy:
services:
- ~/.nimbus/services
And under the ~/.nimbus/services
we have the following directory structure:
|- services
|- media
|- .env
|- compose.yaml
|- cloud
|- .env
|- compose.yaml
|- git
|- some_file.txt
|- start.sh
With this configuration and directory structure, the following deployment commands would result in:
Command | Selected Services |
---|---|
ni up |
media cloud |
ni up media |
media |
ni down g\* |
|
ni down git |
|
ni down cl\* |
cloud |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nimbuscli-0.3.1.tar.gz
.
File metadata
- Download URL: nimbuscli-0.3.1.tar.gz
- Upload date:
- Size: 29.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.10.12 Linux/5.15.146.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cd5f6e5ebc5eed1960fa0dec58563fcc1d19cc8773db1b0aafddb1981aa99cb |
|
MD5 | e3e063095ae019932162dab6285afe48 |
|
BLAKE2b-256 | f2568d1858236a38d1a5b7fc6c4f49be07214bedeec0d970b201502056dda299 |
File details
Details for the file nimbuscli-0.3.1-py3-none-any.whl
.
File metadata
- Download URL: nimbuscli-0.3.1-py3-none-any.whl
- Upload date:
- Size: 38.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.10.12 Linux/5.15.146.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a07d08e9f09e619fdc37b52f1c1e5144e1452234eb1de9e1f25aa1777bff4a2 |
|
MD5 | 164d6ef04a63f70eca7e5de5eeea80c2 |
|
BLAKE2b-256 | 057f1d9b532caa868776d633b34628770d152d3e9c3c168a19916be3e95cc22f |