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

3.8 KiB

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):

# 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:

# 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:

# 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 install.sh

The installer will automatically download and install all packages from the internet.

Updating Offline Packages

To update the offline package cache:

# 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:

# 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:

# 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):

# 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