Skip to main content

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

PyPI version Python Versions

License

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
  2. Installation
  3. Usage
  4. Examples
  5. Setup
  6. Build
  7. Run
  8. 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

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:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beadify-0.0.4.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

beadify-0.0.4-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

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

Hashes for beadify-0.0.4.tar.gz
Algorithm Hash digest
SHA256 c8ccd9ecb3c8682423dd95c51fd02141b66fdf4ee0dfc47d65e45b347adfac20
MD5 6d924cc2ba3bbf694a3af314d0eac140
BLAKE2b-256 2dfc869cf1bce1351d9c2c4d6ad9d4f5053773648a9a3db2829caa947773b99a

See more details on using hashes here.

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

Hashes for beadify-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fa25f2b165f4b9beb7ba83d802659a3b53b8480037386d71c11798dcc3989438
MD5 9c6eb7398fa33b23394fabf7cb34738c
BLAKE2b-256 cddeee33f19252cd68447c91d09577e36410c028012ed5758776ca8cdd02d891

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page