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 or Netlify, 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/Netlify, what goes to Render)
  3. Runs security preflight checks (scans for leaked secrets)
  4. Deploys backend → Render, frontend → Vercel or Netlify
  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 or Netlify    |
|  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
Netlify DEPLOYFORGE_NETLIFY_TOKEN, NETLIFY_TOKEN

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

deployforge config --vercel-token <token>
deployforge config --render-api-key <key>
deployforge config --netlify-token <token>

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  # or netlify
  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.2.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.2.0
File Size Uploaded
deployforge-0.2.0.tar.gz 51.3 kB Details

Built distribution (wheel)

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

Total release size: 104.9 kB

Release files / deployforge-0.2.0.tar.gz

Download URL deployforge-0.2.0.tar.gz
Size 51.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e0c07d3c63ba4fa342705d3b70345d28c5a763d48b61fdb9b12401e53c207593
BLAKE2b-256 checksum
How to use checksums
5cf777ab615945942d220f6589d03089d7b70f8c47e79f75b8a4f0fbe2d4560d
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 16, 2026.

Transparency log

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

Download URL deployforge-0.2.0-py3-none-any.whl
Size 53.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0c8f515122212e98f120eec6e29f429930ba5b012a7c0f4b4665ba205a4299dd
BLAKE2b-256 checksum
How to use checksums
62e01b9d0f8140793877b877ec45e17bb9c189baae6ee063753593f0764094cd
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 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

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