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:
- Analyzes your project structure (Next.js, Vite, FastAPI, Express, Django…)
- Creates a deployment plan (what goes to Vercel, what goes to Render)
- Runs security preflight checks (scans for leaked secrets)
- Deploys backend → Render, frontend → Vercel
- Wires environment variables (
NEXT_PUBLIC_API_URL,FRONTEND_URL,CORS_ORIGIN) - Sets up CORS on the backend
- 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 URLFRONTEND_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.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| deployforge-0.1.1.tar.gz | 48.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| deployforge-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 99.6 kB
Release files / deployforge-0.1.1.tar.gz
| Download URL | deployforge-0.1.1.tar.gz |
|---|---|
| Size | 48.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f0a7f7c348c4248beb44dc2c2b0e60d9089660bd44dcb8c4d6e7ea3ce9498209
|
|
BLAKE2b-256 checksum How to use checksums |
0d1dca9bbc4ff5a2f1c6e6418c88e565c36d2786c9e6c5be4b818c365339ad59
|
| 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 logRelease files / deployforge-0.1.1-py3-none-any.whl
| Download URL | deployforge-0.1.1-py3-none-any.whl |
|---|---|
| Size | 50.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
03ba37344d2a1ea9d78900279d2b71f10e52cc2f4e57712c48ec3998160a9851
|
|
BLAKE2b-256 checksum How to use checksums |
61166cafbe0ecf76f15505df554943ad3fbe39ea276f4f1d146a1e4fd405dd92
|
| 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