# Known limitations

## Coolify API

| Limitation | Workaround |
|------------|------------|
| `PATCH` dockerfile often returns 422 | Recreate app via `POST /applications/dockerfile` or use UI |
| `ports_exposes=8080` ignored; Traefik uses 80 | Set `ASPNETCORE_URLS=http://+:80` in Dockerfile |
| No git context for dockerfile-only apps | `deploy-nexus-backend.ps1` uploads tar.gz via temporary HTTPS ADD |
| `post_deployment_command` overwritten by `publish-coolify.ps1` | Run `deploy-nexus-downloads.ps1` last |

## nexus-db PostgreSQL

Database resource created but reported `exited:unhealthy` during setup. Backend POC uses SQLite until Postgres is healthy and linked in Coolify UI.

## nginx → backend proxy

Internal Docker DNS between separate Coolify apps is not automatically configured. Current approach:

- Proxy via backend sslip host in nginx (`deploy-nexus-downloads.ps1 -BackendHost`)
- **Preferred fix:** Connect both apps to the same network with alias `nexus-backend` in Coolify UI, then set `NEXUS_BACKEND_HOST=nexus-backend:80`

## packageUrl vs root ZIP

`latest.json` may reference versioned path under `/downloads/releases/...`. Root copy at `/downloads/nexus-shell-poc.zip` is also published; `deploy-nexus-downloads.ps1` uploads both.

## Temporary artifact hosting

Backend deploy uses short-lived catbox URLs in Dockerfile ADD. Rebuild backend if URL expires.

## Manual steps if API blocked

1. Coolify UI → Ninja Nexus → nexus-backend → paste Dockerfile, set port 80
2. Set env vars from mission spec (no secrets in repo)
3. nexus-downloads → post-deploy script from `deploy-nexus-downloads.ps1` output
4. Restart both apps
