API runs via systemd on port 3000, Docker deployment not needed yet.
Health check now targets the actual running API.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add ARG DATABASE_URL to Dockerfile so prisma generate works at build time
- Fix env file path (/opt/zhixi/env/ not /etc/zhixi/)
- Fix MySQL container name (mysql, not mysql-zhixi)
- Use correct DB name (zhixi_prod)
- Prevent duplicate mysql/redis containers from docker compose
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Root cause: deploy.yml used runs-on: ubuntu-latest, which matched
the 4C4G web runner instead of the 8C32G prod runner. The web runner
doesn't have access to /opt/zhixi/, systemd, or Docker.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Root cause: git clone http://localhost:3000 failed because port 3000
is NestJS, not Gitea. Use internal network URL instead.
Also add sudo to privileged commands and set -e to fail fast.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Service file is now minimal (no startup script dependency).
CI step verifies reranker importability via systemd-run on host.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Runner container lacks Python 3.11, so pip install and self-test
now run as ExecStartPre in zhixi-worker.service on the host.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>