# README
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
-
Ensure you have Go installed on your system (version 1.16 or later).
-
Run the following command to install upify:
go install github.com/codeupify/upify@latest
-
Verify the installation:
upify --help
Option 2: Install pre-built binaries
For Linux and macOS:
- Download the latest release for your operating system from the GitHub releases page.
- Unpack the binary for your operating system.
- Move the binary to a directory included in your system's
PATH
:mv upify /usr/local/bin/
- Make the binary executable:
chmod +x /usr/local/bin/upify
- Verify the installation:
upify --help
For Windows:
- Download the latest release binary for your operating system from the GitHub releases page.
- Add the directory containing the binary to your system's
PATH
. - 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
- Log into your AWS Console
- Go to IAM (Identity and Access Management)
- Create a new IAM user or select an existing one
- Attach permissions
- 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
oryum 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
- Log into GCP Console
- 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
- Create a service account in GCP Console:
- Go to IAM & Admin > Service Accounts
- Click "Create Service Account"
- Add required roles
- Download service account key (JSON format)
- 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