Files
calypso/installer/airgap/README.md

5.9 KiB

Calypso Appliance - Airgap Deployment Bundle

Overview

Airgap deployment bundle memungkinkan instalasi Calypso Appliance tanpa koneksi internet. Semua komponen (binaries, dependencies, configs, services) di-bundle dalam satu archive yang bisa di-deploy ke mesin target.

Struktur Bundle

calypso-appliance-1.0.0-airgap/
├── install-airgap.sh          # Main installer script
├── README.md                   # Documentation
├── binaries/
│   └── calypso-api             # Pre-built backend binary
├── frontend/                   # Built frontend assets
├── packages/
│   ├── package-list.txt        # List of required packages (58 packages)
│   ├── debs/                  # Pre-downloaded DEB packages (~200-300 packages)
│   ├── downloaded-packages.txt # List of successfully downloaded packages
│   └── missing-packages.txt   # List of packages that couldn't be downloaded
├── scripts/                    # Installation scripts
├── services/                   # Systemd service files
├── migrations/                # Database migration files
├── configs/                    # Configuration templates
└── third_party/
    ├── download-binaries.sh    # Script to download Go/Node.js
    ├── go.tar.gz              # (Optional) Go binary
    └── nodejs.tar.xz          # (Optional) Node.js binary

Membuat Bundle

1. Build Bundle (Di Mesin dengan Internet)

cd /src/calypso
./installer/airgap/create-bundle.sh --version 1.0.0

Ini akan:

  • Download semua 59 packages + dependencies (~200-300 packages)
  • Build backend binary (Go)
  • Build frontend (React)
  • Bundle semua scripts, configs, services
  • Create installer script
  • Create archive: dist/airgap/calypso-appliance-1.0.0-airgap.tar.gz

2. Download Third-Party Binaries (Opsional)

Untuk fully offline, download Go dan Node.js binaries:

cd dist/airgap/calypso-appliance-1.0.0-airgap
./third_party/download-binaries.sh

3. Verify Bundle

# Check bundle integrity
sha256sum -c calypso-appliance-1.0.0-airgap.tar.gz.sha256

# List contents
tar -tzf calypso-appliance-1.0.0-airgap.tar.gz | head -20

# Check package count
tar -xzf calypso-appliance-1.0.0-airgap.tar.gz
ls -1 calypso-appliance-1.0.0-airgap/packages/debs/*.deb | wc -l

Deployment ke Target Machine

Step 1: Transfer Bundle

# Copy bundle to target machine (via USB, network share, etc.)
scp calypso-appliance-1.0.0-airgap.tar.gz user@target-machine:/tmp/

Step 2: Extract dan Install

# On target machine
cd /tmp
tar -xzf calypso-appliance-1.0.0-airgap.tar.gz
cd calypso-appliance-1.0.0-airgap

# Run installer
sudo ./install-airgap.sh

Package List

Bundle ini mencakup 58 packages REQUIRED:

  • Base Tools (15): build-essential, curl, wget, git, dll
  • PostgreSQL (4): postgresql, postgresql-contrib, dll
  • Storage Tools (7): lvm2, xfsprogs, thin-provisioning-tools, dll
  • ZFS (2): zfsutils-linux, zfs-dkms
  • Tape Tools (4): lsscsi, sg3-utils, mtx, dll
  • iSCSI (2): iscsitarget-dkms, open-iscsi
  • File Sharing (4): nfs-kernel-server, samba, dll
  • ClamAV (4): clamav, clamav-daemon, dll
  • Build Dependencies (8): linux-headers-generic, dkms, dll
  • Bacula (4): bacula-common, bacula-sd, dll
  • mhVTL (2): mhvtl, mhvtl-utils
  • Node.js (1): nodejs
  • Nginx (1): nginx

Dengan dependencies, total bisa mencapai ~200-300 packages.

Lihat PACKAGE-LIST.md untuk detail lengkap.

Kernel Modules Installation

Beberapa komponen memerlukan kernel modules yang harus di-build di target system:

ZFS

# Usually available via apt (sudah di-bundle)
# Module akan di-build otomatis saat install zfs-dkms

SCST

# Requires kernel headers (sudah di-bundle)
# Build from source (if included in bundle)

mhVTL

# Usually available via apt (sudah di-bundle)

Post-Installation

1. Review Configuration

sudo nano /etc/calypso/calypso.yaml

2. Setup Database

sudo -u postgres psql -c "ALTER USER calypso WITH PASSWORD 'your_secure_password';"

3. Start Services

sudo systemctl start calypso-api
sudo systemctl enable calypso-api

4. Verify Installation

# Check service status
sudo systemctl status calypso-api

# Check API health
curl http://localhost:8080/api/v1/health

Bundle Size Optimization

Untuk mengurangi ukuran bundle:

  1. Exclude source code - Hanya bundle binaries
  2. Compress binaries - Gunakan UPX atau strip symbols
  3. Minimize frontend - Pastikan production build sudah optimized
  4. Optional packages - Semua sudah required, tidak bisa di-skip

Troubleshooting

Issue: Packages tidak terinstall

Solution: Check packages/missing-packages.txt untuk paket yang tidak ter-download

Issue: Kernel modules tidak bisa di-load

Solution: Pastikan kernel headers terinstall dan sesuai dengan kernel version

Issue: Database connection failed

Solution: Pastikan PostgreSQL running dan password sudah di-set

Issue: Service tidak start

Solution: Check logs: journalctl -u calypso-api -n 50

Security Considerations

  1. Verify bundle integrity - Selalu check SHA256 checksum
  2. Secure transfer - Gunakan encrypted transfer (USB encryption, secure network)
  3. Review configs - Pastikan secrets di-generate dengan secure random
  4. Firewall - Setup firewall setelah instalasi
  5. Updates - Plan untuk update mechanism (bundle baru atau patch system)

Update Process

Untuk update ke versi baru:

  1. Build bundle baru dengan versi baru
  2. Transfer ke target machine
  3. Extract di lokasi berbeda
  4. Run installer (akan upgrade existing installation)
  5. Migrate data jika diperlukan

Support

Untuk issues:

  • Check installation logs: /var/log/calypso/install.log
  • Check service logs: journalctl -u calypso-api
  • Review configuration: /etc/calypso/calypso.yaml
  • Check package list: PACKAGE-LIST.md