Skip to content

Simple, platform-agnostic serverless deployment tool

License

Notifications You must be signed in to change notification settings

codeupify/upify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Upify

A platform-agnostic CLI tool that simplifies cloud deployment for applications

  • Quick and simple cloud deployment
  • Uses serverless
  • Platform-agnostic
  • Multi-framework support
  • Multi-runtime support
  • Wraps your existing project
  • Generates Terraform configs

Currently Supports

  • Cloud Providers: AWS Lambda, GCP Cloud Run
  • Frameworks: Flask, Express
  • Runtimes: Python, Node.js

Documentation

View the online documentation:

Installation

You can install the latest version of upify from GitHub by following these steps:

Option 1: Install via go install

  1. Ensure you have Go installed on your system (version 1.16 or later).

  2. Run the following command to install upify:

    go install github.com/codeupify/upify@latest
  3. Verify the installation:

    upify --help

Option 2: Install pre-built binaries

For Linux and macOS:

  1. Download the latest release for your operating system from the GitHub releases page.
  2. Unpack the binary for your operating system.
  3. Move the binary to a directory included in your system's PATH:
    mv upify /usr/local/bin/
  4. Make the binary executable:
    chmod +x /usr/local/bin/upify
  5. Verify the installation:
    upify --help
    

For Windows:

  1. Download the latest release binary for your operating system from the GitHub releases page.
  2. Add the directory containing the binary to your system's PATH.
  3. Verify the installation by opening a new Command Prompt and running upify --help.

Usage

Initialize your project

Run the following command at the base of your project to initialize it:

upify init

This command will generate config and wrapper files. Depending on the options selected, you may need to adjust the generated code and config files. Follow the instructions provided in the command output.

Environment Variables

Add environment variables to .upify/.env

Add a platform

To add cloud platform support, run:

upify platform add [platform]

Deploy to the cloud

To deploy your project, use the following command:

upify deploy [platform]

Note: You must have your cloud credentials set up before deploying. See the Authentication for more details.

Example projects

Visit our examples directory for sample implementations

Provider Authentication

AWS

Setting up AWS Credentials

  1. Log into your AWS Console
  2. Go to IAM (Identity and Access Management)
  3. Create a new IAM user or select an existing one
  4. Attach permissions
  5. Under "Security credentials", create a new access key and save those credentials

Configuring Credentials

Option 1: AWS CLI Configure

First, install AWS CLI:

  • macOS: brew install awscli
  • Windows: Download the official MSI installer
  • Linux: apt install awscli or yum install awscli

Then configure:

aws configure

This will prompt you to enter:

  • AWS Access Key ID
  • AWS Secret Access Key
  • Default region (e.g., us-east-1)
  • Default output format (json)

Option 2: Manual Credentials File

mkdir ~/.aws
cat > ~/.aws/credentials << EOF
[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY
EOF

Option 3: Environment Variables

export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY"
export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_KEY"
export AWS_DEFAULT_REGION="us-east-1"

GCP

Setting up GCP Project

  1. Log into GCP Console
  2. Enable required APIs (Required APIs can be found here)

Configuring Credentials

Option 1: User Account

First, install Google Cloud SDK - https://cloud.google.com/sdk/docs/install

Then authenticate:

gcloud auth login
gcloud config set project YOUR_PROJECT_ID
Option 2: Service Account
  1. Create a service account in GCP Console:
    1. Go to IAM & Admin > Service Accounts
    2. Click "Create Service Account"
    3. Add required roles
  2. Download service account key (JSON format)
  3. Set the credentials:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account-key.json"

GCP Required APIs

  • Cloud Functions API
  • Cloud Run API
  • Cloud Build API
  • Artifact Registry API
  • Cloud Resource Manager API
  • Cloud Storage API