🧩 Components
The project consists of:
- Django apps (
generator,employee) - Admin panel (
/admin/) with custom actions - Celery worker for background operations (deploy/transfer/import)
- PostgreSQL — main DB
- Redis — Celery broker
- Storage — local or S3‑compatible
- Domain SFTP servers — deployment target
- Health checks (
django-health-check)
🔁 Creation & deployment flow
- User creates:
- Template (HTML/CSS/JS)
- ButtonsContainer (buttons + labels)
- CodeSnippet and ServiceWorker
- A Landing is created and domains are selected
- Deploy is triggered in Admin
- Celery runs
LandingDeploymentProcessor:- renders HTML via Jinja2
- connects via SFTP
- recreates the route directory
- uploads
index.php, media, and JS
- A Deployment record is created and
landing_linksare stored
🔁 Landing transfer
Two modes:
- By Landing object — creates a copy and deploys it to a new domain
- By URL — copies files over SFTP to a new domain
Results are stored in LandingTransferLog.
📦 Domain import
Admin accepts XLSX:
- file is validated (structure, domain validity, SFTP access)
- valid rows are saved into
Domain - a DomainsImportLog record is created with status and errors