Linux Native Operations¶
Recommended native Linux production path: offline prebuilt binary + systemd. Customer host does not need Go, Git, or a source tree.
Package scripts live in scripts/linux/service in the repository and as scripts/*.sh inside the extracted GitHub Release tarball iqv-integration-api-<version>-linux-native-amd64.tar.gz.
Install narrative: Linux systemd Installation.
systemd unit¶
| Item | Value |
|---|---|
| Unit | iqv-integration-api.service |
| User | iqvapi |
| Env | /etc/iqvizyon/iqv-integration-api.env |
| Binary | /opt/iqvizyon/iqv-integration-api/bin/iqv-integration-api serve |
| Restart | on-failure, RestartSec=5 |
The Windows-only iqv-integration-api service install|start|... CLI is not the Linux production path. Use systemd.
status / start / stop / restart / enable¶
bash
sudo systemctl status iqv-integration-api.service
sudo systemctl start iqv-integration-api.service
sudo systemctl stop iqv-integration-api.service
sudo systemctl restart iqv-integration-api.service
sudo systemctl enable iqv-integration-api.service
sudo systemctl disable iqv-integration-api.service
sudo ./scripts/status.sh
journalctl¶
Application slog is process stdout. systemd captures it in the journal. LOG_DIR=/var/log/iqvizyon/iqv-integration-api is a writable path in the unit; the Go process does not write application log files there.
bash
sudo journalctl -u iqv-integration-api.service -f
sudo journalctl -u iqv-integration-api.service --since "1 hour ago"
Runtime and config¶
text
/opt/iqvizyon/iqv-integration-api/bin/
/opt/iqvizyon/iqv-integration-api/deployment/
/etc/iqvizyon/iqv-integration-api.env
/var/lib/iqvizyon/iqv-integration-api/backups/
/var/log/iqvizyon/iqv-integration-api/ # reserved; not the slog sink
Existing env is never overwritten by install/update.
Firewall¶
Installer may add ufw allow <port>/tcp or firewalld --add-port=<port>/tcp. If neither tool is present, firewall is skipped.
Health¶
bash
curl -sS http://127.0.0.1:<HTTP_PORT>/health/live
curl -sS http://127.0.0.1:<HTTP_PORT>/health/ready
Update and rollback¶
bash
sudo ./scripts/update.sh --binary-path ./bin/iqv-integration-api
Decision is binary SHA256. Same checksum ⇒ NO-OP. --force-redeploy redeploys the same bytes. Failed start/health restores the previous binary. Database rollback is not performed.
Lab-only: IQV_TEST_FAIL_AT=Health or AfterStart.
Uninstall¶
bash
sudo ./scripts/uninstall.sh
Default keeps env, logs directory, backups, and metadata. See Uninstall.