Skip to main content

Beadify CLI

PyPI version Python Versions PyPI - Downloads License

A deployment tool crafted for cost-saavy hobbyists, enabling the seamless deployment and serving of multiple lightweight applications from a single Ubuntu VPS (Virtual Private Server) powered by Nginx. This documentation guides you through transforming your VPS into a functional Platform-as-a-Service (PaaS) with minimal effort.


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
deploy 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 deploy [--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 deploy 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 --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 deploy --domain-name blog.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.

Metadata

Release files for beadify 0.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for beadify 0.0.7
File Size Uploaded
beadify-0.0.7.tar.gz 8.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for beadify 0.0.7
File Interpreter ABI Platform
beadify-0.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 19.6 kB

Release files / beadify-0.0.7.tar.gz

Download URL beadify-0.0.7.tar.gz
Size 8.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3efdf4741745b8d63bc23c9e80bfe4409020078e88b20d8c5ff29a9d1ec10d42
BLAKE2b-256 checksum
How to use checksums
a8c128de287be2d0e1036d8e09318ef6a13bd74cb323d0b2fe1edc07f307f952
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / beadify-0.0.7-py3-none-any.whl

Download URL beadify-0.0.7-py3-none-any.whl
Size 10.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
608daccb27014fdbf3a8123ad310e6cb65f185011e18320b01cb5160cc4bbe67
BLAKE2b-256 checksum
How to use checksums
4ecf298a86eb7f4ac9b7a0bc6bbb34450678d1be28542642344785a644908513
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

0.0.7 This release

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page