shipyard.yamlshipyard.yaml

The whole configuration surface fits on one screen. Anything not in this file is either detected from your project or has a default we are willing to defend.

כל משטח ההגדרות נכנס למסך אחד. כל מה שלא בקובץ הזה או מזוהה מהפרויקט שלכם, או שיש לו ברירת מחדל שאנחנו מוכנים להגן עליה.

A complete fileקובץ מלא

shipyard.yaml
contract: 1

name: checkout-api
region: il-tlv
builder: nextjs-standalone
port: 3000

healthcheck:
  path: /api/health
  timeout: 10s
  interval: 15s

env:
  - DATABASE_URL
  - REDIS_URL
  - STRIPE_SECRET_KEY

services:
  - postgres17
  - redis

domains:
  - checkout.example.com

cron:
  - schedule: "0 3 * * *"
    path: /api/jobs/nightly-reconcile

resources:
  memory: 1Gi
  cpu: 1

Fieldsשדות

contractRequired. The application contract version this project targets. Currently 1. Never changes on its own.חובה. גרסת חוזה האפליקציה שהפרויקט מכוון אליה. כרגע 1. לעולם לא משתנה מעצמה.
nameRequired. Lowercase, digits and dashes. Becomes part of the default hostname.חובה. אותיות קטנות, ספרות ומקפים. הופך לחלק משם המארח שבברירת המחדל.
regionOptional. il-tlv or nl-ams. Defaults to your organisation default. Changing it moves the project and is not instant.אופציונלי. il-tlv או nl-ams. ברירת המחדל היא של הארגון. שינוי מעביר את הפרויקט וזה לא מיידי.
builderOptional. Detected by shipyard init. See the CLI page for the list.אופציונלי. מזוהה על ידי shipyard init. הרשימה נמצאת בעמוד ה-CLI.
portThe port your app listens on. Defaults to 3000, and to $PORT if you read it.הפורט שהאפליקציה מאזינה עליו. ברירת המחדל 3000, ו-$PORT אם אתם קוראים אותו.
healthcheck.pathMust return 2xx for a release to go live. Defaults to /.חייב להחזיר 2xx כדי שהשחרור יעלה. ברירת המחדל /.
healthcheck.timeoutHow long a single check may take. Default 10s.כמה זמן בדיקה בודדת רשאית לקחת. ברירת מחדל 10s.
envNames only. Values are set with shipyard env set and never appear here. A missing required name fails the deploy before the build starts.שמות בלבד. ערכים נקבעים עם shipyard env set ולעולם לא מופיעים כאן. שם חסר מכשיל את הפריסה עוד לפני שהבנייה מתחילה.
servicesManaged dependencies. postgres17 and redis today. Connection strings are injected as environment variables.תלויות מנוהלות. postgres17 ו-redis כרגע. מחרוזות חיבור מוזרקות כמשתני סביבה.
domainsHostnames to attach. Each still needs its DNS record; the platform will not claim a name you do not control.שמות מארח לחיבור. כל אחד עדיין דורש רשומת DNS; הפלטפורמה לא תתפוס שם שאינו בשליטתכם.
cronScheduled HTTP calls into your own app. Standard five-field cron, UTC. Overlapping runs are skipped, not queued.קריאות HTTP מתוזמנות לאפליקציה שלכם. cron סטנדרטי בחמישה שדות, ב-UTC. הרצות חופפות מדולגות, לא נצברות בתור.
resourcesMemory and CPU ceiling. Defaults to your plan baseline. Exceeding memory restarts the process and shows up in the log.תקרת זיכרון ומעבד. ברירת המחדל היא בסיס התוכנית שלכם. חריגה בזיכרון מפעילה מחדש את התהליך ומופיעה בלוג.
Never put a secret in this fileלעולם אל תשימו סוד בקובץ הזה

shipyard.yaml belongs in git. The env key is a list of names, not a map of values, precisely so that there is no shape of this file that can hold a credential. The scanner also checks, and a secret found in the working tree is a critical finding that stops the deploy.

shipyard.yaml שייך ל-git. המפתח env הוא רשימת שמות, לא מפת ערכים, בדיוק כדי שלא תהיה צורה של הקובץ הזה שיכולה להחזיק סוד. הסורק גם בודק, וסוד שנמצא בעץ העבודה הוא ממצא קריטי שעוצר את הפריסה.

.shipyardignore.shipyardignore

Same syntax as .gitignore, applied on top of it. Use it for things that are committed but should not ship: fixtures, design files, a 400 MB sample dataset.

אותו תחביר כמו .gitignore, מיושם מעליו. השתמשו בו לדברים שנמצאים ב-git אבל לא צריכים לעלות: fixtures, קבצי עיצוב, דאטהסט לדוגמה של 400 מגהבייט.

.shipyardignore
/fixtures
/design
*.psd
**/*.test.ts

Per-environment overridesעקיפות לפי סביבה

Anything under environments: replaces the top-level value for that environment only. Keep this short. A staging that differs wildly from production is a staging that tells you nothing.

כל מה שתחת environments: מחליף את הערך העליון עבור אותה סביבה בלבד. שמרו על זה קצר. staging ששונה מאוד מ-production הוא staging שלא מלמד אתכם כלום.

shipyard.yaml
environments:
  production:
    resources:
      memory: 2Gi
      cpu: 2
    domains:
      - checkout.example.com
  staging:
    resources:
      memory: 512Mi