Deployment
Deployment
CI/CD pipeline, Plesk configuration, and webhook-based auto-deploy.
Infrastructure
- VPS: Plesk Obsidian 18.0.77.5 on Ubuntu 24.04
- Domain: medkronos.com
- Each core service = dedicated subdomain
Automated CI/CD
Deployment is fully automated:
- Developer pushes to GitHub
- GitHub webhook fires to the corresponding Plesk subdomain
- Plesk executes a
git pullon the subdomain's document root - Live filesystem updated automatically
Webhook Configuration
Each repository has a GitHub webhook pointing to its Plesk subdomain. The VPS authenticates with GitHub via a secure SSH key pair.
SSH Key Authentication
- VPS has an SSH key pair configured for GitHub access
ssh-keyscan github.com >> ~/.ssh/known_hostsensures non-interactive pulls- Key is shared across all core service deployments
Deployment Order
- core.backend (Composer package — other services depend on it)
- core.console (management plane — must be running before other services are accessed through it)
- core.auth (identity — core.console delegates auth to it)
- core.storage
- core.ai
- core.hypermedia
- core.assets
- core.docs
Composer Dependencies
Services that use core.backend require
composer update after a core.backend change. On the VPS, run:cd /var/www/vhosts/medkronos.com/<subdomain>
composer update unvrsl/core-backendSubdomain Mapping
| Repository | Subdomain |
| core.console | core.console.medkronos.com |
| core.auth | auth.medkronos.com |
| core.storage | core.storage.medkronos.com |
| core.ai | core.ai.medkronos.com |
| core.assets | core.assets.medkronos.com |
| core.hypermedia | core.hypermedia.medkronos.com |
| core.docs | core.docs.medkronos.com |
| universal.desktop | desktop.medkronos.com |