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

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
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 --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 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.5.tar.gz (9.0 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.5-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: beadify-0.0.5.tar.gz
  • Upload date:
  • Size: 9.0 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.5.tar.gz
Algorithm Hash digest
SHA256 c3522fdb38a417177b37bf94637c10d66684e9df22dda7842727c1cc70e579cb
MD5 5d418c419c35b66568d8e0915dad0cec
BLAKE2b-256 68bac868bd8961453574f6fdb3ff1b5f6a01b403bc7dcdf69b87e1ae3d7818f0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: beadify-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 10.8 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e539deac9d603aad0d18ca1281b058063dca954fb94afeeb19cbe273db3f6503
MD5 0b8112da33ea0dfa4ae200d622bee8ea
BLAKE2b-256 2fee4113ca3d6092ec6bf74c22202eb69430da57a0aa0b93393ff60a09acfe83

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