Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands - CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround - CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check - NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere - MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates - LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference Co-authored-by: Cursor <cursoragent@cursor.com>
365 lines
7.2 KiB
Markdown
365 lines
7.2 KiB
Markdown
# APT Packages Checklist
|
|
|
|
**Last Updated:** 2026-02-05
|
|
**Document Version:** 1.1
|
|
**Status:** Active Documentation
|
|
|
|
---
|
|
|
|
Complete checklist of all apt packages required for each service type.
|
|
|
|
---
|
|
|
|
## Automation / jump host / scripts runner (recommended)
|
|
|
|
Install on the machine that runs `scripts/push-templates-to-proxmox.sh`, verification scripts, and automation that SSHs to Proxmox hosts. These are **optional** but recommended; many scripts work with only `bash curl jq openssl ssh` (see `scripts/verify/check-dependencies.sh`).
|
|
|
|
```bash
|
|
# One-line install (Debian/Ubuntu)
|
|
sudo apt install -y sshpass rsync dnsutils iproute2 screen tmux htop shellcheck parallel
|
|
```
|
|
|
|
| Package | Purpose |
|
|
|---------|---------|
|
|
| **sshpass** | Non-interactive SSH with password (storage-monitor, set-container-password, restart-and-verify-services, Blockscout/update scripts). Prefer SSH keys; use sshpass only when needed. |
|
|
| **rsync** | Efficient sync for push-templates and file copies (optional; script falls back to scp). |
|
|
| **dnsutils** | `dig`, `nslookup` for DNS checks in verification. |
|
|
| **iproute2** | `ss` for socket checks (optional). |
|
|
| **screen** / **tmux** | Long-running sessions (deployments, downloads). |
|
|
| **htop** | Interactive process view on hosts. |
|
|
| **shellcheck** | Static analysis for shell scripts (`scripts/verify/run-shellcheck.sh`). |
|
|
| **parallel** | GNU parallel for batch SSH/commands (optional). |
|
|
|
|
**macOS (Homebrew):** `brew install sshpass rsync bind screen tmux htop shellcheck parallel` (sshpass may need `brew install hudochenkov/sshpass/sshpass` or use SSH keys).
|
|
|
|
---
|
|
|
|
## Besu Nodes
|
|
|
|
### Common Packages (All Besu Node Types)
|
|
```bash
|
|
openjdk-17-jdk # Java 17 Runtime (Required for Besu)
|
|
wget # Download Besu binary
|
|
curl # HTTP client utilities
|
|
jq # JSON processing
|
|
netcat-openbsd # Network utilities (nc command)
|
|
iproute2 # Network routing utilities (ip command)
|
|
iptables # Firewall management
|
|
ca-certificates # SSL certificate store
|
|
gnupg # GPG for package verification
|
|
lsb-release # LSB release information
|
|
```
|
|
|
|
### Note: nginx for RPC Nodes
|
|
**nginx is NOT installed on RPC nodes**. Instead, **VMID 105 (nginx-proxy-manager)** is used as a centralized reverse proxy and load balancer for all RPC endpoints. This provides:
|
|
- Centralized management via web UI
|
|
- Load balancing across RPC nodes (2500-2502)
|
|
- SSL termination
|
|
- High availability with automatic failover
|
|
|
|
See `docs/NGINX_ARCHITECTURE_RPC.md` for details.
|
|
|
|
**Install Scripts**:
|
|
- `install/besu-validator-install.sh`
|
|
- `install/besu-sentry-install.sh`
|
|
- `install/besu-rpc-install.sh`
|
|
|
|
---
|
|
|
|
## Blockscout Explorer
|
|
|
|
```bash
|
|
docker.io # Docker runtime
|
|
docker-compose # Docker Compose orchestration
|
|
curl
|
|
wget
|
|
jq
|
|
ca-certificates
|
|
gnupg
|
|
lsb-release
|
|
```
|
|
|
|
**Install Script**: `install/blockscout-install.sh`
|
|
|
|
---
|
|
|
|
## Hyperledger Fabric
|
|
|
|
```bash
|
|
docker.io
|
|
docker-compose
|
|
curl
|
|
wget
|
|
jq
|
|
ca-certificates
|
|
gnupg
|
|
lsb-release
|
|
python3
|
|
python3-pip
|
|
build-essential # C/C++ compiler and build tools
|
|
```
|
|
|
|
**Install Script**: `install/fabric-install.sh`
|
|
|
|
---
|
|
|
|
## Hyperledger Firefly
|
|
|
|
```bash
|
|
docker.io
|
|
docker-compose
|
|
curl
|
|
wget
|
|
jq
|
|
ca-certificates
|
|
gnupg
|
|
lsb-release
|
|
```
|
|
|
|
**Install Script**: `install/firefly-install.sh`
|
|
|
|
---
|
|
|
|
## Hyperledger Indy
|
|
|
|
```bash
|
|
docker.io
|
|
docker-compose
|
|
curl
|
|
wget
|
|
jq
|
|
ca-certificates
|
|
gnupg
|
|
lsb-release
|
|
python3
|
|
python3-pip
|
|
python3-dev # Python development headers
|
|
libssl-dev # OpenSSL development libraries
|
|
libffi-dev # Foreign Function Interface library
|
|
build-essential # C/C++ compiler and build tools
|
|
pkg-config # Package configuration tool
|
|
libzmq5 # ZeroMQ library (runtime)
|
|
libzmq3-dev # ZeroMQ library (development)
|
|
```
|
|
|
|
**Install Script**: `install/indy-install.sh`
|
|
|
|
---
|
|
|
|
## Hyperledger Cacti
|
|
|
|
```bash
|
|
docker.io
|
|
docker-compose
|
|
curl
|
|
wget
|
|
jq
|
|
ca-certificates
|
|
gnupg
|
|
lsb-release
|
|
```
|
|
|
|
**Install Script**: `install/cacti-install.sh`
|
|
|
|
---
|
|
|
|
## Chainlink CCIP Monitor
|
|
|
|
```bash
|
|
python3
|
|
python3-pip
|
|
python3-venv # Python virtual environment
|
|
curl
|
|
wget
|
|
jq
|
|
ca-certificates
|
|
```
|
|
|
|
**Install Script**: `install/ccip-monitor-install.sh`
|
|
|
|
---
|
|
|
|
## Oracle Publisher
|
|
|
|
```bash
|
|
docker.io
|
|
docker-compose
|
|
curl
|
|
wget
|
|
jq
|
|
ca-certificates
|
|
gnupg
|
|
lsb-release
|
|
python3
|
|
python3-pip
|
|
```
|
|
|
|
**Install Script**: `install/oracle-publisher-install.sh`
|
|
|
|
---
|
|
|
|
## Keeper
|
|
|
|
```bash
|
|
docker.io
|
|
docker-compose
|
|
curl
|
|
wget
|
|
jq
|
|
ca-certificates
|
|
gnupg
|
|
lsb-release
|
|
```
|
|
|
|
**Install Script**: `install/keeper-install.sh`
|
|
|
|
---
|
|
|
|
## Financial Tokenization
|
|
|
|
```bash
|
|
docker.io
|
|
docker-compose
|
|
curl
|
|
wget
|
|
jq
|
|
ca-certificates
|
|
gnupg
|
|
lsb-release
|
|
python3
|
|
python3-pip
|
|
```
|
|
|
|
**Install Script**: `install/financial-tokenization-install.sh`
|
|
|
|
---
|
|
|
|
## Monitoring Stack
|
|
|
|
```bash
|
|
docker.io
|
|
docker-compose
|
|
curl
|
|
wget
|
|
jq
|
|
ca-certificates
|
|
gnupg
|
|
lsb-release
|
|
```
|
|
|
|
**Install Script**: `install/monitoring-stack-install.sh`
|
|
|
|
---
|
|
|
|
## Package Summary by Category
|
|
|
|
### Essential System Packages (Most Services)
|
|
- `curl`, `wget`, `jq`, `ca-certificates`, `gnupg`, `lsb-release`
|
|
|
|
### Docker Services
|
|
- `docker.io`, `docker-compose`
|
|
|
|
### Python Services
|
|
- `python3`, `python3-pip`
|
|
- Optional: `python3-dev`, `python3-venv`, `build-essential`
|
|
|
|
### Java Services (Besu)
|
|
- `openjdk-17-jdk`
|
|
|
|
### Network Utilities
|
|
- `netcat-openbsd`, `iproute2`, `iptables`
|
|
|
|
### Development Tools
|
|
- `build-essential` (includes gcc, g++, make, etc.)
|
|
- `pkg-config`
|
|
|
|
### Libraries
|
|
- `libssl-dev`, `libffi-dev`, `libzmq5`, `libzmq3-dev`
|
|
|
|
---
|
|
|
|
## Verification Commands
|
|
|
|
After deployment, verify packages are installed:
|
|
|
|
```bash
|
|
# Check Java (Besu nodes)
|
|
pct exec <vmid> -- java -version
|
|
|
|
# Check Docker (Docker-based services)
|
|
pct exec <vmid> -- docker --version
|
|
pct exec <vmid> -- docker-compose --version
|
|
|
|
# Check Python (Python services)
|
|
pct exec <vmid> -- python3 --version
|
|
pct exec <vmid> -- pip3 --version
|
|
|
|
# Check specific packages
|
|
pct exec <vmid> -- dpkg -l | grep -E "openjdk-17|docker|python3"
|
|
```
|
|
|
|
---
|
|
|
|
## Package Installation Notes
|
|
|
|
### Automatic Installation
|
|
All packages are automatically installed by their respective install scripts during container deployment.
|
|
|
|
### Installation Order
|
|
1. Container created with Ubuntu 22.04 template
|
|
2. Container started
|
|
3. Install script pushed to container
|
|
4. Install script executed (installs all apt packages)
|
|
5. Application software installed/downloaded
|
|
6. Services configured
|
|
|
|
### APT Update
|
|
All install scripts run `apt-get update` before installing packages.
|
|
|
|
### Non-Interactive Mode
|
|
All install scripts use `export DEBIAN_FRONTEND=noninteractive` to prevent interactive prompts.
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Package Installation Fails
|
|
**Error**: `E: Unable to locate package <package-name>`
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Update package lists
|
|
pct exec <vmid> -- apt-get update
|
|
|
|
# Check if package exists
|
|
pct exec <vmid> -- apt-cache search <package-name>
|
|
|
|
# Check Ubuntu version
|
|
pct exec <vmid> -- lsb_release -a
|
|
```
|
|
|
|
### Insufficient Disk Space
|
|
**Error**: `E: Write error - write (28: No space left on device)`
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Check disk usage
|
|
pct exec <vmid> -- df -h
|
|
|
|
# Clean apt cache
|
|
pct exec <vmid> -- apt-get clean
|
|
```
|
|
|
|
### Network Connectivity Issues
|
|
**Error**: `E: Failed to fetch ... Connection timed out`
|
|
|
|
**Solution**:
|
|
```bash
|
|
# Test network connectivity
|
|
pct exec <vmid> -- ping -c 3 8.8.8.8
|
|
|
|
# Check DNS resolution
|
|
pct exec <vmid> -- nslookup archive.ubuntu.com
|
|
```
|
|
|