🚀 How deployment works
Deployment is handled by LandingDeploymentProcessor:
- Fetches Landing and Domain
- Renders HTML (Jinja2)
- Connects via SFTP
- Recreates the route directory
- Uploads
index.php, media, and JS - Creates a Deployment record and writes logs
📁 Remote file structure
Root directory:
/home/<sftp_username>/public_html
Deployment result:
<public_html>/<route>/
index.php
/media/
/js/
<public_html>/worker.js
✅ Final statuses
pending→deployedpending→failed
On success:
- Landing.is_active =
True - the URL is added to
landing_links
⚠️ Important details
- SFTP connection ignores host key checking
- The route directory is fully removed before redeploy
worker.jsis uploaded only if missing
(to update it — delete it on the server)