Skip to main content
Kill -9 Club
Sign in

release

Deployment

A complete, dated directory under releases//var/www/example.com/releases/2026-08-03T14-40-58 — written while nothing is reading it, then put into service by pointing current at it: ln -sfn, one operation, with no moment where current does not exist. It is a noun, not the act of deploying, and that distinction is what the layout buys. Copying files into the directory Nginx is serving — an rsync --delete into a live document root — is not a release: a half-written tree gets served as it is, and the version it replaced is gone, so nothing is left to point back at. A release holds code only; user uploads and application logs stay in shared/, which every release links into. Keep five and a rollback is one ln -sfn. readlink -f /var/www/example.com/current is the only answer to which release is being served.

Also written: release directory