Claude
Skills
Sign in
Back

laravel-forge

Included with Lifetime
$97 forever

Complete Laravel Forge management via curl - servers, sites, deployments, databases, SSL, SSH keys, firewall, jobs, daemons, and more.

General

What this skill does


# Laravel Forge Control

Manage Laravel Forge infrastructure using curl. No dependencies required - just curl (available on all systems).

## Setup

User must set environment variables:
```bash
export FORGE_API_TOKEN="your-token"      # From https://forge.laravel.com/profile/api
export FORGE_ORG_SLUG="your-org-slug"    # Your organization slug from Forge URL
```

## API Endpoints Reference

Base URL: `https://forge.laravel.com/api`

All requests require header: `Authorization: Bearer $FORGE_API_TOKEN`

---

### Servers

**List all servers:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers"
```

**Get server details:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}"
```

**Reboot server:**
```bash
curl -s -X POST -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" -d '{"action":"reboot"}' \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/actions"
```

**Restart Nginx:**
```bash
curl -s -X POST -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" -d '{"action":"restart"}' \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/nginx-action"
```

**Restart PHP-FPM:**
```bash
curl -s -X POST -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" -d '{"action":"restart","version":"8.2"}' \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/php-action"
```

**Restart MySQL:**
```bash
curl -s -X POST -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" -d '{"action":"restart"}' \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/mysql-action"
```

---

### Sites

**List all sites:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites"
```

**Get site details:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}"
```

**Create site:**
```bash
curl -s -X POST -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com","project_type":"laravel","directory":"/public"}' \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/sites"
```

**Delete site:**
```bash
curl -s -X DELETE -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}"
```

**Get .env file:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}/env"
```

**Update .env file:**
```bash
curl -s -X PUT -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"APP_ENV=production\nAPP_DEBUG=false"}' \
  "https://forge.laravel.com/api/sites/{site_id}/env"
```

**Get Nginx config:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}/nginx"
```

**Update Nginx config:**
```bash
curl -s -X PUT -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"server { ... }"}' \
  "https://forge.laravel.com/api/sites/{site_id}/nginx"
```

**Get site logs:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}/logs?type=error"
```

---

### Deployments

**Trigger deployment:**
```bash
curl -s -X POST -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}/deployments"
```

**List deployments:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}/deployments"
```

**Get deployment details:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/deployments/{deployment_id}"
```

**Get deployment output:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/deployments/{deployment_id}/output"
```

**Get deploy script:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}/deployment-script"
```

**Update deploy script:**
```bash
curl -s -X PUT -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"cd /home/forge/site\ngit pull\ncomposer install --no-dev"}' \
  "https://forge.laravel.com/api/sites/{site_id}/deployment-script"
```

---

### Databases

**List databases:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/database/schemas"
```

**Create database:**
```bash
curl -s -X POST -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" -d '{"name":"my_database"}' \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/database/schemas"
```

**Delete database:**
```bash
curl -s -X DELETE -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/database/schemas/{database_id}"
```

**List database users:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/database/users"
```

**Create database user:**
```bash
curl -s -X POST -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"dbuser","password":"secret123","databases":[1,2]}' \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/database/users"
```

**Delete database user:**
```bash
curl -s -X DELETE -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/database/users/{user_id}"
```

---

### Domains & SSL

**List domains:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}/domains"
```

**Add domain:**
```bash
curl -s -X POST -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" -d '{"name":"www.example.com"}' \
  "https://forge.laravel.com/api/sites/{site_id}/domains"
```

**Delete domain:**
```bash
curl -s -X DELETE -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}/domains/{domain_id}"
```

**Get SSL certificate status:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}/domains/{domain_id}/certificate"
```

**Install Let's Encrypt SSL:**
```bash
curl -s -X POST -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" -d '{"type":"letsencrypt"}' \
  "https://forge.laravel.com/api/sites/{site_id}/domains/{domain_id}/certificate"
```

**Delete SSL certificate:**
```bash
curl -s -X DELETE -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/sites/{site_id}/domains/{domain_id}/certificate"
```

---

### SSH Keys

**List SSH keys:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/ssh-keys"
```

**Add SSH key:**
```bash
curl -s -X POST -H "Authorization: Bearer $FORGE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"My Key","key":"ssh-rsa AAAA..."}' \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/ssh-keys"
```

**Delete SSH key:**
```bash
curl -s -X DELETE -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/ssh-keys/{key_id}"
```

---

### Firewall Rules

**List firewall rules:**
```bash
curl -s -H "Authorization: Bearer $FORGE_API_TOKEN" \
  "https://forge.laravel.com/api/orgs/$FORGE_ORG_SLUG/servers/{server_id}/firewall-rules"
```

**Add firewall rule:**
```bash
curl -s -

Related in General