1 containerMonolithic by design
Frontend and backend live in the same project and deploy as one application container.
Production infrastructure renewal
Build the replacement production host in parallel, containerize the database layer, automate release delivery, and reserve downtime for the final sync and traffic switch only.
01 · Executive overview
Chronos runs Old and New side by side in both environments. The migration renews how production is hosted and operated; it does not replace the Old Chronos application as part of this plan.
1 containerFrontend and backend live in the same project and deploy as one application container.
2 containersAn Angular frontend calls a Spring backend over an API; each runs as its own container.
monolithic projectnot containerizednot containerized10.10.10.106Both application generations deploy to the development VM through their active development branches.
devdevelopment10.10.10.10604 · Delivery & configuration
The release branch is consistent across both generations, but configuration and development branch conventions differ sharply.
ApplicationConfig.javaconfig.jsutils.jsdevPipeline → 10.10.10.106releaseManual → 10.10.10.107DA_STRRC2_AGGIUNTA_X-GRUPPOapplication.ymlapplication-prod.ymlenvironment.dev.tsenvironment.prod.tsdevelopmentPipeline → 10.10.10.106releaseManual → 10.10.10.10705 · Shared data layer
The known schema set is used by both Old and New Chronos in development and production. Exact read/write ownership remains a validation item.
06 · Target state & execution
The plan performs every reversible activity on an isolated replacement host before opening the production maintenance window.
/var/www/html/boOpen any phase to see the objective, validation gate, and safe exit path.
Baseline OS access, network rules, storage, Docker, Dokploy, security, monitoring, and log access.
The host is reachable, secured, observable, and ready to accept isolated workloads.
Rebuild or correct the new host; the current production server remains untouched.
Prepare the Old Chronos container, New Chronos frontend and backend targets, database volumes, networks, and Dokploy definitions.
Containers start cleanly, persist data correctly, and expose only the required service paths.
Recreate containers, volumes, or Dokploy targets before any production cutover.
Copy the content, preserve permissions and ownership, then validate read/write behavior from both Chronos generations.
Old and New Chronos can read and write the content paths required by their workflows.
Repeat rsync or copy from 10.10.10.107. Do not make Garage authoritative until compatibility is proven.
Back up the current production databases, restore all required schemas on the new host, and record elapsed time.
Checksums or logs are clean, all schemas are present, and applications connect successfully.
Drop and recreate the new database containers, verify the backup, and restore again.
Use GitLab CI to build immutable images from release, tag artifacts, deploy through Docker/Dokploy, run smoke checks, and retain the previous image.
Each release branch can build and deploy to the isolated new host without manual production work.
Disable the production jobs and retain the current manual deployment procedure as a temporary fallback.
Run smoke and connectivity checks for Old Chronos, New Chronos frontend, New Chronos backend, databases, configuration, and shared content.
Both generations pass the agreed checks while isolated from production traffic.
Correct configuration, redeploy containers, or restore a clean data snapshot before repeating validation.
Freeze production writes, take final database backups, restore the latest data, run the content delta sync, switch traffic, and execute smoke tests.
Traffic reaches the new host, critical paths pass, data is current, and monitoring remains healthy.
Return traffic to 10.10.10.107 and restart old services. Assess any writes made after the switch before reconciling data.
Observe the new host, monitor errors and performance, retain 10.10.10.107 intact, then decommission it after formal acceptance.
The agreed observation window closes with stable service and signed acceptance criteria.
Rollback remains available until acceptance; retirement does not mean retiring the Old Chronos application.
Build, restore, deploy, validate, pre-copy content, and measure actual backup/restore duration.
Stop writes, take the final backup, restore, delta-sync content, switch traffic, and smoke test.
Monitor the new host while keeping 10.10.10.107 intact until acceptance.
Each milestone turns an activity into evidence required for the next step.
Docker, Dokploy, networking, storage, monitoring, and baseline security are configured.
Every required schema restores successfully and both applications can connect.
/var/www/html/bo is present with verified paths, permissions, and read/write behavior.
Release branches build and deploy traceable images without manual production steps.
Old and New Chronos pass the agreed smoke tests on restored production data.
Final restore and delta sync are complete, traffic is switched, and smoke checks pass.
10.10.10.107 remains available through observation, then is decommissioned after acceptance.
These items are not established by the source material and should remain visible until owners agree them.
Identity, sizing, storage, network, and security baseline.
Engine/version, backup tooling, restore sequence, and measured duration.
DNS, proxy, routing mechanism, TTL, and rollback timing.
Compatibility, operational ownership, migration effort, and fallback.
Authoritative repositories, registry, secrets, approvals, and pipeline owners.
Go/no-go signatories, smoke-test checklist, thresholds, and observation length.
07 · Source material
The site rebuilds the core flows for readability while preserving the original source material for detailed review and provenance.

How users reach each application generation and the shared database layer.
Open full size
The matching container and direct-on-host database layout in development and production.
Open full size
Branch flows, deployment modes, and the configuration split between both generations.
Open full size
The initial source view retained for provenance.
Open full size