Configuration
How Shipyard configures your project with shipyard.json.
shipyard.json
When you run shipyard init, a shipyard.json file is created in your project root. This tells the CLI how to build and deploy your app.
shipyard.json
{
"projectId": "abc123",
"name": "my-app",
"framework": "astro",
"buildCommand": "pnpm build",
"outputDirectory": "dist"
}Fields
| Field | Type | Description |
|---|---|---|
projectId | string | Unique project identifier (auto-generated) |
name | string | Project slug used in URLs (e.g. my-app.shipyard.wtf) |
framework | string | Detected framework: astro, next, hono, vite, remix, static |
buildCommand | string | Command to build your app (e.g. pnpm build) |
outputDirectory | string | Directory containing the build output to deploy |
Framework defaults
If you don't specify buildCommand or outputDirectory, Shipyard uses defaults based on the detected framework:
| Framework | Build command | Output directory |
|---|---|---|
| Astro | npm run build | dist |
| Next.js | npm run build | .next |
| Hono | npm run build | dist |
| Vite | npm run build | dist |
| Remix | npm run build | build |
| Static | none | . |
Auth configuration
Authentication credentials are stored separately in ~/.shipyard/auth.json. This file is managed by shipyard login and shipyard logout.
~/.shipyard/auth.json
{
"token": "shp_abc123...",
"api_url": "https://api.shipyard.wtf"
}You can override the API URL per-command with --api-url or by setting the SHIPYARD_API_URL environment variable.
Environment variables
| Variable | Description |
|---|---|
SHIPYARD_API_URL | Override the default API endpoint |
SHIPYARD_TOKEN | Use an API token instead of the stored credential (useful for CI/CD) |