Files
Kiwy-Signage/OFFLINE_INSTALLATION.md
Kivy Signage Player 4ce41b7ccc Add offline installation support with repo folder and updated dependencies
Features:
- Create repo/ folder structure for offline packages
  - python-wheels/ for Python packages (.whl files)
  - system-packages/ for APT packages and .deb files
- Add download_offline_packages.sh to populate Python wheels
- Add download_deb_packages.sh to download system .deb packages
- Update install.sh with smart online/offline detection
  - Auto-detects repo folder and uses offline packages
  - Falls back to online installation if repo is empty
  - Supports --offline flag for explicit offline mode
- Update requirements.txt with async dependencies:
  - aiohttp==3.9.1 for async HTTP client
  - asyncio==3.4.3 for async I/O framework
- Add OFFLINE_INSTALLATION.md with complete guide
- Add .gitignore to exclude downloaded packages from repo
- Document all system dependencies in apt-packages.txt

Downloaded packages:
- 18 Python wheels with all dependencies
- Total size: ~50 MB for Python packages
- Ready for offline deployment
2025-11-03 16:29:03 +02:00

159 lines
3.8 KiB
Markdown

# Offline Installation Guide
This guide explains how to set up and use offline installation for the Kiwy Signage Player.
## Overview
The offline installation system allows you to install the signage player on devices without internet access by pre-downloading all necessary packages.
## Directory Structure
```
Kiwy-Signage/
├── repo/ # Offline packages repository
│ ├── python-wheels/ # Python packages (.whl files)
│ ├── system-packages/ # System package information
│ │ ├── apt-packages.txt # List of required apt packages
│ │ └── debs/ # Downloaded .deb files (optional)
│ └── README.md
├── download_offline_packages.sh # Download Python packages
├── download_deb_packages.sh # Download system .deb packages
└── install.sh # Smart installer (online/offline)
```
## Setup for Offline Installation
### Step 1: Prepare on a Connected System
On a system with internet access (preferably Raspberry Pi OS):
```bash
# Clone the repository
git clone <repository-url>
cd Kiwy-Signage
# Download Python packages
bash download_offline_packages.sh
# (Optional) Download system .deb packages
bash download_deb_packages.sh
```
This will populate the `repo/` folder with all necessary packages.
### Step 2: Transfer to Offline System
Copy the entire `Kiwy-Signage` directory to your offline system:
```bash
# Using USB drive
cp -r Kiwy-Signage /media/usb/
# Or create a tarball
tar -czf kiwy-signage-offline.tar.gz Kiwy-Signage/
# On target system, extract:
tar -xzf kiwy-signage-offline.tar.gz
cd Kiwy-Signage
```
### Step 3: Install on Offline System
The installer automatically detects offline packages:
```bash
# Automatic detection
bash install.sh
# Or explicitly specify offline mode
bash install.sh --offline
```
## Package Information
### Python Packages (requirements.txt)
- **kivy==2.1.0** - UI framework
- **requests==2.32.4** - HTTP library
- **bcrypt==4.2.1** - Password hashing
- **aiohttp==3.9.1** - Async HTTP client
- **asyncio==3.4.3** - Async I/O framework
### System Packages (APT)
See `repo/system-packages/apt-packages.txt` for complete list:
- Python development tools
- SDL2 libraries (video/audio)
- FFmpeg and codecs
- GStreamer plugins
- Build dependencies
## Online Installation
If you have internet access, simply run:
```bash
bash install.sh
```
The installer will automatically download and install all packages from the internet.
## Updating Offline Packages
To update the offline package cache:
```bash
# On a connected system
bash download_offline_packages.sh
```
This will download the latest versions of all packages.
## Troubleshooting
### Problem: Missing Dependencies
If installation fails due to missing dependencies:
```bash
# Download .deb packages with dependencies
bash download_deb_packages.sh
# Install with dependency resolution
sudo apt install -f
```
### Problem: Wheel Not Found
If a specific Python package wheel is not found:
```bash
# Download specific package
pip3 download <package-name> -d repo/python-wheels/
```
### Problem: Architecture Mismatch
Ensure packages are downloaded on the same architecture (ARM for Raspberry Pi):
```bash
# Verify architecture
uname -m # Should show: armv7l or aarch64
# Force ARM downloads
pip3 download -r requirements.txt -d repo/python-wheels/ --platform linux_armv7l
```
## Storage Requirements
- **Python wheels**: ~50-100 MB
- **System .deb packages**: ~200-500 MB (if downloaded)
- **Total**: ~250-600 MB
## Notes
- The `repo/` folder is designed to be portable
- Downloaded packages are excluded from git (see `.gitignore`)
- The installer supports both online and offline modes seamlessly
- System packages list is maintained in `repo/system-packages/apt-packages.txt`