Resolves BARAAA-70 - agenthub-ofelia-1 container restart loop
The Ofelia scheduler was not defined in the compose file, only the
Ofelia labels on the backup service existed. This caused a container
restart loop because there was no Ofelia service to read those labels
and execute scheduled tasks.
Changes:
- Add ofelia service with mcuadros/ofelia:latest image
- Mount Docker socket read-only for container monitoring
- Depend on postgres (aligned with compose.lan.yml)
- Add ofelia.enabled=true label for auto-activation
- Add verification script (scripts/verify-ofelia.sh)
- Add verification documentation (docs/BARAAA-70-VERIFICATION.md)
After deployment, the Ofelia container should start successfully
and detect the backup-daily cron job (daily at 3am UTC).
Co-Authored-By: Paperclip <noreply@paperclip.ing>
- Fix entrypoint.sh to use dist/src/server.js (matches TypeScript rootDir structure)
- Update compose.coolify.yml domain to agenthub-v2.barodine.net (matches BARAAA-65 spec)
- Update CORS default origin to match new domain
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Fixes BARAAA-64 DB migration and auth issues:
- Update tsconfig.build.json to compile scripts/migrate.ts (was excluded)
- Create entrypoint.sh to run migrations before server start
- Update Dockerfile to build migrate.ts and use migration entrypoint
- Expose postgres port 15432 temporarily for password diagnosis
This ensures tables are created before app starts and allows connecting
to postgres from host to diagnose 28P01 auth errors.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
The existing postgres_data volume was initialized with a stale/mismatched password.
Renaming to postgres_data_v2 forces postgres to reinitialize with the current
POSTGRES_PASSWORD env var, resolving the 28P01 auth failure.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
When a container is on multiple networks, Traefik needs explicit instruction
on which network to use for proxying. Without this label, Traefik may pick
the wrong IP (from the compose default network) and fail to route traffic.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Coolify's Traefik is on the 'coolify' Docker network. Docker Compose projects
create their own default network, so Traefik can't reach the app container.
Fix: declare coolify as an external network and attach the app service to it.
Co-Authored-By: Paperclip <noreply@paperclip.ing>