| Applications from git (Dockerfile, Nixpacks, static) | moves | Created stopped. Nixpacks becomes Railpack and is flagged because the build may differ. Connecting a private repo is a manual step |
| Applications from a registry image | moves | Image and tag kept |
| Docker Compose applications and one-click services | reported | Listed as skipped with the reason. Deploy the compose file with compose apps |
| Environment variables and secrets | moves | Secret-looking names go through the encrypted store. Preview duplicates are dropped. Secrets the token could not read are listed by name |
| Build-time only flag on variables | reported | Variables are imported as runtime variables, and the names are listed |
| Install, build and start commands | reported | Silently dropped before this audit. Now listed with their values |
| Pre and post deployment commands | reported | Listed |
| Publish directory of a static site | reported | Listed |
| Domains | moves | Read, then held back until cutover. A www redirect rule is reported |
| TLS certificates | moves | Issued on first use after DNS points here. Custom uploaded certificates are not exported by Coolify’s API |
| HTTP basic auth on an app | reported | New. A staged app would otherwise be public |
| Custom container labels (often Traefik middleware) | reported | Redirects, headers and rate limits need recreating as ingress settings |
| Custom docker run options | reported | Capabilities, devices, ulimits |
| Persistent volumes | moves | Created empty. The data copy is a separate step with file and byte counts |
| File mounts | reported | Content is not copied |
| Databases: PostgreSQL, MySQL, MariaDB, MongoDB, Redis | moves | Created empty at the same major version. Data copy uses migrate db-copy, and the report prints the command with the public port, user and database name read from Coolify |
| Databases: KeyDB, Dragonfly, ClickHouse | reported | Silently dropped before this audit. Now listed as skipped with the dump tool to use |
| Database backup schedules | reported | New. One row per schedule, with a note when it also uploads to S3 |
| Scheduled tasks (cron) | moves | Was report-only. Enabled tasks become scheduled jobs that run sh -c COMMAND inside the app. Disabled tasks are skipped. Staged apps get their jobs disabled until cutover so a job never runs on both hosts |
| Git webhook secrets (auto deploy) | reported | New. The git host still calls Coolify until you add a webhook pointing here |
| HTTP health checks | moves | Path, interval, timeout and retries |
| Command health checks | reported | Only HTTP probes exist here |
| Memory and CPU limits | moves | Swap and reservations are not mapped |
| Preview deployments | reported | Flag only. Previews are not recreated |
| Projects and environments | partial | The project becomes a project. The environment name is recorded in the report but several environments of one project share it |
| Servers and destinations | reported | New. The report lists every server, the proxy that holds ports 80 and 443, and warns when there is more than one deploy server. Staged apps land on the control plane node |
| Docker networks | invisible | Apps that rely on a custom Coolify network are not detected |
| Team members, roles, API tokens | invisible | Not migrated by design. Recreate users and tokens here |
| S3 storage destinations, SSH keys, GitHub App credentials | invisible | Credentials are never read. Add them again |
| Notification channels (Discord, Slack, email) | invisible | Recreate them as alert channels |
| Deploy history, logs, metrics | invisible | Not migrated |