NoBS Python

NoBS Python

Focus on Business Logic

NoBS is tailored for common Python processes, letting you focus on business needs rather than infrastructure. No need to manage Docker, Terraform, or complex CI/CD pipelines.

Dynamic Docker Management

NoBS manages Dockerfiles for you, dynamically adjusting based on your Python application's needs. No manual Dockerfile configuration required.

Infrastructure as Python

Replace Terraform and other infrastructure-as-code solutions. NoBS understands the required resources directly from your Python project configuration.

Simplified Secrets Management

Secure, type-safe secrets management built into the platform. Define and inject secrets directly through Python configuration without external tools.

Highlights

Develop Locally

Understand how NoBS helps you develop locally, setting up a quicker development cycle.

Get Started

This guide walks you through installing NoBS Python, initializing a project, and deploying your first service. At the end, you will have a functioning NoBS Python project that can run applications, jobs, and workers.

Requirements

Before installing NoBS Python, ensure that the following are available in your development environment:

  • Python 3.9 or higher
  • A container runtime such as Docker (required for building images)
  • Access to a NoBS Python organization or deployment environment

If you do not yet have access, contact your NoBS Python administrator.

Installation

NoBS Python ships as a Python CLI package.

Install it using:

bash
uv add nobs

To verify the installation:

bash
nobs --version

Initializing a Project

A NoBS Python project is defined using a Project object in Python. Create a new directory and a Python file to contain your configuration:

my-project/
└── project.py

Inside project.py:

python
from nobs.models import Project

project = Project(
    name="my-first-project",
)

This defines a minimal project without any applications yet.

Adding an Application

To deploy a basic FastAPI application, install FastAPI and define it:

bash
uv add fastapi uvicorn

Example application (app.py):

python
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def hello():
    return {"message": "Hello from NoBS Python"}

Update project.py to include the app:

python
from nobs.models import Project, FastAPIApp
from app import app

project = Project(
    name="my-first-project",

    server=FastAPIApp(app),
)

Spin up locally

To spin up the project with NoBS Python, run:

bash
nobs up

This command will:

  • Build your project environment using Docker
  • Spin up the FastAPI server locally in development mode
  • Expose the server to you in an easy to use manor