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 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.

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.7.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file beadify-0.0.7.tar.gz.

File metadata

  • Download URL: beadify-0.0.7.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for beadify-0.0.7.tar.gz
Algorithm Hash digest
SHA256 3efdf4741745b8d63bc23c9e80bfe4409020078e88b20d8c5ff29a9d1ec10d42
MD5 e8fe8e86e532b30dc9b6be4685503f19
BLAKE2b-256 a8c128de287be2d0e1036d8e09318ef6a13bd74cb323d0b2fe1edc07f307f952

See more details on using hashes here.

File details

Details for the file beadify-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: beadify-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for beadify-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 608daccb27014fdbf3a8123ad310e6cb65f185011e18320b01cb5160cc4bbe67
MD5 5ef646abf9fe7df43a2e0ee64871dd69
BLAKE2b-256 4ecf298a86eb7f4ac9b7a0bc6bbb34450678d1be28542642344785a644908513

See more details on using hashes here.

Supported by

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