This commit is contained in:
174
docs/AIRGAP_INSTALLATION.md
Normal file
174
docs/AIRGAP_INSTALLATION.md
Normal file
@@ -0,0 +1,174 @@
|
||||
# Airgap Installation Guide for AtlasOS
|
||||
|
||||
## Overview
|
||||
|
||||
AtlasOS installer supports airgap (offline) installation for data centers without internet access. All required packages and dependencies are bundled into a single directory that can be transferred to the airgap system.
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Step 1: Download Bundle (On System with Internet)
|
||||
|
||||
On a system with internet access and Ubuntu 24.04:
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone <repository-url>
|
||||
cd atlas
|
||||
|
||||
# Run bundle downloader (requires root)
|
||||
sudo ./installer/bundle-downloader.sh ./atlas-bundle
|
||||
```
|
||||
|
||||
This will create a directory `./atlas-bundle` containing:
|
||||
- All required .deb packages (~100-200 packages)
|
||||
- All dependencies
|
||||
- Go binary (fallback)
|
||||
- Manifest and README files
|
||||
|
||||
**Estimated bundle size:** 500MB - 1GB
|
||||
|
||||
### Step 2: Transfer Bundle to Airgap System
|
||||
|
||||
Transfer the entire bundle directory to your airgap system using:
|
||||
- USB drive
|
||||
- Internal network (if available)
|
||||
- Physical media
|
||||
|
||||
```bash
|
||||
# Example: Copy to USB drive
|
||||
cp -r ./atlas-bundle /media/usb/
|
||||
|
||||
# On airgap system: Copy from USB
|
||||
cp -r /media/usb/atlas-bundle /tmp/
|
||||
```
|
||||
|
||||
### Step 3: Install on Airgap System
|
||||
|
||||
On the airgap system (Ubuntu 24.04):
|
||||
|
||||
```bash
|
||||
# Navigate to bundle directory
|
||||
cd /tmp/atlas-bundle
|
||||
|
||||
# Run installer with offline bundle
|
||||
cd /path/to/atlas
|
||||
sudo ./installer/install.sh --offline-bundle /tmp/atlas-bundle
|
||||
```
|
||||
|
||||
## Bundle Contents
|
||||
|
||||
The bundle includes:
|
||||
|
||||
### Main Packages
|
||||
- **Build Tools**: build-essential, git, curl, wget
|
||||
- **ZFS**: zfsutils-linux, zfs-zed, zfs-initramfs
|
||||
- **Storage Services**: samba, samba-common-bin, nfs-kernel-server, rpcbind
|
||||
- **iSCSI**: targetcli-fb
|
||||
- **Database**: sqlite3, libsqlite3-dev
|
||||
- **Go Compiler**: golang-go
|
||||
- **Utilities**: openssl, net-tools, iproute2
|
||||
|
||||
### Dependencies
|
||||
All transitive dependencies are automatically included.
|
||||
|
||||
## Verification
|
||||
|
||||
Before transferring, verify the bundle:
|
||||
|
||||
```bash
|
||||
# Count .deb files (should be 100-200)
|
||||
find ./atlas-bundle -name "*.deb" | wc -l
|
||||
|
||||
# Check manifest
|
||||
cat ./atlas-bundle/MANIFEST.txt
|
||||
|
||||
# Check total size
|
||||
du -sh ./atlas-bundle
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Missing Dependencies
|
||||
|
||||
If installation fails with dependency errors:
|
||||
|
||||
1. Ensure all .deb files are present in bundle
|
||||
2. Check that bundle was created on Ubuntu 24.04
|
||||
3. Verify system architecture matches (amd64/arm64)
|
||||
|
||||
### Go Installation Issues
|
||||
|
||||
If Go is not found after installation:
|
||||
|
||||
1. Check if `golang-go` package is installed: `dpkg -l | grep golang-go`
|
||||
2. If missing, the bundle includes `go.tar.gz` as fallback
|
||||
3. Installer will automatically extract it if needed
|
||||
|
||||
### Package Conflicts
|
||||
|
||||
If you encounter package conflicts:
|
||||
|
||||
```bash
|
||||
# Fix broken packages
|
||||
sudo apt-get install -f -y
|
||||
|
||||
# Or manually install specific packages
|
||||
sudo dpkg -i /path/to/bundle/*.deb
|
||||
sudo apt-get install -f -y
|
||||
```
|
||||
|
||||
## Bundle Maintenance
|
||||
|
||||
### Updating Bundle
|
||||
|
||||
To update the bundle with newer packages:
|
||||
|
||||
1. Run `./installer/bundle-downloader.sh` again on internet-connected system
|
||||
2. This will download latest versions
|
||||
3. Transfer new bundle to airgap system
|
||||
|
||||
### Bundle Size Optimization
|
||||
|
||||
To reduce bundle size (optional):
|
||||
|
||||
```bash
|
||||
# Remove unnecessary packages (be careful!)
|
||||
# Only remove if you're certain they're not needed
|
||||
```
|
||||
|
||||
## Security Considerations
|
||||
|
||||
- Verify bundle integrity before transferring
|
||||
- Use secure transfer methods (encrypted USB, secure network)
|
||||
- Keep bundle in secure location on airgap system
|
||||
- Verify package signatures if possible
|
||||
|
||||
## Advanced Usage
|
||||
|
||||
### Custom Bundle Location
|
||||
|
||||
```bash
|
||||
# Download to custom location
|
||||
sudo ./installer/bundle-downloader.sh /opt/atlas-bundles/ubuntu24.04
|
||||
|
||||
# Install from custom location
|
||||
sudo ./installer/install.sh --offline-bundle /opt/atlas-bundles/ubuntu24.04
|
||||
```
|
||||
|
||||
### Partial Bundle (if some packages already installed)
|
||||
|
||||
If some packages are already installed on airgap system:
|
||||
|
||||
```bash
|
||||
# Installer will skip already-installed packages
|
||||
# Missing packages will be installed from bundle
|
||||
sudo ./installer/install.sh --offline-bundle /path/to/bundle
|
||||
```
|
||||
|
||||
## Support
|
||||
|
||||
For issues with airgap installation:
|
||||
1. Check installation logs
|
||||
2. Verify bundle completeness
|
||||
3. Ensure Ubuntu 24.04 compatibility
|
||||
4. Review MANIFEST.txt for package list
|
||||
@@ -35,7 +35,7 @@ The easiest way to install AtlasOS is using the provided installer script:
|
||||
cd /path/to/atlas
|
||||
|
||||
# Run installer (requires root)
|
||||
sudo ./install.sh
|
||||
sudo ./installer/install.sh
|
||||
```
|
||||
|
||||
The installer will:
|
||||
@@ -50,22 +50,22 @@ The installer will:
|
||||
|
||||
```bash
|
||||
# Custom installation directory
|
||||
sudo ./install.sh --install-dir /opt/custom-atlas
|
||||
sudo ./installer/install.sh --install-dir /opt/custom-atlas
|
||||
|
||||
# Custom data directory
|
||||
sudo ./install.sh --data-dir /mnt/atlas-data
|
||||
sudo ./installer/install.sh --data-dir /mnt/atlas-data
|
||||
|
||||
# Skip dependency installation (if already installed)
|
||||
sudo ./install.sh --skip-deps
|
||||
sudo ./installer/install.sh --skip-deps
|
||||
|
||||
# Skip building binaries (use pre-built)
|
||||
sudo ./install.sh --skip-build
|
||||
sudo ./installer/install.sh --skip-build
|
||||
|
||||
# Custom HTTP address
|
||||
sudo ./install.sh --http-addr :8443
|
||||
sudo ./installer/install.sh --http-addr :8443
|
||||
|
||||
# Show help
|
||||
sudo ./install.sh --help
|
||||
sudo ./installer/install.sh --help
|
||||
```
|
||||
|
||||
## Manual Installation
|
||||
|
||||
Reference in New Issue
Block a user