# service install guide
Install and package guide for the Iridium single-node service candidate.
This document follows the shared Sprint 5 packaging model from Alloy:
- deployment profile id
- maturity tier
- support band
- install inputs
- release outputs
The current guide is for the verified single-node candidate path only.
## package identity
- product: `iridium-service-candidate`
- deployment profile id: `single-node-service-v0-1`
- maturity tier: `single-node-production-candidate`
- support band: `candidate`
- artifact class: `package`
## install inputs
- config schema id: `iridium.service.v0_1`
- listen address: `127.0.0.1:7001`
- telemetry endpoint: `stdout`
- tls mode: `operator-optional`
- admin token: `local-dev`
- data directory: `<service-root>/data`
## build and install surface
Build the CLI:
```sh
cargo build --bin ir
```
Prepare the single-node service root:
```sh
rm -rf /tmp/iridium-service-root
mkdir -p /tmp/iridium-service-root/data
```
Seed a deterministic local fixture:
```sh
cargo run --quiet --bin ir -- \
--data /tmp/iridium-service-root/data \
ingest-node 1 1 2,3
cargo run --quiet --bin ir -- \
--data /tmp/iridium-service-root/data \
ingest-vector 1 2 1.0,0.0
```
Validate the service candidate config:
```sh
cargo run --quiet --bin ir -- \
--data /tmp/iridium-service-root/data \
service-validate \
--listen 127.0.0.1:7001 \
--telemetry-endpoint stdout \
--tls operator-optional \
--admin-token local-dev \
--max-requests 16
```
Inspect the service contract:
```sh
cargo run --quiet --bin ir -- service-report --listen 127.0.0.1:7001
```
Start the service:
```sh
cargo run --quiet --bin ir -- \
--data /tmp/iridium-service-root/data \
service-serve \
--listen 127.0.0.1:7001 \
--telemetry-endpoint stdout \
--tls operator-optional \
--admin-token local-dev \
--max-requests 16
```
## release outputs
Generate the product-owned packaging and evidence artifacts:
```sh
python3 scripts/service_candidate_report.py --report-dir artifacts
python3 scripts/service_lifecycle_report.py --report-dir artifacts
python3 scripts/service_compatibility_report.py --report-dir artifacts
python3 scripts/service_install_report.py --report-dir artifacts
```
This writes:
- `artifacts/service_candidate_report.json`
- `artifacts/service_candidate_report.md`
- `artifacts/service_lifecycle_report.json`
- `artifacts/service_lifecycle_report.md`
- `artifacts/service_compatibility_report.json`
- `artifacts/service_compatibility_report.md`
- `artifacts/service_install_report.json`
- `artifacts/service_install_report.md`
- `artifacts/retrieval_quality_service_report.json`
- `artifacts/retrieval_quality_service_report.md`
## operator references
- single-node operator runbook: `docs/service_single_node.md`
- service API and artifact surface: `docs/api/service.md`
## shared packaging references
- support-band guidance: `../alloy/docs/support-band-guidance.md`
- install/release conventions: `../alloy/docs/install-release-conventions.md`
- operator runbook template: `../alloy/docs/operator-runbook-template.md`
- compatibility matrix: `../alloy/docs/compatibility-matrix.md`
- incident taxonomy: `../alloy/docs/incident-taxonomy.md`
## limits
- The current package is a single-node candidate service only.
- TLS remains config-shaped only.
- Auth remains limited to optional bearer-token admin protection.
- Deployment automation and hardened production rollout are still out of scope.