Skip to main content

Python Applications

Overview

This guide walks you through configuring and deploying a Python application using Nife. You'll learn how to set up an Image App, initialize it with Nife CLI, and deploy it to production.

info

We'll use this sample repository: Image App


Prerequisites

Before you start, make sure you have:

  • Nife account and CLI installed

Step 1: Install Nifectl CLI

Follow the official installation guide for your operating system: Nifectl Installation Guide


Step 2: Log In to Nifectl

Authenticate with your Nife account using nifectl auth command:

nifectl auth login

You'll be prompted to enter your credentials. A browser window will open to complete the authentication.


Step 3: Initialize Your Application

Initialize the Python application for deployment using nifectl init:

nifectl init

Interactive Configuration

The CLI will prompt you for the following information. Follow each step carefully:

1. App Name

? App Name (leave blank to use an auto-generated name)

Press Enter to generate a random name or enter your preferred app name (e.g., python).

2. Select Organization

? Select organization: [Use arrows to move, type to filter]
NIFE-APPS (nife-apps)

Use arrow keys to select your organization.

3. Deployment Source

? Deployment source: [Use arrows to move, type to filter]
Image Public Docker image
Docker Private registry image
Database S3/GS, Postgres, Redis, Mongo...
Loadbalancer Load balancer config
Runtime Language & framework runtimes

Select Runtime to use a language & framework runtime.

4. Select Builder

? Select builder: [Use arrows to move, type to filter]
None (Do not set a builder)
Image (Use a public Docker image)
deno Deno builtin
go Go Builtin
hugo-static Hugo static build with web server builtin
node Nodejs builtin
python Python builtin
ruby Ruby builtin

Select python for the Python builtin runtime.

5. Deployment Type

? Deployment type (Kubernetes workload kind): Deployment

Leave as default (Deployment).

6. Workload and Resource Configuration

? Workload type: deployment
? Resource type: CPU
? Do You Wish To Add Volume (y/N): No
? Specify the Replicas Count for deployment(1): 1

Accept the defaults for a standard Python deployment.

7. Port Configuration

? Select Internal Port: 8080
? Select External Port: 80

Set internal port to 8080 (Python app default) and external port to 80.

8. Memory and Routing

? Do You Wish To Add Memory Allocations: No
? Select Routing Policy: [Use arrows to move, type to filter]
Geolocation
Latency

Select Geolocation for global distribution.

9. Deployment Strategy

? Deployment strategy: [Use arrows to move, type to filter]
rolling
recreate
blue-green
canary
shadow
ab-testing

Select rolling for zero-downtime deployments.

10. Environment Variables

? Add environment variables? (y/N): No

Skip for now (can be added later if needed).

11. Region Selection

Available regions for this app (will be selected on first deploy):
IND - India, Mumbai
my-cluster - my-cluster

Your available deployment regions will be displayed.

Configuration Complete

When initialization finishes, you'll see:

New app created
Name = python
Organization = nife-apps
Version = 0
Status = New
Hostname = <empty>

Update config file nife.toml

Your nife.toml configuration file has been created with all your settings.


Step 4: Deploy Your Application

Deploy the Python application using nifectl deploy:

nifectl deploy

When you run the deploy command, you'll be prompted to select a region:

? Select region for deployment: [Use arrows to move, type to filter]
IND - India, Mumbai
EUR - Europe
APAC - Asia Pacific
AMER - Americas
my-cluster - my-cluster

The deployment process includes:

  1. Validating app configuration
  2. Cloning repository
  3. Building Docker image
  4. Optimizing image
  5. Creating release and deployment

Expected Output

Deploying python

==> Validating App Configuration
--> Validating App Configuration done

==> Building Image from Repository
--> Cloning repository
--> Building Docker image

==> Optimizing Image
--> Done Optimizing Image

==> Creating Release
==> Creating Deployment

Release v1 created at: http://python.apps.nifetency.com
Deployment...Done
note

Your deployed application will be available at the URL shown in the output. Save this for later reference.


Step 5: Access Your Application

Once deployment completes successfully, your Python Image App is live! Navigate to your deployment URL:

http://python.apps.nifetency.com

info

Check the Nife Documentation if you encounter any issues.