Skip to content

Linux systemd — E2E status

Status summary

Evidence Value
IMPLEMENTED YES (offline-first prebuilt binary production installer)
AUTOMATED / STATIC TESTED AUTOMATED TESTED (prebuilt_deploy_test.sh, package_linux_test.sh, go_toolchain_test.sh, existing helpers)
Offline deployment LIVE PASS
Reboot auto-start LIVE PASS
NO-OP update LIVE PASS
Functional inbound POST BLOCKED / RETEST REQUIRED
Actor/installer fix IMPLEMENTED / AUTOMATED TESTED / LIVE RETEST REQUIRED

PRODUCTION vs DEVELOPMENT

Path Go Source build Git Internet Typical host
PRODUCTION INSTALLATION (recommended) No No No No (offline package) Ubuntu customer + systemd
DEVELOPMENT BUILD Yes Yes Optional (metadata) Yes (modules as needed) CI / developer machine

Production Linux native install does not install Go, does not download from go.dev, does not build from source, and does not require git, curl, wget, or apt package installs.

Recorded Ubuntu Live E2E (lab host)

Item Value
Host Ubuntu lab API host (private address omitted from public docs)
Deployment Linux Native / systemd / offline prebuilt binary (no Go, no source build)
MongoDB External lab MongoDB (private address omitted); database name is an operator choice
Check Status
Offline package / ELF amd64 / SHA256 LIVE PASS
Config bootstrap / migrations / systemd LIVE PASS
Reboot auto-start LIVE PASS
health/live + health/ready LIVE PASS
Ubuntu → MongoDB / Windows → Ubuntu API LIVE PASS
NO-OP update LIVE PASS
POST /api/v1/inbound/work-orders BLOCKED / RETEST REQUIRED

Root cause of the functional block: the installer generated a random INTEGRATION_ACTOR_USER_ID that did not reference an existing user. Live POST returned HTTP 500 INTERNAL_ERROR (integration actor user not found).

Fix (this change set): installer never generates an actor ObjectID; --integration-actor-user-id is required on first install; read-only application check verifies exists+active; live API returns INTEGRATION_ACTOR_USER_NOT_FOUND / INACTIVE / TENANT_MISMATCH (HTTP 409). Live functional POST was not re-run in this documentation cycle.

Next live install must pass a real active user ObjectID:

bash sudo ./scripts/install.sh \ --external-mongodb \ --mongo-uri "mongodb://<MONGODB_HOST>:27017" \ --mongo-database "<DATABASE_NAME>" \ --integration-actor-user-id "<EXISTING_ACTIVE_USER_OBJECT_ID>" \ --port 4242 \ --public-base-url "http://<API_HOST>:4242"

Operations reference: Linux systemd installation, Update and rollback.

Historical note (superseded)

The previous production installer tried to download a Go toolchain from go.dev. That model is removed. Production installers must never call go, git, curl, or wget.

Automated / static evidence

Check Command / file Status
Shell syntax bash -n on Linux service/release scripts AUTOMATED PASS (syntax only)
Prebuilt deploy (offline, SHA256, actor, rollback, uninstall) scripts/linux/service/tests/prebuilt_deploy_test.sh AUTOMATED TESTED
Release package contents scripts/release/tests/package_linux_test.sh AUTOMATED TESTED
No Go auto-install in production scripts/linux/service/tests/go_toolchain_test.sh AUTOMATED TESTED
Update decision scripts/linux/common/tests/update_decision_test.sh AUTOMATED PASS
Update / rollback helpers scripts/linux/common/tests/update_rollback_test.sh AUTOMATED PASS
Linux Docker regression scripts/linux/docker/tests/docker_deploy_test.sh AUTOMATED (offline image model; live E2E RETEST REQUIRED)

Exit codes (Linux service)

Source: scripts/linux/service/common.sh

Code Constant Meaning
0 EXIT_SUCCESS Success
1 EXIT_ROOT_REQUIRED root required
2 EXIT_ENV_INVALID Invalid environment (including missing/invalid actor format)
3 EXIT_PREREQ Prerequisite
4 EXIT_REPO_DIRTY Reserved (not used by prebuilt production path)
5 EXIT_DEPS Dependencies
6 EXIT_VET_TEST Reserved (not used by prebuilt production path)
7 EXIT_BUILD Reserved (not used by prebuilt production path)
8 EXIT_CHECK Binary / SHA256 / application check (actor exists/active)
9 EXIT_BACKUP Backup
10 EXIT_MIGRATION Migration
11 EXIT_SERVICE Service / systemd operation
12 EXIT_FIREWALL Firewall
13 EXIT_HEALTH Health
14 EXIT_ROLLBACK Rollback
15 EXIT_PORT Port conflict
16 EXIT_DOCKER Docker
17 EXIT_SYSTEMD systemd missing / not running