Skip to main content

DeployForge

From GitHub to production. Automatically.

DeployForge is the second stage of the PushForge → DeployForge workflow. PushForge handles Local → GitHub, while DeployForge handles GitHub → Production (frontend → Vercel, backend → Render).


Install

pip install deployforge

Or with pipx (recommended):

pipx install deployforge

DeployForge is a single, cross-platform CLI — it works on Windows, macOS, and Linux.


Quick Start

# 1. Push your code with PushForge
pushforge

# 2. Deploy with DeployForge
deployforge

DeployForge automatically:

  1. Analyzes your project structure (Next.js, Vite, FastAPI, Express, Django…)
  2. Creates a deployment plan (what goes to Vercel, what goes to Render)
  3. Runs security preflight checks (scans for leaked secrets)
  4. Deploys backend → Render, frontend → Vercel
  5. Wires environment variables (NEXT_PUBLIC_API_URL, FRONTEND_URL, CORS_ORIGIN)
  6. Sets up CORS on the backend
  7. Verifies all deployments and prints live URLs

Commands

Command Description
deployforge Full automated deployment (analyze → deploy → verify)
deployforge init Create .deployforge/config.yml for a project
deployforge analyze Analyze project structure and show deployment plan
deployforge deploy Deploy directly (with flags --dry-run, --debug)
deployforge status Show status of deployed services
deployforge verify Verify all deployed URLs are reachable and healthy
deployforge security Run security preflight scan
deployforge doctor Diagnose environment and credentials
deployforge config Show resolved configuration
deployforge logs Show recent deployment history
deployforge version Print version

Options

--dry-run              Show what DeployForge would do without making changes
--non-interactive      Skip confirmations (CI-friendly)
--skip-security        Disable the security preflight gate
--debug                Show debug detail for troubleshooting
--timeout INT          Deployment wait timeout in seconds (default: 900)
--plan TEXT            Render plan: free | starter | pro (default: starter)

How It Works with PushForge

+-------------------+     +-------------------+     +-------------------+
|   Your Machine    |     |      GitHub       |     |    Production     |
|                   |     |                   |     |                   |
|  PushForge ───────┼────►│   Source Code     │     |  Vercel (frontend)│
|  Local → GitHub   │     |                   │     |  Render (backend) │
|                   |     │  DeployForge ─────┼────►│  Live URLs        │
+-------------------+     |  GitHub → Prod    |     +-------------------+
                          +-------------------+

You don't need PushForge installed to use DeployForge — it detects Git repositories automatically. But the two tools are designed to work together seamlessly.


Authentication

DeployForge reads provider tokens from environment variables (in order):

Provider Environment Variables
Vercel DEPLOYFORGE_VERCEL_TOKEN, VERCEL_TOKEN
Render DEPLOYFORGE_RENDER_API_KEY, RENDER_API_KEY

Tokens can also be stored securely in your OS keyring via:

deployforge config --set vercel_token
deployforge config --set render_api_key

Credentials are never stored in project files or printed in logs. Only SHA-256 fingerprints are recorded.


Configuration

DeployForge creates .deployforge/config.yml when you run deployforge init:

frontend:
  provider: vercel
  directory: frontend

backend:
  provider: render
  runtime: python
  directory: backend

Environment variables from .env files are automatically wired:

  • NEXT_PUBLIC_API_URL → set to the backend Render URL
  • FRONTEND_URL → set to the frontend Vercel URL (on the backend)
  • CORS is configured automatically

Security

DeployForge runs a security preflight before deployment:

  • Scans for API keys, tokens, passwords in tracked files
  • Blocks deployment if high-entropy strings or credential patterns are found (configurable)
  • Never transmits or stores secrets — only fingerprints them locally

Disable with --skip-security for trusted codebases.


Development

# Clone and set up
git clone https://github.com/aasz253/DeployForge.git
cd DeployForge
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

# Run tests
pytest

# Lint & type-check
ruff check src tests
mypy src

# Format
ruff format src tests

License

MIT — see LICENSE.

Security Policy

See SECURITY.md for credential handling and disclosure.

Release files for deployforge 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for deployforge 0.1.0
File Size Uploaded
deployforge-0.1.0.tar.gz 48.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for deployforge 0.1.0
File Interpreter ABI Platform
deployforge-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 98.0 kB

Release files / deployforge-0.1.0.tar.gz

Download URL deployforge-0.1.0.tar.gz
Size 48.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8a726a62bc6d1a813a37be26a83da2e951300a1dc7ec971bae56ef7c643b6a6e
BLAKE2b-256 checksum
How to use checksums
6377e6b5f545bc89fa4f9a574cb36adc6e87dccb9e95c1488c289c58ef6d49f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

Release files / deployforge-0.1.0-py3-none-any.whl

Download URL deployforge-0.1.0-py3-none-any.whl
Size 49.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ea6e4f4c8b89c910d4d6f9c74af617652064ed5fde676dc366f87d310113e796
BLAKE2b-256 checksum
How to use checksums
47d818a71334476547cae4284912a3b4fc626be18208f5206d9b07c634ed2871
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page