A lightweight, efficient tool tailored for hobbyists looking to deploy multiple applications on a single Ubuntu-based VPS (Virtual Private Server)
Project description
Beadify CLI
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
Pre-requisites
VPS
Currently, the following packages need to be pre-installed on the VPS:
- Docker
- Docker Compose
- Nginx
Support for automatically installing the required packages will be provided in the coming months.
Local Machine
- Python >= 3.9
Installation
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
- Install Python 3.9
- Clone the repo
- 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:
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:
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:
/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.
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 beadify-0.0.4.tar.gz
.
File metadata
- Download URL: beadify-0.0.4.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8ccd9ecb3c8682423dd95c51fd02141b66fdf4ee0dfc47d65e45b347adfac20 |
|
MD5 | 6d924cc2ba3bbf694a3af314d0eac140 |
|
BLAKE2b-256 | 2dfc869cf1bce1351d9c2c4d6ad9d4f5053773648a9a3db2829caa947773b99a |
File details
Details for the file beadify-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: beadify-0.0.4-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa25f2b165f4b9beb7ba83d802659a3b53b8480037386d71c11798dcc3989438 |
|
MD5 | 9c6eb7398fa33b23394fabf7cb34738c |
|
BLAKE2b-256 | cddeee33f19252cd68447c91d09577e36410c028012ed5758776ca8cdd02d891 |