Name | beadify JSON |
Version |
0.0.4
JSON |
| download |
home_page | https://github.com/CodeLexis/beadify-cli |
Summary | A lightweight, efficient tool tailored for hobbyists looking to deploy multiple applications on a single Ubuntu-based VPS (Virtual Private Server) |
upload_time | 2024-11-17 10:51:17 |
maintainer | None |
docs_url | None |
author | Tomisin Abiodun |
requires_python | >=3.8 |
license | None |
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"
}