beadify


Namebeadify JSON
Version 0.0.4 PyPI version JSON
download
home_pagehttps://github.com/CodeLexis/beadify-cli
SummaryA lightweight, efficient tool tailored for hobbyists looking to deploy multiple applications on a single Ubuntu-based VPS (Virtual Private Server)
upload_time2024-11-17 10:51:17
maintainerNone
docs_urlNone
authorTomisin Abiodun
requires_python>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Beadify CLI

[![PyPI version](https://img.shields.io/pypi/v/beadify.svg)](https://pypi.org/project/beadify/)
![Python Versions](https://img.shields.io/pypi/pyversions/beadify.svg)
<!-- ![PyPI - Downloads](https://img.shields.io/pypi/dm/beadify) -->
![License](https://img.shields.io/pypi/l/beadify)

Beadify CLI is a lightweight, efficient tool tailored for hobbyists looking to deploy multiple applications on a single Ubuntu-based VPS (Virtual Private Server). This documentation guides you through deploying and managing multiple apps on a single VPS using Beadify CLI.


---
## Table of Contents
1. [Pre-requisites](#pre-requisites)
   - [VPS](#vps)
   - [Local Machine](#local-machine)
2. [Installation](#installation)
3. [Usage](#usage)
   - [Commands Overview](#commands-overview)
   - [Workflow](#workflow)
     - [Initialize a Project](#initialize-a-project)
     - [Specify the Target Machine](#specify-the-target-machine)
     - [Deploy a Bead](#deploy-a-bead)
     - [Run a Bead](#run-a-bead)
     - [Apply SSL](#apply-ssl)
4. [Examples](#examples)
   - [Initializing a Project](#1-initializing-a-project)
   - [Setting Up the Target Host](#2-setting-up-the-target-host)
   - [Deploying an Application](#3-deploying-an-application)
   - [Running the Application](#4-running-the-application)
   - [Setting Up HTTPS](#5-setting-up-https)
5. [Setup](#setup)
6. [Build](#build)
7. [Run](#run)
   - [Source Mode](#source-mode)
   - [Packaged Mode](#packaged-mode)
8. [Troubleshooting](#troubleshooting)
---


## Pre-requisites
### VPS
Currently, the following packages need to be pre-installed on the VPS:
1. Docker
2. Docker Compose
3. Nginx

> Support for automatically installing the required packages will be provided in the coming months.

### Local Machine
1. Python >= 3.9

## Installation
```bash
pip install beadify
```


## Usage

### Commands Overview

The Beadify CLI provides the following commands:

| Command     | Description                                           |
|-------------|-------------------------------------------------------|
| `init`        | Initialize a project for deployment setup             |
| `set-host`    | Specify the target VPS for deploying the project      |
| `provision`   | Deploy a bead (application) to the VPS                |
| `run`         | Run a deployed bead                                   |
| `apply-ssl`   | Apply SSL to the deployed application                 |

### Workflow
#### Initialize a Project
This command creates a manifest file in your project's directory, and sets up a new project for deployment.

```
beadify init --name <name_of_service>
```

- `--name`: (Required) The name of the service you are deploying.

#### Specify the Target Machine
Configures the target VPS for deployment.

```
beadify set-host --ip <ip_address> --ssh-key-file <path_to_ssh_key> --username <username>
```

- `--ip`: (Required) IP address of the target VPS.  
- `--ssh-key-file`: (Required) Path to your SSH key file.  
- `--username`: (Required) Username for SSH access.

#### Deploy a Bead
Deploys the specified bead (application) to the configured VPS.

```
beadify provision [--domain-name <domain_name>] [--env-file <path_to_env_file>] [--image <docker_image>]
```

- `--domain-name`: (Optional) Domain name for the deployment. Required only once per project.
- `--env-file`: (Optional) Path to the environment variables file. Required only once per project.
- `--image`: (Optional) Docker image to deploy. Only required the first time. Required only once per project.

> You would need a domain name and a Docker image to provision a bead

#### Run a Bead
Runs the deployed bead on the target VPS.

```
beadify run
```

- Starts the service on the configured VPS.

#### Apply SSL
Automatically applies an SSL certificate to your deployed application.

```
beadify apply-ssl
```

- This command uses Let's Encrypt to secure your application with HTTPS.


### Examples

#### 1. Initializing a Project
```
beadify init --service-name my_app
```

#### 2. Setting Up the Target Host
```
beadify set-host --ip 203.0.113.10 --ssh-key-file ~/.ssh/my-vps-ssh-file --username ubuntu
```

#### 3. Deploying an Application
```
beadify provision --domain-name example.com --env-file .env --image my_docker_image
```

#### 4. Running the Application
```
beadify run
```

#### 5. Setting Up HTTPS
```
beadify apply-ssl
```

## Setup
1. Install Python 3.9
2. Clone the repo
3. Navigate to the project's directory and create a virtualenv using: `python -m venv .venv && source .venv/bin/activate`


## Build
To build the Beadify CLI, run the following command in your terminal:
```bash
python setup.py build
```
This will create a bundled version of the CLI tool that can be used as a standalone executable.


## Run
### Source Mode
If you’re developing or testing the CLI, you can run it directly from the source using:
```bash
python -m src.cli {COMMAND} ...
```
This is ideal during development when the CLI is not yet packaged.

### Packaged Mode
Once the CLI is built and bundled, navigate to the directory of a project and:
```bash
/path/to/build/beadify {COMMAND}
```


## Troubleshooting
The Beadify CLI simplifies the process of deploying applications by automating configuration and deployment steps. Make sure to follow the instructions carefully to set up your environment correctly.

Note: Ensure that your VPS and container registry credentials are correctly set up before running the bead deploy command to avoid any authentication issues.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/CodeLexis/beadify-cli",
    "name": "beadify",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Tomisin Abiodun",
    "author_email": "decave.12357@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/2d/fc/869cf1bce1351d9c2c4d6ad9d4f5053773648a9a3db2829caa947773b99a/beadify-0.0.4.tar.gz",
    "platform": null,
    "description": "# Beadify CLI\n\n[![PyPI version](https://img.shields.io/pypi/v/beadify.svg)](https://pypi.org/project/beadify/)\n![Python Versions](https://img.shields.io/pypi/pyversions/beadify.svg)\n<!-- ![PyPI - Downloads](https://img.shields.io/pypi/dm/beadify) -->\n![License](https://img.shields.io/pypi/l/beadify)\n\nBeadify CLI is a lightweight, efficient tool tailored for hobbyists looking to deploy multiple applications on a single Ubuntu-based VPS (Virtual Private Server). This documentation guides you through deploying and managing multiple apps on a single VPS using Beadify CLI.\n\n\n---\n## Table of Contents\n1. [Pre-requisites](#pre-requisites)\n   - [VPS](#vps)\n   - [Local Machine](#local-machine)\n2. [Installation](#installation)\n3. [Usage](#usage)\n   - [Commands Overview](#commands-overview)\n   - [Workflow](#workflow)\n     - [Initialize a Project](#initialize-a-project)\n     - [Specify the Target Machine](#specify-the-target-machine)\n     - [Deploy a Bead](#deploy-a-bead)\n     - [Run a Bead](#run-a-bead)\n     - [Apply SSL](#apply-ssl)\n4. [Examples](#examples)\n   - [Initializing a Project](#1-initializing-a-project)\n   - [Setting Up the Target Host](#2-setting-up-the-target-host)\n   - [Deploying an Application](#3-deploying-an-application)\n   - [Running the Application](#4-running-the-application)\n   - [Setting Up HTTPS](#5-setting-up-https)\n5. [Setup](#setup)\n6. [Build](#build)\n7. [Run](#run)\n   - [Source Mode](#source-mode)\n   - [Packaged Mode](#packaged-mode)\n8. [Troubleshooting](#troubleshooting)\n---\n\n\n## Pre-requisites\n### VPS\nCurrently, the following packages need to be pre-installed on the VPS:\n1. Docker\n2. Docker Compose\n3. Nginx\n\n> Support for automatically installing the required packages will be provided in the coming months.\n\n### Local Machine\n1. Python >= 3.9\n\n## Installation\n```bash\npip install beadify\n```\n\n\n## Usage\n\n### Commands Overview\n\nThe Beadify CLI provides the following commands:\n\n| Command     | Description                                           |\n|-------------|-------------------------------------------------------|\n| `init`        | Initialize a project for deployment setup             |\n| `set-host`    | Specify the target VPS for deploying the project      |\n| `provision`   | Deploy a bead (application) to the VPS                |\n| `run`         | Run a deployed bead                                   |\n| `apply-ssl`   | Apply SSL to the deployed application                 |\n\n### Workflow\n#### Initialize a Project\nThis command creates a manifest file in your project's directory, and sets up a new project for deployment.\n\n```\nbeadify init --name <name_of_service>\n```\n\n- `--name`: (Required) The name of the service you are deploying.\n\n#### Specify the Target Machine\nConfigures the target VPS for deployment.\n\n```\nbeadify set-host --ip <ip_address> --ssh-key-file <path_to_ssh_key> --username <username>\n```\n\n- `--ip`: (Required) IP address of the target VPS.  \n- `--ssh-key-file`: (Required) Path to your SSH key file.  \n- `--username`: (Required) Username for SSH access.\n\n#### Deploy a Bead\nDeploys the specified bead (application) to the configured VPS.\n\n```\nbeadify provision [--domain-name <domain_name>] [--env-file <path_to_env_file>] [--image <docker_image>]\n```\n\n- `--domain-name`: (Optional) Domain name for the deployment. Required only once per project.\n- `--env-file`: (Optional) Path to the environment variables file. Required only once per project.\n- `--image`: (Optional) Docker image to deploy. Only required the first time. Required only once per project.\n\n> You would need a domain name and a Docker image to provision a bead\n\n#### Run a Bead\nRuns the deployed bead on the target VPS.\n\n```\nbeadify run\n```\n\n- Starts the service on the configured VPS.\n\n#### Apply SSL\nAutomatically applies an SSL certificate to your deployed application.\n\n```\nbeadify apply-ssl\n```\n\n- This command uses Let's Encrypt to secure your application with HTTPS.\n\n\n### Examples\n\n#### 1. Initializing a Project\n```\nbeadify init --service-name my_app\n```\n\n#### 2. Setting Up the Target Host\n```\nbeadify set-host --ip 203.0.113.10 --ssh-key-file ~/.ssh/my-vps-ssh-file --username ubuntu\n```\n\n#### 3. Deploying an Application\n```\nbeadify provision --domain-name example.com --env-file .env --image my_docker_image\n```\n\n#### 4. Running the Application\n```\nbeadify run\n```\n\n#### 5. Setting Up HTTPS\n```\nbeadify apply-ssl\n```\n\n## Setup\n1. Install Python 3.9\n2. Clone the repo\n3. Navigate to the project's directory and create a virtualenv using: `python -m venv .venv && source .venv/bin/activate`\n\n\n## Build\nTo build the Beadify CLI, run the following command in your terminal:\n```bash\npython setup.py build\n```\nThis will create a bundled version of the CLI tool that can be used as a standalone executable.\n\n\n## Run\n### Source Mode\nIf you\u2019re developing or testing the CLI, you can run it directly from the source using:\n```bash\npython -m src.cli {COMMAND} ...\n```\nThis is ideal during development when the CLI is not yet packaged.\n\n### Packaged Mode\nOnce the CLI is built and bundled, navigate to the directory of a project and:\n```bash\n/path/to/build/beadify {COMMAND}\n```\n\n\n## Troubleshooting\nThe Beadify CLI simplifies the process of deploying applications by automating configuration and deployment steps. Make sure to follow the instructions carefully to set up your environment correctly.\n\nNote: Ensure that your VPS and container registry credentials are correctly set up before running the bead deploy command to avoid any authentication issues.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A lightweight, efficient tool tailored for hobbyists looking to deploy multiple applications on a single Ubuntu-based VPS (Virtual Private Server)",
    "version": "0.0.4",
    "project_urls": {
        "Homepage": "https://github.com/CodeLexis/beadify-cli"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cddeee33f19252cd68447c91d09577e36410c028012ed5758776ca8cdd02d891",
                "md5": "9c6eb7398fa33b23394fabf7cb34738c",
                "sha256": "fa25f2b165f4b9beb7ba83d802659a3b53b8480037386d71c11798dcc3989438"
            },
            "downloads": -1,
            "filename": "beadify-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9c6eb7398fa33b23394fabf7cb34738c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 10693,
            "upload_time": "2024-11-17T10:51:17",
            "upload_time_iso_8601": "2024-11-17T10:51:17.082409Z",
            "url": "https://files.pythonhosted.org/packages/cd/de/ee33f19252cd68447c91d09577e36410c028012ed5758776ca8cdd02d891/beadify-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2dfc869cf1bce1351d9c2c4d6ad9d4f5053773648a9a3db2829caa947773b99a",
                "md5": "6d924cc2ba3bbf694a3af314d0eac140",
                "sha256": "c8ccd9ecb3c8682423dd95c51fd02141b66fdf4ee0dfc47d65e45b347adfac20"
            },
            "downloads": -1,
            "filename": "beadify-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "6d924cc2ba3bbf694a3af314d0eac140",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 8898,
            "upload_time": "2024-11-17T10:51:17",
            "upload_time_iso_8601": "2024-11-17T10:51:17.949761Z",
            "url": "https://files.pythonhosted.org/packages/2d/fc/869cf1bce1351d9c2c4d6ad9d4f5053773648a9a3db2829caa947773b99a/beadify-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-17 10:51:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "CodeLexis",
    "github_project": "beadify-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "beadify"
}
        
Elapsed time: 1.19982s