Build the machinery that ships your app. After this phase, dep deploy "$DEPLOY_TARGET" --plan reaches the vendor-install and symlink steps for the selected non-production environment row in Zaj-PROJECT.md — because the deployer, server access, domains, SSL, env templates, workflows, and release guardrails all exist and are verified. The first real deploy happens in Phase 5.
Phase 4 — from runnable app to deployable pipeline
Phase 4 authors and verifies deploy artifacts only. Anything that needs a live release moves to Phase 5 or Phase 12, so this phase has no false deferrals.
Clearing that gate safely is exactly what the warning below is about.
Two ways to run this:
Whole Phase → click the button; one Part → open the Part document and click Run this Part.
Skill users can run /zaj-laravel-codecanyon phase 4 instead.
1 · Deployer (zero-downtime)MUST. Install Deployer and author deploy.php — atomic releases, shared storage/.env, hooks, confirmed server PHP paths, SSH proof, dep --plan.
2 · Environment domains + SSLMUST. Point each selected non-production + production hostname at the right server, provision certs, and get HTTPS green with a five-check verification.
3 · Production .envMUST. Author env templates and credential items — bidirectional drift check, Git-history secret scan, production flags. Server upload happens later.
4 · CI + ServerSyncSHOULD. GitHub Actions deploy + ServerSync artifacts — secrets, clear_paths ↔ GIT_ONLY_PATHS symmetry, actionlint. First run happens in Phase 5.
5 · DNS email recordsSHOULD. SPF / DKIM / DMARC (+ MX) records for deliverable transactional mail; real mail-header proof happens in Phase 12.
A working pipeline means you can do a real, observed deploy — that’s Phase 5 · Deploy to staging, where the selected non-production row consumes the Phase 4 handoff, pins Composer to the confirmed deploy PHP, stages shared/.env, and goes live for the first time.