Skip to content

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.