Forge
@goodcraft/forgev2026.06.14.3
01README
Laravel Forge — list servers, audit and idempotently provision sites for git monorepos, set a site's .env from a vault reference, install LetsEncrypt SSL for the bare (non-www) domain, and manage deployments (set deploy script, deploy with polling, read the deploy log).
02Models
@goodcraft/forgev2026.06.14.3forge.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| apiToken | string | |
| baseUrl | string |
fn sync()
List all servers in the Forge account (read-only)
fn auditSite(sites: array)
Detect which expected sites exist across servers (read-only; ready=true means all present)
| Argument | Type | Description |
|---|---|---|
| sites | array |
fn provisionSite(repository: string, dryRun: boolean, sites: array)
Idempotently provision sites for a git monorepo: create site (project_type php), connect git with composer=false, and set the deploy script. dryRun=true (default) plans without writing. First deploy is intentionally out of scope (needs .env + DNS); use installSsl for certificates.
| Argument | Type | Description |
|---|---|---|
| repository | string | |
| dryRun | boolean | |
| sites | array |
fn setEnv(server: number, domain: string, env: string)
Write a site's .env from supplied content (pass `env` as a vault expression so secrets never appear in args/logs). Stores only key names + byte count, never values.
| Argument | Type | Description |
|---|---|---|
| server | number | |
| domain | string | |
| env | string |
fn installSsl(server: number, domain: string, domains: array, dryRun: boolean)
Obtain and install a LetsEncrypt SSL certificate for a site's bare (non-www) domain. Requests the cert for the domain only — no www variant and no www redirect — and is idempotent (skips when an active installed cert already covers the domain). dryRun=true (default) plans without requesting a certificate.
| Argument | Type | Description |
|---|---|---|
| server | number | |
| domain | string | |
| domains | array | |
| dryRun | boolean |
fn deploy(server: number, domain: string, wait: boolean, dryRun: boolean)
Trigger a Forge deployment for a site (runs its deploy script) and optionally poll until it finishes. dryRun=true (default) plans without deploying.
| Argument | Type | Description |
|---|---|---|
| server | number | |
| domain | string | |
| wait | boolean | |
| dryRun | boolean |
fn deployLog(server: number, domain: string)
Fetch the latest deployment log for a site (read-only) — useful for diagnosing a failed deploy.
| Argument | Type | Description |
|---|---|---|
| server | number | |
| domain | string |
fn setDeployScript(server: number, domain: string, script: string, dryRun: boolean)
Set a site's deployment script (PUT). dryRun=true (default) plans without writing.
| Argument | Type | Description |
|---|---|---|
| server | number | |
| domain | string | |
| script | string | |
| dryRun | boolean |
Resources
servers(infinite)— Snapshot of the servers in the Forge account
siteReadiness(infinite)— Readiness audit of a set of expected sites across servers
provisionResult(infinite)— Outcome of the last provisionSite run
envResult(infinite)— Non-sensitive summary of the last setEnv call (no secrets)
sslResult(infinite)— Outcome of the last installSsl call (LetsEncrypt certificate)
deployResult(infinite)— Outcome of the last deploy call
deployLog(infinite)— Latest deployment log for a site (read-only)
deployScriptResult(infinite)— Outcome of the last setDeployScript call
03Previous Versions
2026.06.14.2Jun 14, 2026
Modified 1 models
2026.06.14.1Jun 14, 2026
04Stats
A
100 / 100
Downloads
0
Archive size
17.5 KB
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned
05Platforms
06Labels